[
  {
    "path": ".github/workflows/ci.yaml",
    "content": "name: CI\n\non:\n  push:\n    branches:\n      - master\n  pull_request:\n    branches:\n      - master\n\njobs:\n  ci:\n    name: CI\n    runs-on: ubuntu-latest\n\n    strategy:\n      matrix:\n        node-version: ['25.8.2']\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v6\n\n      - name: Use Node.js v${{ matrix.node-version }}\n        uses: actions/setup-node@v6\n        with:\n          node-version: ${{ matrix.node-version }}\n\n      - name: Install Dependencies And Compile TS\n        run: npm ci --ignore-scripts\n\n      - name: Verify Registry Signatures\n        run: npm audit signatures\n\n      - name: Audit Production Dependencies\n        run: npm audit --omit=dev --audit-level=critical\n\n      - name: Check Code Format\n        run: npm run check-format\n\n      - name: Run Tests\n        run: npm run test\n"
  },
  {
    "path": ".github/workflows/npm_audit.yaml",
    "content": "name: Full NPM Audit\n\non:\n  schedule:\n    - cron: '25 3 * * *'\n  workflow_dispatch:\n\npermissions:\n  contents: read\n\njobs:\n  audit:\n    name: Full NPM Audit Report\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v6\n\n      - name: Use Node.js v25.8.2\n        uses: actions/setup-node@v6\n        with:\n          node-version: 25.8.2\n\n      - name: Generate Full Audit Report\n        id: audit\n        run: |\n          set +e\n          npm audit --package-lock-only --json > npm-audit.json\n          exit_code=$?\n          set -e\n          if [ ! -f npm-audit.json ]; then\n            echo '{}' > npm-audit.json\n          fi\n          echo \"exit_code=$exit_code\" >> \"$GITHUB_OUTPUT\"\n\n      - name: Upload Audit Report\n        uses: actions/upload-artifact@v4\n        with:\n          name: npm-audit-report\n          path: npm-audit.json\n\n      - name: Summarize Audit Report\n        env:\n          AUDIT_EXIT_CODE: ${{ steps.audit.outputs.exit_code }}\n        run: |\n          node --input-type=module <<'EOF'\n          import fs from 'node:fs';\n\n          const report = JSON.parse(fs.readFileSync('npm-audit.json', 'utf8'));\n          const vulnerabilities = report.metadata?.vulnerabilities ?? {};\n          const lines = [\n            `Full npm audit exit code: ${process.env.AUDIT_EXIT_CODE}`,\n            `info: ${vulnerabilities.info ?? 0}`,\n            `low: ${vulnerabilities.low ?? 0}`,\n            `moderate: ${vulnerabilities.moderate ?? 0}`,\n            `high: ${vulnerabilities.high ?? 0}`,\n            `critical: ${vulnerabilities.critical ?? 0}`,\n            `total: ${vulnerabilities.total ?? 0}`,\n            '',\n            'Download the npm-audit-report artifact for the full JSON report.'\n          ];\n\n          fs.appendFileSync(process.env.GITHUB_STEP_SUMMARY, `${lines.join('\\n')}\\n`);\n          EOF\n"
  },
  {
    "path": ".github/workflows/publish.yaml",
    "content": "name: Publish New Release To NPM\n\non:\n  release:\n    # This specifies that the build will be triggered when we publish a release\n    types: [published]\n\npermissions:\n  id-token: write\n  contents: write\n\njobs:\n  publish:\n    name: Publish New Release To NPM\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v6\n        with:\n          ref: ${{ github.event.release.target_commitish }}\n\n      - name: Use Node.js v25.8.2\n        uses: actions/setup-node@v6\n        with:\n          node-version: 25.8.2\n          registry-url: https://registry.npmjs.org/\n\n      - name: Install Dependencies And Compile TS\n        run: npm ci --ignore-scripts\n\n      - name: Verify Registry Signatures\n        run: npm audit signatures\n\n      - name: Audit Production Dependencies\n        run: npm audit --omit=dev --audit-level=critical\n\n      - name: Configure Git\n        run: |\n          git config --global user.name \"GitHub Release Bot\"\n          git config --global user.email \"deploy@tardis.dev\"\n\n      - name: Update package version\n        run: npm version ${{ github.event.release.tag_name }}\n\n      - name: Run Tests\n        run: npm run test\n\n      - name: Publish Package\n        run: npm publish\n\n      - name: Push Version Changes To GitHub\n        run: git push\n"
  },
  {
    "path": ".gitignore",
    "content": "node_modules\n/dist\n/*.log\n.tardis-cache\n*.tsbuildinfo\ncache\nbench/\n.DS_Store\n"
  },
  {
    "path": ".npmrc",
    "content": "min-release-age=1\nallow-git=none\n"
  },
  {
    "path": ".prettierignore",
    "content": "package.json\npackage-lock.json\nyarn.lock\ndist"
  },
  {
    "path": ".prettierrc",
    "content": "{\n  \"printWidth\": 140,\n  \"semi\": false,\n  \"singleQuote\": true,\n  \"trailingComma\": \"none\",\n  \"endOfLine\": \"lf\"\n}\n"
  },
  {
    "path": "ADD_NEW_EXCHANGE.md",
    "content": "# Adding a New Exchange\n\n## Overview\n\nAdding an exchange to tardis-node requires three things: mappers (transform raw exchange messages into normalized types), a real-time feed (WebSocket connection), and constant definitions.\n\n## Workflow\n\n### 1. Add exchange constants\n\nIn `src/consts.ts`:\n\n- Add exchange ID to the exchanges array\n- Add channel info (list of available channels for the exchange)\n\n### 2. Create mappers\n\nCreate `src/mappers/{exchange}.ts`. Each mapper class implements the Mapper interface — look at existing mapper implementations to find an exchange with a similar message format.\n\nMappers to implement depend on what the exchange provides: trades, book changes, tickers, derivative tickers, liquidations, book tickers, etc.\n\nRegister mapper factory in `src/mappers/index.ts`.\n\n### 3. Create real-time feed\n\nCreate `src/realtimefeeds/{exchange}.ts`. Extend `RealTimeFeedBase` with:\n\n- WebSocket URL\n- Subscription message format\n- Any exchange-specific hooks (decompression, heartbeat handling, error filtering)\n\nRegister in `src/realtimefeeds/index.ts`.\n\n### 4. Test\n\nRun tests and validation — see AGENTS.md for the full checklist.\n\n## Decision Points\n\n- **Date-based mapper versioning** — If the exchange changed its API format at some point, you may need different mapper implementations for different time periods. Look at existing examples in `src/mappers/index.ts` for the pattern.\n- **Multi-connection feeds** — Some exchanges need multiple WebSocket connections. The base class supports this via `MultiConnectionRealTimeFeedBase`.\n- **Decompression** — Some exchanges compress WebSocket messages. Override the decompress hook if needed.\n- **Filter optimization** — The base class has `optimizeFilters()` for normalizing subscription filters. Override if the exchange needs special handling.\n"
  },
  {
    "path": "AGENTS.md",
    "content": "# tardis-node\n\nPublic npm package (`tardis-dev`). Provides async iterator API for historical replay and real-time streaming of cryptocurrency market data, with exchange-specific mappers for normalization.\n\n## Build & Test\n\n```bash\nnpm run build        # tsc\nnpm test             # build + jest\nnpm run check-format # prettier check\n```\n\n## Editing Rules\n\n- Keep backward compatibility for public API signatures — this is a published npm package\n- Maintain cache key stability (filters are normalized/sorted intentionally)\n- Preserve memory-safe streaming behavior (avoid large in-memory buffering)\n- Exchange additions must update realtime feed + mapper tables consistently\n- **Format after every edit** — run `npx prettier --write` on modified files after each change\n\n## Validation\n\n- `npm run build && npm test`\n- `npm run check-format`\n\n## Operational Docs\n\n- [ARCHITECTURE.md](ARCHITECTURE.md) — async iterators, replay pipeline, mapper system, order book\n- [ADD_NEW_EXCHANGE.md](ADD_NEW_EXCHANGE.md) — add mappers and realtime feed for a new exchange\n\n## Publishing\n\nPublished via GitHub Actions (`publish.yaml`). Do not publish manually unless explicitly requested.\n\n## Keeping Docs Current\n\nWhen you change code, check if any docs in this repo become stale as a result — if so, update them. When following a workflow doc, if the steps don't match reality, fix the doc so the next run is better.\n"
  },
  {
    "path": "ARCHITECTURE.md",
    "content": "# Architecture\n\ntardis-node provides a unified async iterator API for consuming cryptocurrency market data. Two primary modes: **replay** (historical) and **stream** (real-time), both sharing the same normalized data types and mapper infrastructure.\n\n## Core Design\n\nEvery data source produces an `AsyncIterableIterator`. This applies uniformly to raw replay, raw streaming, normalized replay, normalized streaming, combined streams, and computed/derived data.\n\n## Replay Pipeline\n\n```\nMain Thread                         Worker Thread\n  │                                     │\n  │── Start replay ──→                  │\n  │                         Fetch data slice from API\n  │                         Cache to disk (.gz file)\n  │  ←── message (sliceKey, path) ──    │\n  │                         Fetch next slice...\n  │                                     │\n  Read cached file from disk            │\n  Decompress (gunzip)                   │\n  Split by newlines                     │\n  Parse JSON messages                   │\n  Yield {localTimestamp, message}       │\n```\n\nWorker thread pre-fetches and caches slices while the main thread processes the current one. This keeps I/O and CPU pipelined.\n\n## Real-time Streaming\n\n`RealTimeFeedBase` manages WebSocket connections to exchanges. Handles connection lifecycle (connect, subscribe, validate, reconnect on failure). Exchange-specific feeds extend the base class with subscription formats and message handling.\n\n## Mapper System\n\nMappers transform raw exchange messages into normalized types (trades, book changes, tickers, liquidations, etc.). Each exchange has mapper classes registered in `src/mappers/index.ts`.\n\nSome exchanges have date-based mapper versioning — different mapper implementations for different time periods when the exchange changed its API format.\n\n## Key Abstractions\n\n- **`combine()`** — Merges multiple async iterables into one, ordered by timestamp. Enables cross-exchange data feeds.\n- **`compute()`** — Wraps an async iterable and produces derived data (book snapshots, trade bars) via computables.\n- **`OrderBook`** — Full limit order book reconstruction from incremental updates, using a Red-Black Tree for efficient price level management.\n\n## Configuration\n\nExchange definitions and channel info in `src/consts.ts`. Mapper and feed registrations in their respective `index.ts` files.\n"
  },
  {
    "path": "CLAUDE.md",
    "content": "@AGENTS.md\n"
  },
  {
    "path": "LICENSE",
    "content": "Mozilla Public License Version 2.0\n==================================\n\n1. Definitions\n--------------\n\n1.1. \"Contributor\"\n    means each individual or legal entity that creates, contributes to\n    the creation of, or owns Covered Software.\n\n1.2. \"Contributor Version\"\n    means the combination of the Contributions of others (if any) used\n    by a Contributor and that particular Contributor's Contribution.\n\n1.3. \"Contribution\"\n    means Covered Software of a particular Contributor.\n\n1.4. \"Covered Software\"\n    means Source Code Form to which the initial Contributor has attached\n    the notice in Exhibit A, the Executable Form of such Source Code\n    Form, and Modifications of such Source Code Form, in each case\n    including portions thereof.\n\n1.5. \"Incompatible With Secondary Licenses\"\n    means\n\n    (a) that the initial Contributor has attached the notice described\n        in Exhibit B to the Covered Software; or\n\n    (b) that the Covered Software was made available under the terms of\n        version 1.1 or earlier of the License, but not also under the\n        terms of a Secondary License.\n\n1.6. \"Executable Form\"\n    means any form of the work other than Source Code Form.\n\n1.7. \"Larger Work\"\n    means a work that combines Covered Software with other material, in\n    a separate file or files, that is not Covered Software.\n\n1.8. \"License\"\n    means this document.\n\n1.9. \"Licensable\"\n    means having the right to grant, to the maximum extent possible,\n    whether at the time of the initial grant or subsequently, any and\n    all of the rights conveyed by this License.\n\n1.10. \"Modifications\"\n    means any of the following:\n\n    (a) any file in Source Code Form that results from an addition to,\n        deletion from, or modification of the contents of Covered\n        Software; or\n\n    (b) any new file in Source Code Form that contains any Covered\n        Software.\n\n1.11. \"Patent Claims\" of a Contributor\n    means any patent claim(s), including without limitation, method,\n    process, and apparatus claims, in any patent Licensable by such\n    Contributor that would be infringed, but for the grant of the\n    License, by the making, using, selling, offering for sale, having\n    made, import, or transfer of either its Contributions or its\n    Contributor Version.\n\n1.12. \"Secondary License\"\n    means either the GNU General Public License, Version 2.0, the GNU\n    Lesser General Public License, Version 2.1, the GNU Affero General\n    Public License, Version 3.0, or any later versions of those\n    licenses.\n\n1.13. \"Source Code Form\"\n    means the form of the work preferred for making modifications.\n\n1.14. \"You\" (or \"Your\")\n    means an individual or a legal entity exercising rights under this\n    License. For legal entities, \"You\" includes any entity that\n    controls, is controlled by, or is under common control with You. For\n    purposes of this definition, \"control\" means (a) the power, direct\n    or indirect, to cause the direction or management of such entity,\n    whether by contract or otherwise, or (b) ownership of more than\n    fifty percent (50%) of the outstanding shares or beneficial\n    ownership of such entity.\n\n2. License Grants and Conditions\n--------------------------------\n\n2.1. Grants\n\nEach Contributor hereby grants You a world-wide, royalty-free,\nnon-exclusive license:\n\n(a) under intellectual property rights (other than patent or trademark)\n    Licensable by such Contributor to use, reproduce, make available,\n    modify, display, perform, distribute, and otherwise exploit its\n    Contributions, either on an unmodified basis, with Modifications, or\n    as part of a Larger Work; and\n\n(b) under Patent Claims of such Contributor to make, use, sell, offer\n    for sale, have made, import, and otherwise transfer either its\n    Contributions or its Contributor Version.\n\n2.2. Effective Date\n\nThe licenses granted in Section 2.1 with respect to any Contribution\nbecome effective for each Contribution on the date the Contributor first\ndistributes such Contribution.\n\n2.3. Limitations on Grant Scope\n\nThe licenses granted in this Section 2 are the only rights granted under\nthis License. No additional rights or licenses will be implied from the\ndistribution or licensing of Covered Software under this License.\nNotwithstanding Section 2.1(b) above, no patent license is granted by a\nContributor:\n\n(a) for any code that a Contributor has removed from Covered Software;\n    or\n\n(b) for infringements caused by: (i) Your and any other third party's\n    modifications of Covered Software, or (ii) the combination of its\n    Contributions with other software (except as part of its Contributor\n    Version); or\n\n(c) under Patent Claims infringed by Covered Software in the absence of\n    its Contributions.\n\nThis License does not grant any rights in the trademarks, service marks,\nor logos of any Contributor (except as may be necessary to comply with\nthe notice requirements in Section 3.4).\n\n2.4. Subsequent Licenses\n\nNo Contributor makes additional grants as a result of Your choice to\ndistribute the Covered Software under a subsequent version of this\nLicense (see Section 10.2) or under the terms of a Secondary License (if\npermitted under the terms of Section 3.3).\n\n2.5. Representation\n\nEach Contributor represents that the Contributor believes its\nContributions are its original creation(s) or it has sufficient rights\nto grant the rights to its Contributions conveyed by this License.\n\n2.6. Fair Use\n\nThis License is not intended to limit any rights You have under\napplicable copyright doctrines of fair use, fair dealing, or other\nequivalents.\n\n2.7. Conditions\n\nSections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted\nin Section 2.1.\n\n3. Responsibilities\n-------------------\n\n3.1. Distribution of Source Form\n\nAll distribution of Covered Software in Source Code Form, including any\nModifications that You create or to which You contribute, must be under\nthe terms of this License. You must inform recipients that the Source\nCode Form of the Covered Software is governed by the terms of this\nLicense, and how they can obtain a copy of this License. You may not\nattempt to alter or restrict the recipients' rights in the Source Code\nForm.\n\n3.2. Distribution of Executable Form\n\nIf You distribute Covered Software in Executable Form then:\n\n(a) such Covered Software must also be made available in Source Code\n    Form, as described in Section 3.1, and You must inform recipients of\n    the Executable Form how they can obtain a copy of such Source Code\n    Form by reasonable means in a timely manner, at a charge no more\n    than the cost of distribution to the recipient; and\n\n(b) You may distribute such Executable Form under the terms of this\n    License, or sublicense it under different terms, provided that the\n    license for the Executable Form does not attempt to limit or alter\n    the recipients' rights in the Source Code Form under this License.\n\n3.3. Distribution of a Larger Work\n\nYou may create and distribute a Larger Work under terms of Your choice,\nprovided that You also comply with the requirements of this License for\nthe Covered Software. If the Larger Work is a combination of Covered\nSoftware with a work governed by one or more Secondary Licenses, and the\nCovered Software is not Incompatible With Secondary Licenses, this\nLicense permits You to additionally distribute such Covered Software\nunder the terms of such Secondary License(s), so that the recipient of\nthe Larger Work may, at their option, further distribute the Covered\nSoftware under the terms of either this License or such Secondary\nLicense(s).\n\n3.4. Notices\n\nYou may not remove or alter the substance of any license notices\n(including copyright notices, patent notices, disclaimers of warranty,\nor limitations of liability) contained within the Source Code Form of\nthe Covered Software, except that You may alter any license notices to\nthe extent required to remedy known factual inaccuracies.\n\n3.5. Application of Additional Terms\n\nYou may choose to offer, and to charge a fee for, warranty, support,\nindemnity or liability obligations to one or more recipients of Covered\nSoftware. However, You may do so only on Your own behalf, and not on\nbehalf of any Contributor. You must make it absolutely clear that any\nsuch warranty, support, indemnity, or liability obligation is offered by\nYou alone, and You hereby agree to indemnify every Contributor for any\nliability incurred by such Contributor as a result of warranty, support,\nindemnity or liability terms You offer. You may include additional\ndisclaimers of warranty and limitations of liability specific to any\njurisdiction.\n\n4. Inability to Comply Due to Statute or Regulation\n---------------------------------------------------\n\nIf it is impossible for You to comply with any of the terms of this\nLicense with respect to some or all of the Covered Software due to\nstatute, judicial order, or regulation then You must: (a) comply with\nthe terms of this License to the maximum extent possible; and (b)\ndescribe the limitations and the code they affect. Such description must\nbe placed in a text file included with all distributions of the Covered\nSoftware under this License. Except to the extent prohibited by statute\nor regulation, such description must be sufficiently detailed for a\nrecipient of ordinary skill to be able to understand it.\n\n5. Termination\n--------------\n\n5.1. The rights granted under this License will terminate automatically\nif You fail to comply with any of its terms. However, if You become\ncompliant, then the rights granted under this License from a particular\nContributor are reinstated (a) provisionally, unless and until such\nContributor explicitly and finally terminates Your grants, and (b) on an\nongoing basis, if such Contributor fails to notify You of the\nnon-compliance by some reasonable means prior to 60 days after You have\ncome back into compliance. Moreover, Your grants from a particular\nContributor are reinstated on an ongoing basis if such Contributor\nnotifies You of the non-compliance by some reasonable means, this is the\nfirst time You have received notice of non-compliance with this License\nfrom such Contributor, and You become compliant prior to 30 days after\nYour receipt of the notice.\n\n5.2. If You initiate litigation against any entity by asserting a patent\ninfringement claim (excluding declaratory judgment actions,\ncounter-claims, and cross-claims) alleging that a Contributor Version\ndirectly or indirectly infringes any patent, then the rights granted to\nYou by any and all Contributors for the Covered Software under Section\n2.1 of this License shall terminate.\n\n5.3. In the event of termination under Sections 5.1 or 5.2 above, all\nend user license agreements (excluding distributors and resellers) which\nhave been validly granted by You or Your distributors under this License\nprior to termination shall survive termination.\n\n************************************************************************\n*                                                                      *\n*  6. Disclaimer of Warranty                                           *\n*  -------------------------                                           *\n*                                                                      *\n*  Covered Software is provided under this License on an \"as is\"       *\n*  basis, without warranty of any kind, either expressed, implied, or  *\n*  statutory, including, without limitation, warranties that the       *\n*  Covered Software is free of defects, merchantable, fit for a        *\n*  particular purpose or non-infringing. The entire risk as to the     *\n*  quality and performance of the Covered Software is with You.        *\n*  Should any Covered Software prove defective in any respect, You     *\n*  (not any Contributor) assume the cost of any necessary servicing,   *\n*  repair, or correction. This disclaimer of warranty constitutes an   *\n*  essential part of this License. No use of any Covered Software is   *\n*  authorized under this License except under this disclaimer.         *\n*                                                                      *\n************************************************************************\n\n************************************************************************\n*                                                                      *\n*  7. Limitation of Liability                                          *\n*  --------------------------                                          *\n*                                                                      *\n*  Under no circumstances and under no legal theory, whether tort      *\n*  (including negligence), contract, or otherwise, shall any           *\n*  Contributor, or anyone who distributes Covered Software as          *\n*  permitted above, be liable to You for any direct, indirect,         *\n*  special, incidental, or consequential damages of any character      *\n*  including, without limitation, damages for lost profits, loss of    *\n*  goodwill, work stoppage, computer failure or malfunction, or any    *\n*  and all other commercial damages or losses, even if such party      *\n*  shall have been informed of the possibility of such damages. This   *\n*  limitation of liability shall not apply to liability for death or   *\n*  personal injury resulting from such party's negligence to the       *\n*  extent applicable law prohibits such limitation. Some               *\n*  jurisdictions do not allow the exclusion or limitation of           *\n*  incidental or consequential damages, so this exclusion and          *\n*  limitation may not apply to You.                                    *\n*                                                                      *\n************************************************************************\n\n8. Litigation\n-------------\n\nAny litigation relating to this License may be brought only in the\ncourts of a jurisdiction where the defendant maintains its principal\nplace of business and such litigation shall be governed by laws of that\njurisdiction, without reference to its conflict-of-law provisions.\nNothing in this Section shall prevent a party's ability to bring\ncross-claims or counter-claims.\n\n9. Miscellaneous\n----------------\n\nThis License represents the complete agreement concerning the subject\nmatter hereof. If any provision of this License is held to be\nunenforceable, such provision shall be reformed only to the extent\nnecessary to make it enforceable. Any law or regulation which provides\nthat the language of a contract shall be construed against the drafter\nshall not be used to construe this License against a Contributor.\n\n10. Versions of the License\n---------------------------\n\n10.1. New Versions\n\nMozilla Foundation is the license steward. Except as provided in Section\n10.3, no one other than the license steward has the right to modify or\npublish new versions of this License. Each version will be given a\ndistinguishing version number.\n\n10.2. Effect of New Versions\n\nYou may distribute the Covered Software under the terms of the version\nof the License under which You originally received the Covered Software,\nor under the terms of any subsequent version published by the license\nsteward.\n\n10.3. Modified Versions\n\nIf you create software not governed by this License, and you want to\ncreate a new license for such software, you may create and use a\nmodified version of this License if you rename the license and remove\nany references to the name of the license steward (except to note that\nsuch modified license differs from this License).\n\n10.4. Distributing Source Code Form that is Incompatible With Secondary\nLicenses\n\nIf You choose to distribute Source Code Form that is Incompatible With\nSecondary Licenses under the terms of this version of the License, the\nnotice described in Exhibit B of this License must be attached.\n\nExhibit A - Source Code Form License Notice\n-------------------------------------------\n\n  This Source Code Form is subject to the terms of the Mozilla Public\n  License, v. 2.0. If a copy of the MPL was not distributed with this\n  file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\nIf it is not possible or desirable to put the notice in a particular\nfile, then You may include the notice in a location (such as a LICENSE\nfile in a relevant directory) where a recipient would be likely to look\nfor such a notice.\n\nYou may add additional accurate notices of copyright ownership.\n\nExhibit B - \"Incompatible With Secondary Licenses\" Notice\n---------------------------------------------------------\n\n  This Source Code Form is \"Incompatible With Secondary Licenses\", as\n  defined by the Mozilla Public License, v. 2.0.\n"
  },
  {
    "path": "README.md",
    "content": "# tardis-dev\n\n[![Version](https://img.shields.io/npm/v/tardis-dev.svg)](https://www.npmjs.org/package/tardis-dev)\n\n<br/>\n\nNode.js `tardis-dev` library provides convenient access to tick-level real-time and historical cryptocurrency market data both in exchange native and normalized formats. Instead of callbacks it relies on [async iteration (for await ...of)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) enabling composability features like [seamless switching between real-time data streaming and historical data replay](https://docs.tardis.dev/node-client/normalization#seamless-switching-between-real-time-streaming-and-historical-market-data-replay) or [computing derived data locally](https://docs.tardis.dev/node-client/normalization#computing-derived-data-locally).\n\n<br/>\n\n```javascript\nimport { replayNormalized, normalizeTrades, normalizeBookChanges } from 'tardis-dev'\n\nconst messages = replayNormalized(\n  {\n    exchange: 'binance',\n    symbols: ['btcusdt'],\n    from: '2024-03-01',\n    to: '2024-03-02'\n  },\n  normalizeTrades,\n  normalizeBookChanges\n)\n\nfor await (const message of messages) {\n  console.log(message)\n}\n```\n\n<br/>\n\n## Features\n\n- historical tick-level [market data replay](https://docs.tardis.dev/node-client/replaying-historical-data) backed by [tardis.dev HTTP API](https://docs.tardis.dev/api/http-api-reference#data-feeds-exchange) — includes full order book depth snapshots plus incremental updates, tick-by-tick trades, historical open interest, funding, index, mark prices, liquidations and more\n\n  <br/>\n\n- consolidated [real-time data streaming API](https://docs.tardis.dev/node-client/streaming-real-time-data) connecting directly to exchanges' public WebSocket APIs\n\n<br/>\n\n- support for both [exchange-native and normalized market data](https://docs.tardis.dev/faq/data) formats (unified format for accessing market data across all supported exchanges — normalized trades, order book and ticker data)\n\n<br/>\n\n- [seamless switching between real-time streaming and historical market data replay](https://docs.tardis.dev/node-client/normalization#seamless-switching-between-real-time-streaming-and-historical-market-data-replay) thanks to [`async iterables`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) providing unified way of consuming data messages\n\n<br/>\n\n- transparent historical local data caching \\(cached data is stored on disk per slice in compressed format and decompressed on demand when reading the data\\)\n\n<br/>\n\n- support for many cryptocurrency exchanges — see [docs.tardis.dev](https://docs.tardis.dev) for the full list\n\n<br/>\n\n- automatic closed connections and stale connections reconnection logic for real-time streams\n\n<br/>\n\n- [combining multiple exchanges feeds into single one](https://docs.tardis.dev/node-client/normalization#combining-data-streams) via [`combine`](https://docs.tardis.dev/node-client/normalization#combining-data-streams) helper function — synchronized historical market data replay and consolidated real-time data streaming from multiple exchanges\n\n<br/>\n\n- [computing derived data locally](https://docs.tardis.dev/node-client/normalization#computing-derived-data-locally) like order book imbalance, custom trade bars, book snapshots and more via [`compute`](https://docs.tardis.dev/node-client/normalization#computing-derived-data-locally) helper function and `computables`, e.g., volume based bars, top 20 levels order book snapshots taken every 10 ms etc.\n\n<br/>\n\n- [full limit order book reconstruction](https://docs.tardis.dev/node-client/normalization#limit-order-book-reconstruction) both for real-time and historical data via `OrderBook` object\n\n<br/>\n\n- fast and lightweight architecture — low memory footprint and no heavy in-memory buffering\n\n<br/>\n\n- [extensible mapping logic](https://docs.tardis.dev/node-client/normalization#modifying-built-in-and-adding-custom-normalizers) that allows adjusting normalized formats for specific needs\n\n<br/>\n\n- [built-in TypeScript support](https://docs.tardis.dev/node-client/quickstart#es-modules-and-typescript)\n\n<br/>\n<br/>\n<br/>\n\n## Installation\n\nRequires Node.js v24+ installed.\n\n```bash\nnpm install tardis-dev --save\n```\n\n`tardis-dev` is ESM-only. Examples in this README use ES modules and top-level await. Save snippets as `.mjs` or set `\"type\": \"module\"` in your `package.json`.\n\n<br/>\n<br/>\n\n## Documentation\n\n### [See official docs](https://docs.tardis.dev/node-client/quickstart).\n\n<br/>\n<br/>\n\n## Examples\n\n### Real-time spread across multiple exchanges\n\nExample showing how to quickly display real-time spread and best bid/ask info across multiple exchanges at once. It can be easily adapted to do the same for historical data \\(`replayNormalized` instead of `streamNormalized`).\n\n```javascript\nimport { streamNormalized, normalizeBookChanges, combine, compute, computeBookSnapshots } from 'tardis-dev'\n\nconst exchangesToStream = [\n  { exchange: 'bitmex', symbols: ['XBTUSD'] },\n  { exchange: 'deribit', symbols: ['BTC-PERPETUAL'] },\n  { exchange: 'cryptofacilities', symbols: ['PI_XBTUSD'] }\n]\n// for each specified exchange call streamNormalized for it\n// so we have multiple real-time streams for all specified exchanges\nconst realTimeStreams = exchangesToStream.map((e) => {\n  return streamNormalized(e, normalizeBookChanges)\n})\n\n// combine all real-time message streams into one\nconst messages = combine(...realTimeStreams)\n\n// create book snapshots with depth1 that are produced\n// every time best bid/ask info is changed\n// effectively computing real-time quotes\nconst realTimeQuoteComputable = computeBookSnapshots({\n  depth: 1,\n  interval: 0,\n  name: 'realtime_quote'\n})\n\n// compute real-time quotes for combines real-time messages\nconst messagesWithQuotes = compute(messages, realTimeQuoteComputable)\n\nconst spreads = {}\n\n// print spreads info every 100ms\nsetInterval(() => {\n  console.clear()\n  console.log(spreads)\n}, 100)\n\n// update spreads info real-time\nfor await (const message of messagesWithQuotes) {\n  if (message.type === 'book_snapshot') {\n    spreads[message.exchange] = {\n      spread: message.asks[0].price - message.bids[0].price,\n      bestBid: message.bids[0],\n      bestAsk: message.asks[0]\n    }\n  }\n}\n```\n\n<br/>\n\n### Seamless switching between real-time streaming and historical market data replay\n\nExample showing simple pattern of providing `async iterable` of market data messages to the function that can process them no matter if it's is real-time or historical market data. That effectively enables having the same 'data pipeline' for backtesting and live trading.\n\n```javascript\nimport { replayNormalized, streamNormalized, normalizeTrades, compute, computeTradeBars } from 'tardis-dev'\n\nconst historicalMessages = replayNormalized(\n  {\n    exchange: 'binance',\n    symbols: ['btcusdt'],\n    from: '2024-03-01',\n    to: '2024-03-02'\n  },\n  normalizeTrades\n)\n\nconst realTimeMessages = streamNormalized(\n  {\n    exchange: 'binance',\n    symbols: ['btcusdt']\n  },\n  normalizeTrades\n)\n\nasync function produceVolumeBasedTradeBars(messages) {\n  const withVolumeTradeBars = compute(\n    messages,\n    computeTradeBars({\n      kind: 'volume',\n      interval: 1 // aggregate by 1 BTC traded volume\n    })\n  )\n\n  for await (const message of withVolumeTradeBars) {\n    if (message.type === 'trade_bar') {\n      console.log(message.name, message)\n    }\n  }\n}\n\nawait produceVolumeBasedTradeBars(historicalMessages)\n\n// or for real time data\n//  await produceVolumeBasedTradeBars(realTimeMessages)\n```\n\n<br/>\n\n### Stream real-time market data in exchange native data format\n\n```javascript\nimport { stream } from 'tardis-dev'\n\nconst messages = stream({\n  exchange: 'binance',\n  filters: [\n    { channel: 'trade', symbols: ['btcusdt'] },\n    { channel: 'depth', symbols: ['btcusdt'] }\n  ]\n})\n\nfor await (const { localTimestamp, message } of messages) {\n  console.log(localTimestamp, message)\n}\n```\n\n<br/>\n\n### Replay historical market data in exchange native data format\n\n```javascript\nimport { replay } from 'tardis-dev'\n\nconst messages = replay({\n  exchange: 'binance',\n  filters: [\n    { channel: 'trade', symbols: ['btcusdt'] },\n    { channel: 'depth', symbols: ['btcusdt'] }\n  ],\n  from: '2024-03-01',\n  to: '2024-03-02'\n})\n\nfor await (const { localTimestamp, message } of messages) {\n  console.log(localTimestamp, message)\n}\n```\n\n<br/>\n<br/>\n\n## See the [tardis-dev docs](https://docs.tardis.dev/node-client/quickstart) for more examples.\n"
  },
  {
    "path": "example.js",
    "content": "import { replayNormalized, streamNormalized, normalizeTrades, compute, computeTradeBars } from 'tardis-dev'\n\nconst historicalMessages = replayNormalized(\n  {\n    exchange: 'binance',\n    symbols: ['btcusdt'],\n    from: '2024-03-01',\n    to: '2024-03-02'\n  },\n  normalizeTrades\n)\n\nconst realTimeMessages = streamNormalized(\n  {\n    exchange: 'binance',\n    symbols: ['btcusdt']\n  },\n  normalizeTrades\n)\n\nasync function produceVolumeBasedTradeBars(messages) {\n  // aggregate by 1 BTC traded volume\n  const withVolumeTradeBars = compute(messages, computeTradeBars({ kind: 'volume', interval: 1 }))\n\n  for await (const message of withVolumeTradeBars) {\n    if (message.type === 'trade_bar') {\n      console.log(message.name, message)\n    }\n  }\n}\n\nawait produceVolumeBasedTradeBars(historicalMessages)\n\n// or for real time data\n//  await produceVolumeBasedTradeBars(realTimeMessages)\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"tardis-dev\",\n  \"version\": \"16.0.0\",\n  \"engines\": {\n    \"node\": \">=25\"\n  },\n  \"devEngines\": {\n    \"runtime\": {\n      \"name\": \"node\",\n      \"version\": \">=25\"\n    },\n    \"packageManager\": {\n      \"name\": \"npm\",\n      \"version\": \">=11.11.1\"\n    }\n  },\n  \"description\": \"Convenient access to tick-level historical and real-time cryptocurrency market data via Node.js\",\n  \"main\": \"dist/index.js\",\n  \"source\": \"src/index.ts\",\n  \"types\": \"dist/index.d.ts\",\n  \"type\": \"module\",\n  \"exports\": {\n    \".\": {\n      \"types\": \"./dist/index.d.ts\",\n      \"import\": \"./dist/index.js\",\n      \"default\": \"./dist/index.js\"\n    },\n    \"./package.json\": \"./package.json\"\n  },\n  \"repository\": \"tardis-dev/tardis-node\",\n  \"homepage\": \"https://docs.tardis.dev/api/node-js\",\n  \"scripts\": {\n    \"build\": \"tsc -p tsconfig.json\",\n    \"precommit\": \"lint-staged\",\n    \"test\": \"npm run build && node --experimental-vm-modules ./node_modules/jest/bin/jest.js --forceExit --runInBand\",\n    \"prepare\": \"npm run build\",\n    \"format\": \"prettier --write .\",\n    \"check-format\": \"prettier --check .\"\n  },\n  \"files\": [\n    \"src\",\n    \"dist\",\n    \"example.js\"\n  ],\n  \"keywords\": [\n    \"cryptocurrency data feed\",\n    \"market data\",\n    \"api client\",\n    \"crypto markets data replay\",\n    \"historical data\",\n    \"real-time cryptocurrency market data feed\",\n    \"historical cryptocurrency prices\",\n    \"cryptocurrency api\",\n    \"real-time normalized WebSocket cryptocurrency markets data\",\n    \"normalized cryptocurrency market data API\",\n    \"order book reconstruction\",\n    \"market data normalization\",\n    \"cryptocurrency api\",\n    \"cryptocurrency\",\n    \"orderbook\",\n    \"exchange\",\n    \"websocket\",\n    \"realtime\",\n    \"bitmex\",\n    \"binance\",\n    \"trading\",\n    \"high granularity order book data\"\n  ],\n  \"license\": \"MPL-2.0\",\n  \"dependencies\": {\n    \"bintrees\": \"^1.0.2\",\n    \"debug\": \"^4.3.3\",\n    \"follow-redirects\": \"^1.15.9\",\n    \"https-proxy-agent\": \"^8.0.0\",\n    \"p-map\": \"^7.0.4\",\n    \"socks-proxy-agent\": \"^9.0.0\",\n    \"ws\": \"^8.18.3\"\n  },\n  \"devDependencies\": {\n    \"@types/bintrees\": \"^1.0.6\",\n    \"@types/debug\": \"^4.1.7\",\n    \"@types/follow-redirects\": \"^1.14.4\",\n    \"@types/jest\": \"^29.0.0\",\n    \"@types/node\": \"^25.3.5\",\n    \"@types/ws\": \"^8.18.1\",\n    \"jest\": \"^29.0.0\",\n    \"lint-staged\": \"^12.1.3\",\n    \"prettier\": \"^2.5.1\",\n    \"ts-jest\": \"^29.4.0\",\n    \"typescript\": \"^5.9.3\"\n  },\n  \"lint-staged\": {\n    \"*.{ts}\": [\n      \"prettier --write\",\n      \"git add\"\n    ]\n  },\n  \"jest\": {\n    \"extensionsToTreatAsEsm\": [\n      \".ts\"\n    ],\n    \"moduleNameMapper\": {\n      \"^(\\\\.{1,2}/.*)\\\\.js$\": \"$1\"\n    },\n    \"transform\": {\n      \"\\\\.(ts|tsx)?$\": [\n        \"ts-jest\",\n        {\n          \"useESM\": true,\n          \"tsconfig\": \"./test/tsconfig.json\"\n        }\n      ]\n    },\n    \"testEnvironment\": \"node\",\n    \"setupFiles\": [\n      \"./test/setup.js\"\n    ]\n  },\n  \"runkitExampleFilename\": \"example.js\"\n}\n"
  },
  {
    "path": "src/apikeyaccessinfo.ts",
    "content": "import { getJSON } from './handy.ts'\nimport { getOptions } from './options.ts'\nimport { Exchange } from './types.ts'\n\nexport async function getApiKeyAccessInfo(apiKey?: string) {\n  const options = getOptions()\n  const apiKeyToCheck = apiKey || options.apiKey\n\n  const { data } = await getJSON<ApiKeyAccessInfo>(`${options.endpoint}/api-key-info`, {\n    headers: {\n      Authorization: `Bearer ${apiKeyToCheck}`\n    }\n  })\n\n  return data\n}\n\nexport type ApiKeyAccessInfo = {\n  exchange: Exchange\n  accessType: string\n  from: string\n  to: string\n  symbols: string[]\n  dataPlan: string\n}[]\n"
  },
  {
    "path": "src/binarysplit.ts",
    "content": "import { Transform } from 'stream'\nimport type { TransformCallback } from 'stream'\n\n// Inspired by https://github.com/maxogden/binary-split/blob/master/index.js\nexport class BinarySplitStream extends Transform {\n  private readonly _NEW_LINE_BYTE: number\n  private _buffered?: Buffer\n\n  constructor() {\n    super({\n      readableObjectMode: true\n    })\n\n    this._NEW_LINE_BYTE = 10\n    this._buffered = undefined\n  }\n\n  _transform(chunk: Buffer, _: string, callback: TransformCallback) {\n    let chunkStart = 0\n\n    if (this._buffered !== undefined) {\n      const firstNewLineIndex = chunk.indexOf(this._NEW_LINE_BYTE)\n\n      if (firstNewLineIndex === -1) {\n        this._buffered = Buffer.concat([this._buffered, chunk])\n        callback()\n        return\n      }\n\n      this.push(Buffer.concat([this._buffered, chunk.subarray(0, firstNewLineIndex)]))\n      this._buffered = undefined\n      chunkStart = firstNewLineIndex + 1\n    }\n\n    let offset = chunkStart\n    let lineStart = chunkStart\n\n    while (true) {\n      const newLineIndex = chunk.indexOf(this._NEW_LINE_BYTE, offset)\n      if (newLineIndex === -1) {\n        break\n      }\n\n      this.push(chunk.subarray(lineStart, newLineIndex))\n      offset = newLineIndex + 1\n      lineStart = offset\n    }\n\n    this._buffered = lineStart < chunk.length ? chunk.subarray(lineStart) : undefined\n    callback()\n  }\n}\n"
  },
  {
    "path": "src/clearcache.ts",
    "content": "import { rmSync } from 'node:fs'\nimport { rm } from 'node:fs/promises'\nimport { debug } from './debug.ts'\nimport { getOptions } from './options.ts'\nimport { Filter, Exchange } from './types.ts'\nimport { sha256, optimizeFilters, doubleDigit } from './handy.ts'\n\nexport async function clearCache(exchange?: Exchange, filters?: Filter<any>[], year?: number, month?: number, day?: number) {\n  try {\n    const dirToRemove = getDirToRemove(exchange, filters, year, month, day)\n\n    debug('clearing cache dir: %s', dirToRemove)\n\n    await rm(dirToRemove, { force: true, recursive: true })\n\n    debug('cleared cache dir: %s', dirToRemove)\n  } catch (e) {\n    debug('clearing cache dir error: %o', e)\n  }\n}\n\nexport function clearCacheSync(exchange?: Exchange, filters?: Filter<any>[], year?: number, month?: number, day?: number) {\n  try {\n    const dirToRemove = getDirToRemove(exchange, filters, year, month, day)\n\n    debug('clearing cache (sync) dir: %s', dirToRemove)\n\n    rmSync(dirToRemove, { force: true, recursive: true })\n\n    debug('cleared cache(sync) dir: %s', dirToRemove)\n  } catch (e) {\n    debug('clearing cache (sync) dir error: %o', e)\n  }\n}\n\nfunction getDirToRemove(exchange?: Exchange, filters?: Filter<any>[], year?: number, month?: number, day?: number) {\n  const options = getOptions()\n\n  let dirToRemove = `${options.cacheDir}/feeds`\n\n  if (exchange !== undefined) {\n    dirToRemove += `/${exchange}`\n  }\n\n  if (filters !== undefined) {\n    dirToRemove += `/${sha256(optimizeFilters(filters))}`\n  }\n\n  if (year !== undefined) {\n    dirToRemove += `/${year}`\n  }\n\n  if (month !== undefined) {\n    dirToRemove += `/${doubleDigit(month)}`\n  }\n\n  if (day !== undefined) {\n    dirToRemove += `/${doubleDigit(day)}`\n  }\n\n  return dirToRemove\n}\n"
  },
  {
    "path": "src/combine.ts",
    "content": "import { PassThrough } from 'stream'\nimport { once } from 'events'\n\ntype NextMessageResultWithIndex = {\n  index: number\n  result: IteratorResult<Combinable, Combinable>\n}\n\ntype Combinable = { localTimestamp: Date }\n\nconst DATE_MAX = new Date(8640000000000000)\n\ntype OffsetMS = number | ((message: Combinable) => number)\n\nasync function nextWithIndex(\n  iterator: AsyncIterableIterator<Combinable> | { stream: AsyncIterableIterator<Combinable>; offsetMS: OffsetMS },\n  index: number\n): Promise<NextMessageResultWithIndex> {\n  if ('offsetMS' in iterator) {\n    const result = await iterator.stream.next()\n\n    if (!result.done) {\n      const offsetMS = typeof iterator.offsetMS === 'function' ? iterator.offsetMS(result.value) : iterator.offsetMS\n\n      if (offsetMS !== 0) {\n        result.value.localTimestamp.setUTCMilliseconds(result.value.localTimestamp.getUTCMilliseconds() + offsetMS)\n      }\n    }\n\n    return {\n      result,\n      index\n    }\n  } else {\n    const result = await iterator.next()\n\n    return {\n      result,\n      index\n    }\n  }\n}\n\nfunction findOldestResult(oldest: NextMessageResultWithIndex, current: NextMessageResultWithIndex) {\n  if (oldest.result.done) {\n    return oldest\n  }\n\n  if (current.result.done) {\n    return current\n  }\n\n  const currentTimestamp = current.result.value.localTimestamp.valueOf()\n  const oldestTimestamp = oldest.result.value.localTimestamp.valueOf()\n\n  if (currentTimestamp < oldestTimestamp) {\n    return current\n  }\n\n  if (currentTimestamp === oldestTimestamp) {\n    const currentTimestampMicroSeconds = current.result.value.localTimestamp.μs || 0\n    const oldestTimestampMicroSeconds = oldest.result.value.localTimestamp.μs || 0\n\n    if (currentTimestampMicroSeconds < oldestTimestampMicroSeconds) {\n      return current\n    }\n  }\n\n  return oldest\n}\n\n// combines multiple iterators from for example multiple exchanges\n// works both for real-time and historical data\nexport async function* combine<\n  T extends AsyncIterableIterator<Combinable>[] | { stream: AsyncIterableIterator<Combinable>; offsetMS: OffsetMS }[]\n>(\n  ...iteratorsPayload: T\n): AsyncIterableIterator<\n  T extends AsyncIterableIterator<infer U>[] ? U : T extends { stream: AsyncIterableIterator<infer Z> }[] ? Z : never\n> {\n  const iterators = iteratorsPayload.map((payload) => {\n    if ('stream' in payload) {\n      return payload.stream\n    }\n    return payload\n  })\n\n  if (iterators.length === 0) {\n    return\n  }\n  // decide based on first provided iterator if we're dealing with real-time or historical data streams\n  if ((iterators[0] as any).__realtime__) {\n    const combinedStream = new PassThrough({\n      objectMode: true,\n      highWaterMark: 8096\n    })\n\n    combinedStream.setMaxListeners(iterators.length + 1)\n\n    iterators.forEach(async function writeMessagesToCombinedStream(messages) {\n      for await (const message of messages) {\n        if (combinedStream.destroyed) {\n          return\n        }\n\n        if (!combinedStream.write(message)) {\n          // Handle backpressure on write\n          await once(combinedStream, 'drain')\n        }\n      }\n    })\n\n    for await (const message of combinedStream) {\n      yield message\n    }\n  } else {\n    return yield* combineHistorical(iteratorsPayload) as any\n  }\n}\n\nasync function* combineHistorical(\n  iterators: AsyncIterableIterator<Combinable>[] | { stream: AsyncIterableIterator<Combinable>; offsetMS: OffsetMS }[]\n) {\n  try {\n    // wait for all results to resolve\n    const results = await Promise.all(iterators.map(nextWithIndex))\n    let aliveIteratorsCount = results.length\n    do {\n      // if we're dealing with historical data replay\n      // and need to return combined messages iterable sorted by local timestamp in ascending order\n\n      // find resolved one that is the 'oldest'\n      const oldestResult = results.reduce(findOldestResult, results[0])\n      const { result, index } = oldestResult\n\n      if (result.done) {\n        aliveIteratorsCount--\n\n        // we don't want finished iterators to every be considered 'oldest' again\n        // hence provide them with result that has local timestamp set to DATE_MAX\n        // and that is not done\n\n        results[index].result = {\n          done: false,\n          value: {\n            localTimestamp: DATE_MAX\n          }\n        }\n      } else {\n        // yield oldest value and replace with next value from iterable for given index\n        yield result.value\n        results[index] = await nextWithIndex(iterators[index], index)\n      }\n    } while (aliveIteratorsCount > 0)\n  } finally {\n    for (let iterator of iterators) {\n      ;(iterator as any).return()\n    }\n  }\n}\n"
  },
  {
    "path": "src/computable/booksnapshot.ts",
    "content": "import { decimalPlaces } from '../handy.ts'\nimport { OrderBook, OnLevelRemovedCB } from '../orderbook.ts'\nimport { BookChange, BookPriceLevel, BookSnapshot, Optional } from '../types.ts'\nimport { Computable } from './computable.ts'\n\ntype BookSnapshotComputableOptions = {\n  name?: string\n  depth: number\n  grouping?: number\n  interval: number\n  removeCrossedLevels?: boolean\n  onCrossedLevelRemoved?: OnLevelRemovedCB\n}\n\nexport const computeBookSnapshots =\n  (options: BookSnapshotComputableOptions): (() => Computable<BookSnapshot>) =>\n  () =>\n    new BookSnapshotComputable(options)\n\nconst emptyBookLevel = {\n  price: undefined,\n  amount: undefined\n}\n\nconst levelsChanged = (level1: Optional<BookPriceLevel>, level2: Optional<BookPriceLevel>) => {\n  if (level1.amount !== level2.amount) {\n    return true\n  }\n\n  if (level1.price !== level2.price) {\n    return true\n  }\n\n  return false\n}\n\nclass BookSnapshotComputable implements Computable<BookSnapshot> {\n  public readonly sourceDataTypes = ['book_change']\n  private _bookChanged = false\n  private _initialized = false\n\n  private readonly _type = 'book_snapshot'\n  private readonly _orderBook: OrderBook\n  private readonly _depth: number\n  private readonly _interval: number\n  private readonly _name: string\n  private readonly _grouping: number | undefined\n  private readonly _groupingDecimalPlaces: number | undefined\n\n  private _lastUpdateTimestamp: Date = new Date(-1)\n  private _bids: Optional<BookPriceLevel>[] = []\n  private _asks: Optional<BookPriceLevel>[] = []\n\n  constructor({ depth, name, interval, removeCrossedLevels, grouping, onCrossedLevelRemoved }: BookSnapshotComputableOptions) {\n    this._depth = depth\n    this._interval = interval\n    this._grouping = grouping\n    this._groupingDecimalPlaces = this._grouping ? decimalPlaces(this._grouping) : undefined\n\n    this._orderBook = new OrderBook({\n      removeCrossedLevels,\n      onCrossedLevelRemoved\n    })\n\n    // initialize all bids/asks levels to empty ones\n    for (let i = 0; i < this._depth; i++) {\n      this._bids[i] = emptyBookLevel\n      this._asks[i] = emptyBookLevel\n    }\n\n    if (name === undefined) {\n      this._name = `${this._type}_${depth}${this._grouping ? `_grouped${this._grouping}` : ''}_${interval}ms`\n    } else {\n      this._name = name\n    }\n  }\n\n  public *compute(bookChange: BookChange) {\n    if (this._hasNewSnapshot(bookChange.timestamp)) {\n      yield this._getSnapshot(bookChange)\n    }\n\n    this._update(bookChange)\n\n    // check again after the update as book snapshot with interval set to 0 (real-time) could have changed\n    // or it's initial snapshot\n    if (this._hasNewSnapshot(bookChange.timestamp)) {\n      yield this._getSnapshot(bookChange)\n\n      if (this._initialized === false) {\n        this._initialized = true\n      }\n    }\n  }\n\n  public _hasNewSnapshot(timestamp: Date): boolean {\n    if (this._bookChanged === false) {\n      return false\n    }\n\n    // report new snapshot anytime book changed\n    if (this._interval === 0) {\n      return true\n    }\n\n    // report new snapshot for book snapshots with interval for initial snapshot\n    if (this._initialized === false) {\n      return true\n    }\n\n    const currentTimestampTimeBucket = this._getTimeBucket(timestamp)\n    const snapshotTimestampBucket = this._getTimeBucket(this._lastUpdateTimestamp)\n\n    if (currentTimestampTimeBucket > snapshotTimestampBucket) {\n      // set  timestamp to end of snapshot 'interval' period\n      this._lastUpdateTimestamp = new Date((snapshotTimestampBucket + 1) * this._interval)\n\n      return true\n    }\n\n    return false\n  }\n\n  public _update(bookChange: BookChange) {\n    this._orderBook.update(bookChange)\n\n    if (this._grouping !== undefined) {\n      this._updateSideGrouped(this._orderBook.bids(), this._bids, this._getGroupedPriceForBids)\n      this._updateSideGrouped(this._orderBook.asks(), this._asks, this._getGroupedPriceForAsks)\n    } else {\n      this._updatedNotGrouped()\n    }\n\n    this._lastUpdateTimestamp = bookChange.timestamp\n  }\n\n  private _updatedNotGrouped() {\n    const bidsIterable = this._orderBook.bids()\n    const asksIterable = this._orderBook.asks()\n\n    for (let i = 0; i < this._depth; i++) {\n      const bidLevelResult = bidsIterable.next()\n      const newBid = bidLevelResult.done ? emptyBookLevel : bidLevelResult.value\n\n      if (levelsChanged(this._bids[i], newBid)) {\n        this._bids[i] = { ...newBid }\n        this._bookChanged = true\n      }\n\n      const askLevelResult = asksIterable.next()\n      const newAsk = askLevelResult.done ? emptyBookLevel : askLevelResult.value\n\n      if (levelsChanged(this._asks[i], newAsk)) {\n        this._asks[i] = { ...newAsk }\n        this._bookChanged = true\n      }\n    }\n  }\n\n  private _getGroupedPriceForBids = (price: number) => {\n    const pow = Math.pow(10, this._groupingDecimalPlaces!)\n    const pricePow = price * pow\n    const groupPow = this._grouping! * pow\n    const remainder = (pricePow % groupPow) / pow\n\n    return (pricePow - remainder * pow) / pow\n  }\n\n  private _getGroupedPriceForAsks = (price: number) => {\n    const pow = Math.pow(10, this._groupingDecimalPlaces!)\n    const pricePow = price * pow\n    const groupPow = this._grouping! * pow\n    const remainder = (pricePow % groupPow) / pow\n\n    return (pricePow - remainder * pow + (remainder > 0 ? groupPow : 0)) / pow\n  }\n\n  private _updateSideGrouped(\n    newLevels: IterableIterator<BookPriceLevel>,\n    existingGroupedLevels: Optional<BookPriceLevel>[],\n    getGroupedPriceForLevel: (price: number) => number\n  ) {\n    let currentGroupedPrice: number | undefined = undefined\n    let aggAmount = 0\n    let currentDepth = 0\n\n    for (const notGroupedLevel of newLevels) {\n      const groupedPrice = getGroupedPriceForLevel(notGroupedLevel.price)\n\n      if (currentGroupedPrice == undefined) {\n        currentGroupedPrice = groupedPrice\n      }\n\n      if (currentGroupedPrice != groupedPrice) {\n        const groupedLevel = {\n          price: currentGroupedPrice,\n          amount: aggAmount\n        }\n\n        if (levelsChanged(existingGroupedLevels[currentDepth], groupedLevel)) {\n          existingGroupedLevels[currentDepth] = groupedLevel\n          this._bookChanged = true\n        }\n\n        currentDepth++\n\n        if (currentDepth === this._depth) {\n          break\n        }\n\n        currentGroupedPrice = groupedPrice\n        aggAmount = 0\n      }\n\n      aggAmount += notGroupedLevel.amount\n    }\n\n    if (currentDepth < this._depth && aggAmount > 0) {\n      const groupedLevel = {\n        price: currentGroupedPrice,\n        amount: aggAmount\n      }\n\n      if (levelsChanged(existingGroupedLevels[currentDepth], groupedLevel)) {\n        existingGroupedLevels[currentDepth] = groupedLevel\n        this._bookChanged = true\n      }\n    }\n  }\n\n  public _getSnapshot(bookChange: BookChange) {\n    const snapshot: BookSnapshot = {\n      type: this._type as any,\n      symbol: bookChange.symbol,\n      exchange: bookChange.exchange,\n      name: this._name,\n      depth: this._depth,\n      interval: this._interval,\n      grouping: this._grouping,\n      bids: [...this._bids],\n      asks: [...this._asks],\n      timestamp: this._lastUpdateTimestamp,\n      localTimestamp: bookChange.localTimestamp\n    }\n\n    this._bookChanged = false\n\n    return snapshot\n  }\n\n  private _getTimeBucket(timestamp: Date) {\n    return Math.floor(timestamp.valueOf() / this._interval)\n  }\n}\n"
  },
  {
    "path": "src/computable/computable.ts",
    "content": "import { Disconnect, Exchange, NormalizedData } from '../types.ts'\n\nexport type Computable<T extends NormalizedData> = {\n  readonly sourceDataTypes: string[]\n  compute(message: NormalizedData): IterableIterator<T>\n}\n\nexport type ComputableFactory<T extends NormalizedData> = () => Computable<T>\n\nasync function* _compute<T extends ComputableFactory<any>[], U extends NormalizedData | Disconnect>(\n  messages: AsyncIterableIterator<U>,\n  ...computables: T\n): AsyncIterableIterator<T extends ComputableFactory<infer Z>[] ? (U extends Disconnect ? U | Z | Disconnect : U | Z) : never> {\n  try {\n    const factory = new Computables(computables)\n\n    for await (const message of messages) {\n      // always pass through source message\n      yield message as any\n\n      if (message.type === 'disconnect') {\n        // reset all computables for given exchange if we've received disconnect for it\n        factory.reset(message.exchange)\n        continue\n      }\n\n      const normalizedMessage = message as NormalizedData\n      const id = normalizedMessage.name !== undefined ? `${normalizedMessage.symbol}:${normalizedMessage.name}` : normalizedMessage.symbol\n\n      const computablesMap = factory.getOrCreate(normalizedMessage.exchange, id)\n      const computables = computablesMap[normalizedMessage.type]\n      if (!computables) continue\n\n      for (const computable of computables) {\n        for (const computedMessage of computable.compute(normalizedMessage)) {\n          yield computedMessage\n        }\n      }\n    }\n  } finally {\n    messages.return!()\n  }\n}\n\nexport function compute<T extends ComputableFactory<any>[], U extends NormalizedData | Disconnect>(\n  messages: AsyncIterableIterator<U>,\n  ...computables: T\n): AsyncIterableIterator<T extends ComputableFactory<infer Z>[] ? (U extends Disconnect ? U | Z | Disconnect : U | Z) : never> {\n  let _iterator = _compute(messages, ...computables)\n\n  if ((messages as any).__realtime__ === true) {\n    ;(_iterator as any).__realtime__ = true\n  }\n\n  return _iterator\n}\n\nclass Computables {\n  private _computables: {\n    [ex in Exchange]?: {\n      [key: string]: { [dataType: string]: Computable<any>[] }\n    }\n  } = {}\n\n  constructor(private readonly _computablesFactories: ComputableFactory<any>[]) {}\n\n  getOrCreate(exchange: Exchange, id: string) {\n    if (this._computables[exchange] === undefined) {\n      this._computables[exchange] = {}\n    }\n\n    if (this._computables[exchange]![id] === undefined) {\n      this._computables[exchange]![id] = createComputablesMap(this._computablesFactories.map((c) => c()))\n    }\n\n    return this._computables[exchange]![id]!\n  }\n\n  reset(exchange: Exchange) {\n    this._computables[exchange] = undefined\n  }\n}\n\nfunction createComputablesMap(computables: Computable<any>[]) {\n  return computables.reduce((acc, computable) => {\n    computable.sourceDataTypes.forEach((dataType) => {\n      const existing = acc[dataType]\n      if (!existing) {\n        acc[dataType] = [computable]\n      } else {\n        acc[dataType].push(computable)\n      }\n    })\n    return acc\n  }, {} as { [dataType: string]: Computable<any>[] })\n}\n"
  },
  {
    "path": "src/computable/index.ts",
    "content": "export * from './booksnapshot.ts'\nexport * from './computable.ts'\nexport * from './tradebar.ts'\n"
  },
  {
    "path": "src/computable/tradebar.ts",
    "content": "import { BookChange, NormalizedData, Trade, TradeBar, Writeable } from '../types.ts'\nimport { Computable } from './computable.ts'\n\nconst DATE_MIN = new Date(-1)\n\ntype BarKind = 'time' | 'volume' | 'tick'\n\ntype TradeBarComputableOptions = { kind: BarKind; interval: number; name?: string }\n\nexport const computeTradeBars =\n  (options: TradeBarComputableOptions): (() => Computable<TradeBar>) =>\n  () =>\n    new TradeBarComputable(options)\n\nconst kindSuffix: { [key in BarKind]: string } = {\n  tick: 'ticks',\n  time: 'ms',\n  volume: 'vol'\n}\n\nclass TradeBarComputable implements Computable<TradeBar> {\n  // use book_change messages as workaround for issue when time passes for new bar to be produced but there's no trades,\n  // so logic `compute` would not execute\n  // assumption is that if one subscribes to book changes too then there's pretty good chance that\n  // even if there are no trades, there's plenty of book changes that trigger computing new trade bar if time passess\n  public readonly sourceDataTypes = ['trade']\n\n  private _inProgressBar: Writeable<TradeBar>\n  private readonly _kind: BarKind\n  private readonly _interval: number\n  private readonly _name: string\n  private readonly _type = 'trade_bar'\n\n  constructor({ kind, interval, name }: TradeBarComputableOptions) {\n    this._kind = kind\n    this._interval = interval\n\n    if (name === undefined) {\n      this._name = `${this._type}_${interval}${kindSuffix[kind]}`\n    } else {\n      this._name = name\n    }\n\n    this._inProgressBar = {} as any\n    this._reset()\n  }\n\n  public *compute(message: Trade | BookChange) {\n    // first check if there is a new trade bar for new timestamp for time based trade bars\n    if (this._hasNewBar(message.timestamp)) {\n      yield this._computeBar(message)\n    }\n\n    if (message.type !== 'trade') {\n      return\n    }\n\n    // update in progress trade bar with new data\n    this._update(message)\n\n    // and check again if there is a new trade bar after the update (volume/tick based trade bars)\n    if (this._hasNewBar(message.timestamp)) {\n      yield this._computeBar(message)\n    }\n  }\n\n  private _computeBar(message: NormalizedData) {\n    this._inProgressBar.localTimestamp = message.localTimestamp\n    this._inProgressBar.symbol = message.symbol\n    this._inProgressBar.exchange = message.exchange\n\n    const tradeBar: TradeBar = { ...this._inProgressBar }\n\n    this._reset()\n\n    return tradeBar\n  }\n\n  private _hasNewBar(timestamp: Date): boolean {\n    // privided timestamp is an exchange trade timestamp in that case\n    // we bucket based on exchange timestamps when bucketing by time not by localTimestamp\n    if (this._inProgressBar.trades === 0) {\n      return false\n    }\n\n    if (this._kind === 'time') {\n      // TODO: push initial bar at a start?\n      const currentTimestampTimeBucket = this._getTimeBucket(timestamp)\n      const openTimestampTimeBucket = this._getTimeBucket(this._inProgressBar.openTimestamp)\n      if (currentTimestampTimeBucket > openTimestampTimeBucket) {\n        // set the timestamp to the end of the period of given bucket\n        this._inProgressBar.timestamp = new Date((openTimestampTimeBucket + 1) * this._interval)\n\n        return true\n      }\n\n      return false\n    }\n\n    if (this._kind === 'volume') {\n      return this._inProgressBar.volume >= this._interval\n    }\n\n    if (this._kind === 'tick') {\n      return this._inProgressBar.trades >= this._interval\n    }\n\n    return false\n  }\n\n  private _update(trade: Trade) {\n    const inProgressBar = this._inProgressBar\n    const isNotOpenedYet = inProgressBar.trades === 0\n    // some exchanges (like dydx) sometimes publish trade data out of order (older trades published after newer ones)\n\n    const tradeIsInCorrectTimeOrder = trade.timestamp.valueOf() >= inProgressBar.timestamp.valueOf()\n\n    if (isNotOpenedYet) {\n      inProgressBar.open = trade.price\n      inProgressBar.openTimestamp = trade.timestamp\n    }\n\n    if (inProgressBar.high < trade.price) {\n      inProgressBar.high = trade.price\n    }\n    if (inProgressBar.low > trade.price) {\n      inProgressBar.low = trade.price\n    }\n\n    if (tradeIsInCorrectTimeOrder) {\n      inProgressBar.close = trade.price\n      inProgressBar.closeTimestamp = trade.timestamp\n      inProgressBar.timestamp = trade.timestamp\n    }\n\n    inProgressBar.buyVolume += trade.side === 'buy' ? trade.amount : 0\n    inProgressBar.sellVolume += trade.side === 'sell' ? trade.amount : 0\n    inProgressBar.trades += 1\n    inProgressBar.vwap = (inProgressBar.vwap * inProgressBar.volume + trade.price * trade.amount) / (inProgressBar.volume + trade.amount)\n    // volume needs to be updated after vwap otherwise vwap calc will go wrong\n    inProgressBar.volume += trade.amount\n  }\n\n  private _reset() {\n    const barToReset = this._inProgressBar\n    barToReset.type = this._type\n    barToReset.symbol = ''\n    barToReset.exchange = '' as any\n    barToReset.name = this._name\n    barToReset.interval = this._interval\n    barToReset.kind = this._kind\n\n    barToReset.open = 0\n    barToReset.high = Number.MIN_SAFE_INTEGER\n    barToReset.low = Number.MAX_SAFE_INTEGER\n    barToReset.close = 0\n\n    barToReset.volume = 0\n    barToReset.buyVolume = 0\n    barToReset.sellVolume = 0\n\n    barToReset.trades = 0\n    barToReset.vwap = 0\n    barToReset.openTimestamp = DATE_MIN\n    barToReset.closeTimestamp = DATE_MIN\n    barToReset.localTimestamp = DATE_MIN\n    barToReset.timestamp = DATE_MIN\n  }\n\n  private _getTimeBucket(timestamp: Date) {\n    return Math.floor(timestamp.valueOf() / this._interval)\n  }\n}\n"
  },
  {
    "path": "src/consts.ts",
    "content": "export const EXCHANGES = [\n  'bitmex',\n  'deribit',\n  'binance-futures',\n  'binance-delivery',\n  'binance-european-options',\n  'binance',\n  'ftx',\n  'okex-futures',\n  'okex-options',\n  'okex-swap',\n  'okex',\n  'okex-spreads',\n  'huobi-dm',\n  'huobi-dm-swap',\n  'huobi-dm-linear-swap',\n  'huobi',\n  'bitfinex-derivatives',\n  'bitfinex',\n  'coinbase',\n  'coinbase-international',\n  'cryptofacilities',\n  'kraken',\n  'bitstamp',\n  'gemini',\n  'poloniex',\n  'bybit',\n  'bybit-spot',\n  'bybit-options',\n  'phemex',\n  'delta',\n  'ftx-us',\n  'binance-us',\n  'gate-io-futures',\n  'gate-io',\n  'okcoin',\n  'bitflyer',\n  'hitbtc',\n  'coinflex',\n  'binance-jersey',\n  'binance-dex',\n  'upbit',\n  'ascendex',\n  'dydx',\n  'dydx-v4',\n  'serum',\n  'mango',\n  'huobi-dm-options',\n  'star-atlas',\n  'crypto-com',\n  'kucoin',\n  'kucoin-futures',\n  'bitnomial',\n  'woo-x',\n  'blockchain-com',\n  'bitget',\n  'bitget-futures',\n  'hyperliquid'\n] as const\n\nconst BINANCE_CHANNELS = ['trade', 'aggTrade', 'ticker', 'depth', 'depthSnapshot', 'bookTicker', 'recentTrades', 'borrowInterest'] as const\nconst BINANCE_DEX_CHANNELS = ['trades', 'marketDiff', 'depthSnapshot', 'ticker'] as const\nconst BITFINEX_CHANNELS = ['trades', 'book', 'raw_book', 'ticker'] as const\n\nconst BITMEX_CHANNELS = [\n  'trade',\n  'orderBookL2',\n  'liquidation',\n  'connected',\n  'announcement',\n  'chat',\n  'publicNotifications',\n  'instrument',\n  'settlement',\n  'funding',\n  'insurance',\n  'orderBookL2_25',\n  'orderBook10',\n  'quote',\n  'quoteBin1m',\n  'quoteBin5m',\n  'quoteBin1h',\n  'quoteBin1d',\n  'tradeBin1m',\n  'tradeBin5m',\n  'tradeBin1h',\n  'tradeBin1d'\n] as const\n\nconst BITSTAMP_CHANNELS = ['live_trades', 'live_orders', 'diff_order_book'] as const\n\nconst COINBASE_CHANNELS = [\n  'match',\n  'subscriptions',\n  'received',\n  'open',\n  'done',\n  'change',\n  'l2update',\n  'ticker',\n  'snapshot',\n  'last_match',\n  'full_snapshot',\n  'rfq_matches'\n] as const\n\nconst DERIBIT_CHANNELS = [\n  'book',\n  'deribit_price_index',\n  'deribit_price_ranking',\n  'deribit_volatility_index',\n  'estimated_expiration_price',\n  'markprice.options',\n  'perpetual',\n  'trades',\n  'ticker',\n  'quote',\n  'platform_state',\n  'instrument.state.any'\n] as const\n\nconst KRAKEN_CHANNELS = ['trade', 'ticker', 'book', 'spread'] as const\n\nconst OKEX_CHANNELS = [\n  'spot/trade',\n  'spot/depth',\n  'spot/depth_l2_tbt',\n  'spot/ticker',\n  'system/status',\n  'margin/interest_rate',\n\n  // v5\n  'trades',\n  'trades-all',\n  'books-l2-tbt',\n  'bbo-tbt',\n  'books',\n  'tickers',\n  'interest-rate-loan-quota',\n  'vip-interest-rate-loan-quota',\n  'status',\n  'instruments',\n  'taker-volume',\n  'public-struc-block-trades',\n  'liquidations',\n  'loan-ratio',\n  'public-block-trades'\n] as const\n\nconst OKCOIN_CHANNELS = [\n  'spot/trade',\n  'spot/depth',\n  'spot/depth_l2_tbt',\n  'spot/ticker',\n  'system/status',\n  'trades',\n  'books',\n  'bbo-tbt',\n  'tickers'\n] as const\n\nconst OKEX_FUTURES_CHANNELS = [\n  'futures/trade',\n  'futures/depth',\n  'futures/depth_l2_tbt',\n  'futures/ticker',\n  'futures/mark_price',\n  'futures/liquidation',\n  'index/ticker',\n  'system/status',\n  'information/sentiment',\n  'information/long_short_ratio',\n  'information/margin',\n\n  // v5\n  'trades',\n  'trades-all',\n  'books-l2-tbt',\n  'bbo-tbt',\n  'books',\n  'tickers',\n  'open-interest',\n  'mark-price',\n  'price-limit',\n  'status',\n  'instruments',\n  'index-tickers',\n  'long-short-account-ratio',\n  'taker-volume',\n  'liquidations',\n  'public-struc-block-trades',\n  'liquidation-orders',\n  'estimated-price',\n  'long-short-account-ratio-contract',\n  'long-short-account-ratio-contract-top-trader',\n  'long-short-position-ratio-contract-top-trader',\n  'public-block-trades',\n  'taker-volume-contract'\n] as const\n\nconst OKEX_SWAP_CHANNELS = [\n  'swap/trade',\n  'swap/depth',\n  'swap/depth_l2_tbt',\n  'swap/ticker',\n  'swap/funding_rate',\n  'swap/mark_price',\n  'swap/liquidation',\n  'index/ticker',\n  'system/status',\n  'information/sentiment',\n  'information/long_short_ratio',\n  'information/margin',\n\n  //v5\n  'trades',\n  'trades-all',\n  'books-l2-tbt',\n  'bbo-tbt',\n  'books',\n  'tickers',\n  'open-interest',\n  'mark-price',\n  'price-limit',\n  'funding-rate',\n  'status',\n  'instruments',\n  'index-tickers',\n  'long-short-account-ratio',\n  'taker-volume',\n  'liquidations',\n  'public-struc-block-trades',\n  'liquidation-orders',\n  'long-short-account-ratio-contract',\n  'long-short-account-ratio-contract-top-trader',\n  'long-short-position-ratio-contract-top-trader',\n  'public-block-trades',\n  'taker-volume-contract'\n] as const\n\nconst OKEX_OPTIONS_CHANNELS = [\n  'option/trade',\n  'option/depth',\n  'option/depth_l2_tbt',\n  'option/ticker',\n  'option/summary',\n  'option/instruments',\n  'index/ticker',\n  'system/status',\n  'option/trades',\n\n  //v5\n  'trades',\n  'trades-all',\n  'books-l2-tbt',\n  'bbo-tbt',\n  'books',\n  'tickers',\n  'opt-summary',\n  'status',\n  'instruments',\n  'index-tickers',\n  'open-interest',\n  'mark-price',\n  'price-limit',\n  'public-struc-block-trades',\n  'option-trades',\n  'estimated-price',\n  'public-block-trades'\n] as const\n\nconst COINFLEX_CHANNELS = ['futures/depth', 'trade', 'ticker'] as const\n\nconst CRYPTOFACILITIES_CHANNELS = ['trade', 'trade_snapshot', 'book', 'book_snapshot', 'ticker', 'heartbeat'] as const\n\nconst FTX_CHANNELS = [\n  'orderbook',\n  'trades',\n  'instrument',\n  'markets',\n  'orderbookGrouped',\n  'lendingRate',\n  'borrowRate',\n  'borrowSummary',\n  'ticker',\n  'leveragedTokenInfo',\n  'busy'\n] as const\n\nconst GEMINI_CHANNELS = ['trade', 'l2_updates', 'auction_open', 'auction_indicative', 'auction_result'] as const\n\nconst BITFLYER_CHANNELS = ['lightning_executions', 'lightning_board_snapshot', 'lightning_board', 'lightning_ticker'] as const\n\nconst BINANCE_FUTURES_CHANNELS = [\n  'trade',\n  'aggTrade',\n  'ticker',\n  'depth',\n  'markPrice',\n  'premiumIndex',\n  'depthSnapshot',\n  'bookTicker',\n  'forceOrder',\n  'openInterest',\n  'fundingInfo',\n  'insuranceBalance',\n  'recentTrades',\n  'compositeIndex',\n  'topLongShortAccountRatio',\n  'topLongShortPositionRatio',\n  'globalLongShortAccountRatio',\n  'takerlongshortRatio',\n  '!contractInfo',\n  'assetIndex'\n] as const\n\nconst BINANCE_DELIVERY_CHANNELS = [\n  'trade',\n  'aggTrade',\n  'ticker',\n  'depth',\n  'markPrice',\n  'indexPrice',\n  'depthSnapshot',\n  'bookTicker',\n  'forceOrder',\n  'openInterest',\n  'fundingInfo',\n  'recentTrades',\n  'topLongShortAccountRatio',\n  'topLongShortPositionRatio',\n  'globalLongShortAccountRatio',\n  'takerBuySellVol',\n  '!contractInfo'\n] as const\n\nconst BITFINEX_DERIV_CHANNELS = ['trades', 'book', 'raw_book', 'status', 'liquidations', 'ticker'] as const\n\nconst HUOBI_CHANNELS = ['depth', 'detail', 'trade', 'bbo', 'mbp', 'etp', 'mbp.20'] as const\n\nconst HUOBI_DM_CHANNELS = [\n  'depth',\n  'detail',\n  'trade',\n  'bbo',\n  'basis',\n  'liquidation_orders',\n  'contract_info',\n  'open_interest',\n  'elite_account_ratio',\n  'elite_position_ratio'\n] as const\n\nconst HUOBI_DM_SWAP_CHANNELS = [\n  'depth',\n  'detail',\n  'trade',\n  'bbo',\n  'basis',\n  'funding_rate',\n  'liquidation_orders',\n  'contract_info',\n  'open_interest',\n  'elite_account_ratio',\n  'elite_position_ratio'\n] as const\n\nconst HUOBI_DM_LINEAR_SWAP_CHANNELS = [\n  'depth',\n  'detail',\n  'trade',\n  'bbo',\n  'basis',\n  'funding_rate',\n  'liquidation_orders',\n  'contract_info',\n  'open_interest',\n  'elite_account_ratio',\n  'elite_position_ratio'\n] as const\n\nconst PHEMEX_CHANNELS = ['book', 'orderbook_p', 'trades', 'trades_p', 'market24h', 'spot_market24h', 'perp_market24h_pack_p'] as const\n\nconst BYBIT_CHANNELS = [\n  'trade',\n  'instrument_info',\n  'orderBookL2_25',\n  'insurance',\n  'orderBook_200',\n  'liquidation',\n  'trade',\n  'instrument_info',\n  'orderBookL2_25',\n  'insurance',\n  'orderBook_200',\n  'liquidation',\n  'long_short_ratio',\n  'orderbook.1',\n  'orderbook.50',\n  'orderbook.500',\n  'publicTrade',\n  'tickers',\n  'liquidation',\n  'allLiquidation',\n  'orderbook.1000'\n] as const\n\nconst BYBIT_OPTIONS_CHANNELS = ['orderbook.25', 'orderbook.100', 'publicTrade', 'tickers']\n\nconst HITBTC_CHANNELS = ['updateTrades', 'snapshotTrades', 'snapshotOrderbook', 'updateOrderbook'] as const\n\nconst FTX_US_CHANNELS = ['orderbook', 'trades', 'markets', 'orderbookGrouped', 'ticker'] as const\n\nconst DELTA_CHANNELS = [\n  'l2_orderbook',\n  'recent_trade',\n  'recent_trade_snapshot',\n  'mark_price',\n  'spot_price',\n  'funding_rate',\n  'product_updates',\n  'announcements',\n  'all_trades',\n  'v2/ticker',\n  'l1_orderbook',\n  'l2_updates',\n  'spot_30mtwap_price'\n] as const\n\nconst GATE_IO_CHANNELS = ['trades', 'depth', 'ticker', 'book_ticker', 'order_book_update', 'obu'] as const\nconst GATE_IO_FUTURES_CHANNELS = ['trades', 'order_book', 'tickers', 'book_ticker'] as const\nconst POLONIEX_CHANNELS = ['price_aggregated_book', 'trades', 'ticker', 'book_lv2'] as const\nconst UPBIT_CHANNELS = ['trade', 'orderbook', 'ticker'] as const\nconst ASCENDEX_CHANNELS = ['trades', 'depth-realtime', 'depth-snapshot-realtime', 'bbo', 'futures-pricing-data'] as const\nconst DYDX_CHANNELS = ['v3_trades', 'v3_orderbook', 'v3_markets'] as const\nconst DYDX_V4_CHANNELS = ['v4_trades', 'v4_orderbook', 'v4_markets'] as const\nconst SERUM_CHANNELS = [\n  'recent_trades',\n  'trade',\n  'quote',\n  'l2snapshot',\n  'l2update',\n  'l3snapshot',\n  'open',\n  'fill',\n  'change',\n  'done'\n] as const\n\nconst MANGO_CHANNELS = [\n  'recent_trades',\n  'trade',\n  'quote',\n  'l2snapshot',\n  'l2update',\n  'l3snapshot',\n  'open',\n  'fill',\n  'change',\n  'done'\n] as const\n\nconst HUOBI_DM_OPTIONS_CHANNELS = ['trade', 'detail', 'depth', 'bbo', 'open_interest', 'option_market_index', 'option_index'] as const\n\nconst BYBIT_SPOT_CHANNELS = ['trade', 'bookTicker', 'depth', 'orderbook.1', 'orderbook.50', 'publicTrade', 'tickers', 'lt', 'orderbook.200']\n\nconst CRYPTO_COM_CHANNELS = ['trade', 'book', 'ticker', 'settlement', 'index', 'mark', 'funding', 'estimatedfunding']\n\nconst KUCOIN_CHANNELS = ['market/ticker', 'market/snapshot', 'market/level2', 'market/match', 'market/level2Snapshot']\n\nconst BITNOMIAL_CHANNELS = ['trade', 'level', 'book', 'block', 'status']\n\nconst WOOX_CHANNELS = [\n  'trade',\n  'orderbook',\n  'orderbookupdate',\n  'ticker',\n  'bbo',\n  'indexprice',\n  'markprice',\n  'openinterest',\n  'estfundingrate'\n]\n\nconst BLOCKCHAIN_COM_CHANNELS = ['trades', 'l2', 'l3', 'ticker']\nconst BINANCE_EUROPEAN_OPTIONS_CHANNELS = [\n  'trade',\n  'depth100',\n  'index',\n  'markPrice',\n  'ticker',\n  'openInterest',\n  'optionTrade',\n  'optionTicker',\n  'depth20',\n  'bookTicker',\n  'optionIndexPrice',\n  'optionMarkPrice',\n  'optionOpenInterest',\n  '!optionSymbol'\n]\n\nconst OKEX_SPREADS_CHANNELS = ['sprd-public-trades', 'sprd-bbo-tbt', 'sprd-books5', 'sprd-tickers']\n\nconst KUCOIN_FUTURES_CHANNELS = [\n  'contractMarket/execution',\n  'contractMarket/level2',\n  'contractMarket/level2Snapshot',\n  'contractMarket/tickerV2',\n  'contract/instrument',\n  'contract/details',\n  'contractMarket/snapshot'\n]\n\nconst BITGET_CHANNELS = ['trade', 'books1', 'books15']\nconst BITGET_FUTURES_CHANNELS = ['trade', 'books1', 'books15', 'ticker']\nconst COINBASE_INTERNATIONAL_CHANNELS = ['INSTRUMENTS', 'MATCH', 'FUNDING', 'RISK', 'LEVEL1', 'LEVEL2', 'CANDLES_ONE_MINUTE']\n\nconst HYPERLIQUID_CHANNELS = ['l2Book', 'trades', 'activeAssetCtx', 'activeSpotAssetCtx', 'bbo']\n\nexport const EXCHANGE_CHANNELS_INFO = {\n  bitmex: BITMEX_CHANNELS,\n  coinbase: COINBASE_CHANNELS,\n  'coinbase-international': COINBASE_INTERNATIONAL_CHANNELS,\n  deribit: DERIBIT_CHANNELS,\n  cryptofacilities: CRYPTOFACILITIES_CHANNELS,\n  bitstamp: BITSTAMP_CHANNELS,\n  kraken: KRAKEN_CHANNELS,\n  okex: OKEX_CHANNELS,\n  'okex-swap': OKEX_SWAP_CHANNELS,\n  'okex-futures': OKEX_FUTURES_CHANNELS,\n  'okex-options': OKEX_OPTIONS_CHANNELS,\n  binance: BINANCE_CHANNELS,\n  'binance-jersey': BINANCE_CHANNELS,\n  'binance-dex': BINANCE_DEX_CHANNELS,\n  'binance-us': BINANCE_CHANNELS,\n  bitfinex: BITFINEX_CHANNELS,\n  ftx: FTX_CHANNELS,\n  'ftx-us': FTX_US_CHANNELS,\n  gemini: GEMINI_CHANNELS,\n  bitflyer: BITFLYER_CHANNELS,\n  'binance-futures': BINANCE_FUTURES_CHANNELS,\n  'binance-delivery': BINANCE_DELIVERY_CHANNELS,\n  'bitfinex-derivatives': BITFINEX_DERIV_CHANNELS,\n  huobi: HUOBI_CHANNELS,\n  'huobi-dm': HUOBI_DM_CHANNELS,\n  'huobi-dm-swap': HUOBI_DM_SWAP_CHANNELS,\n  'huobi-dm-linear-swap': HUOBI_DM_LINEAR_SWAP_CHANNELS,\n  bybit: BYBIT_CHANNELS,\n  'bybit-spot': BYBIT_SPOT_CHANNELS,\n  'bybit-options': BYBIT_OPTIONS_CHANNELS,\n  okcoin: OKCOIN_CHANNELS,\n  hitbtc: HITBTC_CHANNELS,\n  coinflex: COINFLEX_CHANNELS,\n  phemex: PHEMEX_CHANNELS,\n  delta: DELTA_CHANNELS,\n  'gate-io': GATE_IO_CHANNELS,\n  'gate-io-futures': GATE_IO_FUTURES_CHANNELS,\n  poloniex: POLONIEX_CHANNELS,\n  upbit: UPBIT_CHANNELS,\n  ascendex: ASCENDEX_CHANNELS,\n  dydx: DYDX_CHANNELS,\n  'dydx-v4': DYDX_V4_CHANNELS,\n  serum: SERUM_CHANNELS,\n  'star-atlas': SERUM_CHANNELS,\n  'huobi-dm-options': HUOBI_DM_OPTIONS_CHANNELS,\n  mango: MANGO_CHANNELS,\n  'crypto-com': CRYPTO_COM_CHANNELS,\n  kucoin: KUCOIN_CHANNELS,\n  bitnomial: BITNOMIAL_CHANNELS,\n  'woo-x': WOOX_CHANNELS,\n  'blockchain-com': BLOCKCHAIN_COM_CHANNELS,\n  'binance-european-options': BINANCE_EUROPEAN_OPTIONS_CHANNELS,\n  'okex-spreads': OKEX_SPREADS_CHANNELS,\n  'kucoin-futures': KUCOIN_FUTURES_CHANNELS,\n  bitget: BITGET_CHANNELS,\n  'bitget-futures': BITGET_FUTURES_CHANNELS,\n  hyperliquid: HYPERLIQUID_CHANNELS\n}\n"
  },
  {
    "path": "src/debug.ts",
    "content": "import dbg from 'debug'\n\nexport const debug = dbg('tardis-dev')\n"
  },
  {
    "path": "src/downloaddatasets.ts",
    "content": "import { existsSync } from 'node:fs'\nimport pMap from 'p-map'\nimport { debug } from './debug.ts'\nimport { DatasetType } from './exchangedetails.ts'\nimport { addDays, doubleDigit, download, parseAsUTCDate, sequence } from './handy.ts'\nimport { getOptions } from './options.ts'\nimport { Exchange } from './types.ts'\n\nconst CONCURRENCY_LIMIT = 20\nconst MILLISECONDS_IN_SINGLE_DAY = 24 * 60 * 60 * 1000\nconst DEFAULT_DOWNLOAD_DIR = './datasets'\n\nconst options = getOptions()\n\nexport async function downloadDatasets(downloadDatasetsOptions: DownloadDatasetsOptions) {\n  const { exchange, dataTypes, from, to, symbols } = downloadDatasetsOptions\n  const apiKey = downloadDatasetsOptions.apiKey !== undefined ? downloadDatasetsOptions.apiKey : options.apiKey\n  const downloadDir = downloadDatasetsOptions.downloadDir !== undefined ? downloadDatasetsOptions.downloadDir : DEFAULT_DOWNLOAD_DIR\n  const format = downloadDatasetsOptions.format !== undefined ? downloadDatasetsOptions.format : 'csv'\n  const getFilename = downloadDatasetsOptions.getFilename !== undefined ? downloadDatasetsOptions.getFilename : getFilenameDefault\n  const skipIfExists = downloadDatasetsOptions.skipIfExists === undefined ? true : downloadDatasetsOptions.skipIfExists\n\n  // in case someone provided 'api/exchange' symbol, transform it to symbol that is accepted by datasets API\n  const datasetsSymbols = symbols.map((s) => s.replace(/\\/|:/g, '-').toUpperCase())\n\n  for (const symbol of datasetsSymbols) {\n    for (const dataType of dataTypes) {\n      const { daysCountToFetch, startDate } = getDownloadDateRange(downloadDatasetsOptions)\n      const startTimestamp = new Date().valueOf()\n      debug('dataset download started for %s %s %s from %s to %s', exchange, dataType, symbol, from, to)\n\n      if (daysCountToFetch > 1) {\n        // start with downloading last day of the range, validates is API key has access to the end range of requested data\n        await downloadDataSet(\n          getDownloadOptions({\n            exchange,\n            symbol,\n            apiKey,\n            downloadDir,\n            dataType,\n            format,\n            getFilename,\n            date: addDays(startDate, daysCountToFetch - 1)\n          }),\n          skipIfExists\n        )\n      }\n\n      // then download the first day of the range, validates is API key has access to the start range of requested data\n      await downloadDataSet(\n        getDownloadOptions({\n          exchange,\n          symbol,\n          apiKey,\n          downloadDir,\n          dataType,\n          format,\n          getFilename,\n          date: startDate\n        }),\n        skipIfExists\n      )\n\n      // download the rest concurrently up to the CONCURRENCY_LIMIT\n      await pMap(\n        sequence(daysCountToFetch - 1, 1), // this will produce Iterable sequence from 1 to daysCountToFetch - 1 (as we already downloaded data for the first and last day)\n        (offset) =>\n          downloadDataSet(\n            getDownloadOptions({\n              exchange,\n              symbol,\n              apiKey,\n              downloadDir,\n              dataType,\n              format,\n              getFilename,\n              date: addDays(startDate, offset)\n            }),\n            skipIfExists\n          ),\n        { concurrency: CONCURRENCY_LIMIT }\n      )\n      const elapsedSeconds = (new Date().valueOf() - startTimestamp) / 1000\n\n      debug('dataset download finished for %s %s %s from %s to %s, time: %s seconds', exchange, dataType, symbol, from, to, elapsedSeconds)\n    }\n  }\n}\n\nasync function downloadDataSet(downloadOptions: DownloadOptions, skipIfExists: boolean) {\n  if (skipIfExists && existsSync(downloadOptions.downloadPath)) {\n    debug('dataset %s already exists, skipping download', downloadOptions.downloadPath)\n    return\n  } else {\n    return await download(downloadOptions)\n  }\n}\n\nfunction getDownloadOptions({\n  apiKey,\n  exchange,\n  dataType,\n  date,\n  symbol,\n  format,\n  downloadDir,\n  getFilename\n}: {\n  exchange: Exchange\n  dataType: DatasetType\n  symbol: string\n  date: Date\n  format: string\n  apiKey: string\n  downloadDir: string\n  getFilename: (options: GetFilenameOptions) => string\n}): DownloadOptions {\n  const year = date.getUTCFullYear()\n  const month = doubleDigit(date.getUTCMonth() + 1)\n  const day = doubleDigit(date.getUTCDate())\n\n  const url = `${options.datasetsEndpoint}/${exchange}/${dataType}/${year}/${month}/${day}/${encodeURIComponent(symbol)}.${format}.gz`\n  const filename = getFilename({\n    dataType,\n    date,\n    exchange,\n    format,\n    symbol\n  })\n\n  const downloadPath = `${downloadDir}/${filename}`\n\n  return {\n    url,\n    downloadPath,\n    userAgent: options._userAgent,\n    apiKey\n  }\n}\n\ntype DownloadOptions = Parameters<typeof download>[0]\n\nexport function sanitizeForFilename(s: string) {\n  return s.replace(/[:\\\\/?*<>|\"]/g, '-')\n}\n\nfunction getFilenameDefault({ exchange, dataType, format, date, symbol }: GetFilenameOptions) {\n  return `${exchange}_${dataType}_${date.toISOString().split('T')[0]}_${sanitizeForFilename(symbol)}.${format}.gz`\n}\n\nfunction getDownloadDateRange({ from, to }: DownloadDatasetsOptions) {\n  if (!from || isNaN(Date.parse(from))) {\n    throw new Error(`Invalid \"from\" argument: ${from}. Please provide valid date string.`)\n  }\n\n  if (!to || isNaN(Date.parse(to))) {\n    throw new Error(`Invalid \"to\" argument: ${to}. Please provide valid date string.`)\n  }\n\n  const toDate = parseAsUTCDate(to)\n  const fromDate = parseAsUTCDate(from)\n  const daysCountToFetch = Math.floor((toDate.getTime() - fromDate.getTime()) / MILLISECONDS_IN_SINGLE_DAY)\n\n  if (daysCountToFetch < 1) {\n    throw new Error(`Invalid \"to\" and \"from\" arguments combination. Please provide \"to\" day that is later than \"from\" day.`)\n  }\n\n  return {\n    startDate: fromDate,\n    daysCountToFetch\n  }\n}\n\ntype GetFilenameOptions = {\n  exchange: Exchange\n  dataType: DatasetType\n  symbol: string\n  date: Date\n  format: string\n}\n\ntype DownloadDatasetsOptions = {\n  exchange: Exchange\n  dataTypes: DatasetType[]\n  symbols: string[]\n  from: string\n  to: string\n  format?: 'csv'\n  apiKey?: string\n  downloadDir?: string\n  getFilename?: (options: GetFilenameOptions) => string\n  skipIfExists?: boolean\n}\n"
  },
  {
    "path": "src/exchangedetails.ts",
    "content": "import { getJSON } from './handy.ts'\nimport { getOptions } from './options.ts'\nimport { Exchange, FilterForExchange } from './types.ts'\n\nexport async function getExchangeDetails<T extends Exchange>(exchange: T) {\n  const options = getOptions()\n\n  const { data } = await getJSON(`${options.endpoint}/exchanges/${exchange}`)\n\n  return data as ExchangeDetails<T>\n}\n\nexport type SymbolType = 'spot' | 'future' | 'perpetual' | 'option' | 'combo'\n\nexport type DatasetType =\n  | 'trades'\n  | 'incremental_book_L2'\n  | 'quotes'\n  | 'derivative_ticker'\n  | 'options_chain'\n  | 'book_snapshot_25'\n  | 'book_snapshot_5'\n  | 'liquidations'\n  | 'book_ticker'\n\nexport type Stats = {\n  trades: number\n  bookChanges: number\n}\n\ntype Datasets = {\n  formats: ['csv']\n  exportedFrom: string\n  exportedUntil: string\n  stats: Stats\n  symbols: {\n    id: string\n    type: SymbolType\n    availableSince: string\n    availableTo?: string\n    dataTypes: DatasetType[]\n  }[]\n}\n\ntype ChannelDetails = {\n  name: string\n  description: string\n  frequency: string\n  frequencySource: string\n  exchangeDocsUrl?: string\n  sourceFor?: string[]\n  availableSince: string\n  availableTo?: string\n  apiVersion?: string\n  additionalInfo?: string\n  generated?: true\n}\n\ntype DataCenter = {\n  host: string\n  regionId: string\n  location: string\n}\n\ntype DataCollectionDetails = {\n  recorderDataCenter: DataCenter\n  recorderDataCenterChanges?: {\n    until: string\n    dataCenter: DataCenter\n  }[]\n  wssConnection?: {\n    url: string\n    apiVersion?: string\n    proxiedViaCloudflare?: boolean\n  }\n  wssConnectionChanges?: {\n    until: string\n    url?: string\n    apiVersion?: string\n    proxiedViaCloudflare?: boolean\n  }[]\n  exchangeDataCenter?: DataCenter\n  exchangeDataCenterChanges?: {\n    until: string\n    dataCenter: DataCenter\n  }[]\n}\n\nexport type ExchangeDetailsBase<T extends Exchange> = {\n  id: T\n  name: string\n  enabled: boolean\n  delisted?: boolean\n  availableSince: string\n  availableTo?: string\n\n  availableChannels: FilterForExchange[T]['channel'][]\n\n  availableSymbols: {\n    id: string\n    type: SymbolType\n    availableSince: string\n    availableTo?: string\n    name?: string\n  }[]\n\n  incidentReports: {\n    from: string\n    to: string\n    status: 'resolved' | 'wontfix' | 'unresolved'\n    details: string\n  }[]\n\n  channelDetails: ChannelDetails[]\n  apiDocsUrl?: string\n  dataCollectionDetails?: DataCollectionDetails\n  datasets: Datasets\n}\n\ntype ExchangeDetails<T extends Exchange> = ExchangeDetailsBase<T>\n"
  },
  {
    "path": "src/filter.ts",
    "content": "import { NormalizedData, Disconnect, Trade } from './types.ts'\nimport { CappedSet } from './handy.ts'\n\nexport async function* filter<T extends NormalizedData | Disconnect>(messages: AsyncIterableIterator<T>, filter: (message: T) => boolean) {\n  for await (const message of messages) {\n    if (filter(message)) {\n      yield message\n    }\n  }\n}\n\nexport function uniqueTradesOnly<T extends NormalizedData | Disconnect>(\n  {\n    maxWindow,\n    onDuplicateFound,\n    skipStaleOlderThanSeconds\n  }: {\n    maxWindow: number\n    skipStaleOlderThanSeconds?: number\n    onDuplicateFound?: (trade: Trade) => void\n  } = {\n    maxWindow: 500\n  }\n) {\n  const perSymbolQueues = {} as {\n    [key: string]: CappedSet<string>\n  }\n\n  return (message: T) => {\n    // pass trough any message that is not a trade\n    if (message.type !== 'trade') {\n      return true\n    } else {\n      const trade = message as unknown as Trade\n      // pass trough trades that can't be uniquely identified\n      // ignore index trades\n      if (trade.id === undefined || trade.symbol.startsWith('.')) {\n        return true\n      } else {\n        let alreadySeenTrades = perSymbolQueues[trade.symbol]\n\n        if (alreadySeenTrades === undefined) {\n          perSymbolQueues[trade.symbol] = new CappedSet<string>(maxWindow)\n          alreadySeenTrades = perSymbolQueues[trade.symbol]\n        }\n\n        const isDuplicate = alreadySeenTrades.has(trade.id)\n        const isStale =\n          skipStaleOlderThanSeconds !== undefined &&\n          trade.localTimestamp.valueOf() - trade.timestamp.valueOf() > skipStaleOlderThanSeconds * 1000\n\n        if (isDuplicate || isStale) {\n          if (onDuplicateFound !== undefined) {\n            onDuplicateFound(trade)\n          }\n          // refresh duplicated key position so it's added back at the beginning of the queue\n          alreadySeenTrades.remove(trade.id)\n          alreadySeenTrades.add(trade.id)\n\n          return false\n        } else {\n          alreadySeenTrades.add(trade.id)\n\n          return true\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/handy.ts",
    "content": "import crypto, { createHash } from 'crypto'\nimport { createWriteStream, mkdirSync, rmSync } from 'node:fs'\nimport { rename } from 'node:fs/promises'\nimport type { RequestOptions, Agent } from 'https'\nimport followRedirects from 'follow-redirects'\nimport * as httpsProxyAgentPkg from 'https-proxy-agent'\nimport path from 'path'\nimport { debug } from './debug.ts'\nimport { Mapper } from './mappers/index.ts'\nimport { Disconnect, Exchange, Filter, FilterForExchange } from './types.ts'\nimport * as socksProxyAgentPkg from 'socks-proxy-agent'\nconst { http, https } = followRedirects\nconst { HttpsProxyAgent } = httpsProxyAgentPkg\nconst { SocksProxyAgent } = socksProxyAgentPkg\n\nexport function parseAsUTCDate(val: string) {\n  // Treat date-only and minute-level strings as UTC instead of local time.\n  if (val.endsWith('Z') === false) {\n    val += 'Z'\n  }\n  const date = new Date(val)\n  return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes()))\n}\n\nexport function wait(delayMS: number) {\n  return new Promise((resolve) => {\n    setTimeout(resolve, delayMS)\n  })\n}\n\nexport function getRandomString() {\n  return crypto.randomBytes(24).toString('hex')\n}\n\nexport function formatDateToPath(date: Date) {\n  const year = date.getUTCFullYear()\n  const month = doubleDigit(date.getUTCMonth() + 1)\n  const day = doubleDigit(date.getUTCDate())\n  const hour = doubleDigit(date.getUTCHours())\n  const minute = doubleDigit(date.getUTCMinutes())\n\n  return `${year}/${month}/${day}/${hour}/${minute}`\n}\n\nexport function doubleDigit(input: number) {\n  return input < 10 ? '0' + input : '' + input\n}\n\nexport function sha256(obj: object) {\n  return createHash('sha256').update(JSON.stringify(obj)).digest('hex')\n}\n\nexport function addMinutes(date: Date, minutes: number) {\n  return new Date(date.getTime() + minutes * 60000)\n}\n\nexport function addDays(date: Date, days: number) {\n  return new Date(date.getTime() + days * 60000 * 1440)\n}\n\nexport function* sequence(end: number, seed = 0) {\n  let current = seed\n  while (current < end) {\n    yield current\n    current += 1\n  }\n\n  return\n}\n\nexport const ONE_SEC_IN_MS = 1000\n\nexport class HttpError extends Error {\n  constructor(public readonly status: number, public readonly responseText: string, public readonly url: string) {\n    super(`HttpError: status code: ${status}, response text: ${responseText}`)\n  }\n}\n\nclass HttpClientError extends Error {\n  constructor(public readonly response: HttpResponse, public readonly method: string, public readonly url: string) {\n    super(`HTTP ${method} ${url} failed with status ${response.statusCode}`)\n  }\n}\n\nexport function* take(iterable: Iterable<any>, length: number) {\n  if (length === 0) {\n    return\n  }\n  for (const item of iterable) {\n    yield item\n    length--\n\n    if (length === 0) {\n      return\n    }\n  }\n}\n\nexport async function* normalizeMessages(\n  exchange: Exchange,\n  symbols: string[] | undefined,\n  messages: AsyncIterableIterator<{ localTimestamp: Date; message: any } | undefined>,\n  mappers: Mapper<any, any>[],\n  createMappers: (localTimestamp: Date) => Mapper<any, any>[],\n  withDisconnectMessages: boolean | undefined,\n  filter?: (symbol: string) => boolean,\n  currentTimestamp?: Date | undefined\n) {\n  let previousLocalTimestamp: Date | undefined = currentTimestamp\n  let mappersForExchange: Mapper<any, any>[] | undefined = mappers\n  if (mappersForExchange.length === 0) {\n    throw new Error(`Can't normalize data without any normalizers provided`)\n  }\n\n  for await (const messageWithTimestamp of messages) {\n    if (messageWithTimestamp === undefined) {\n      // we received undefined meaning Websocket disconnection\n      // lets create new mappers with clean state for 'new connection'\n      mappersForExchange = undefined\n\n      // if flag withDisconnectMessages is set, yield disconnect message\n      if (withDisconnectMessages === true && previousLocalTimestamp !== undefined) {\n        const disconnect: Disconnect = {\n          type: 'disconnect',\n          exchange,\n          localTimestamp: previousLocalTimestamp,\n          symbols\n        }\n        yield disconnect as any\n      }\n\n      continue\n    }\n\n    if (mappersForExchange === undefined) {\n      mappersForExchange = createMappers(messageWithTimestamp.localTimestamp)\n    }\n\n    previousLocalTimestamp = messageWithTimestamp.localTimestamp\n\n    for (const mapper of mappersForExchange) {\n      if (mapper.canHandle(messageWithTimestamp.message)) {\n        const mappedMessages = mapper.map(messageWithTimestamp.message, messageWithTimestamp.localTimestamp)\n        if (!mappedMessages) {\n          continue\n        }\n\n        for (const message of mappedMessages) {\n          if (filter === undefined) {\n            yield message\n          } else if (filter(message.symbol)) {\n            yield message\n          }\n        }\n      }\n    }\n  }\n}\n\nexport function getFilters<T extends Exchange>(mappers: Mapper<T, any>[], symbols?: string[]) {\n  const filters = mappers.flatMap((mapper) => mapper.getFilters(symbols))\n\n  const deduplicatedFilters = filters.reduce((prev, current) => {\n    const matchingExisting = prev.find((c) => c.channel === current.channel)\n    if (matchingExisting !== undefined) {\n      if (matchingExisting.symbols !== undefined && current.symbols) {\n        for (let symbol of current.symbols) {\n          if (matchingExisting.symbols.includes(symbol) === false) {\n            matchingExisting.symbols.push(symbol)\n          }\n        }\n      } else if (current.symbols) {\n        matchingExisting.symbols = [...current.symbols]\n      }\n    } else {\n      prev.push(current)\n    }\n\n    return prev\n  }, [] as FilterForExchange[T][])\n\n  return deduplicatedFilters\n}\n\nexport function* batch(symbols: string[], batchSize: number) {\n  for (let i = 0; i < symbols.length; i += batchSize) {\n    yield symbols.slice(i, i + batchSize)\n  }\n}\nexport function* batchObjects<T>(payload: T[], batchSize: number) {\n  for (let i = 0; i < payload.length; i += batchSize) {\n    yield payload.slice(i, i + batchSize)\n  }\n}\n\nexport function parseμs(dateString: string): number {\n  // check if we have ISO 8601 format date string, e.g: 2019-06-01T00:03:03.1238784Z or 2020-07-22T00:09:16.836773Z\n  // or 2020-03-01T00:00:24.893456+00:00\n  if (dateString.length === 27 || dateString.length === 28 || dateString.length === 32 || dateString.length === 30) {\n    return Number(dateString.slice(23, 26))\n  }\n\n  return 0\n}\n\nexport function optimizeFilters(filters: Filter<any>[]) {\n  // deduplicate filters (if the channel was provided multiple times)\n  const optimizedFilters = filters.reduce((prev, current) => {\n    const matchingExisting = prev.find((c) => c.channel === current.channel)\n\n    if (matchingExisting) {\n      // both previous and current have symbols let's merge them\n      if (matchingExisting.symbols && current.symbols) {\n        matchingExisting.symbols.push(...current.symbols)\n      } else if (current.symbols) {\n        matchingExisting.symbols = [...current.symbols]\n      }\n    } else {\n      prev.push(current)\n    }\n\n    return prev\n  }, [] as Filter<any>[])\n\n  // sort filters in place to improve local disk cache ratio (no matter filters order if the same filters are provided will hit the cache)\n  optimizedFilters.sort((f1, f2) => {\n    if (f1.channel < f2.channel) {\n      return -1\n    }\n\n    if (f1.channel > f2.channel) {\n      return 1\n    }\n\n    return 0\n  })\n\n  // sort and deduplicate filters symbols\n  optimizedFilters.forEach((filter) => {\n    if (filter.symbols) {\n      filter.symbols = [...new Set(filter.symbols)].sort()\n    }\n  })\n\n  return optimizedFilters\n}\n\nconst httpsAgent = new https.Agent({\n  keepAlive: true,\n  keepAliveMsecs: 10 * ONE_SEC_IN_MS,\n  maxSockets: 120\n})\n\nexport const httpsProxyAgent: Agent | undefined =\n  process.env.HTTP_PROXY !== undefined\n    ? new HttpsProxyAgent(process.env.HTTP_PROXY)\n    : process.env.SOCKS_PROXY !== undefined\n    ? new SocksProxyAgent(process.env.SOCKS_PROXY)\n    : undefined\n\nconst DEFAULT_FETCH_RETRY_LIMIT = 2\n\ntype HttpRetryOptions =\n  | number\n  | {\n      limit?: number\n      statusCodes?: number[]\n      maxRetryAfter?: number\n    }\n\ntype HttpRequestOptions = {\n  headers?: Record<string, string>\n  body?: string | object\n  timeout?: number\n  retry?: HttpRetryOptions\n}\n\ntype HttpResponse = {\n  statusCode: number\n  headers: Record<string, string>\n  body: string\n}\n\ntype JSONResponse<T> = {\n  data: T\n  headers: Record<string, string>\n  statusCode: number\n}\n\ntype RetrySettings = {\n  limit: number\n  maxRetryAfter?: number\n  statusCodes?: Set<number>\n}\n\nfunction getRetrySettings(method: string, retry?: HttpRetryOptions): RetrySettings {\n  const retryOptions = typeof retry === 'object' ? retry : undefined\n  const retryEnabled = method === 'GET' || retry !== undefined\n  const limit = typeof retry === 'number' ? retry : retryOptions?.limit ?? (retryEnabled ? DEFAULT_FETCH_RETRY_LIMIT : 0)\n\n  return {\n    limit,\n    maxRetryAfter: retryOptions?.maxRetryAfter,\n    statusCodes: retryOptions?.statusCodes ? new Set(retryOptions.statusCodes) : undefined\n  }\n}\n\nfunction parseResponseHeaders(headers: Headers) {\n  return Object.fromEntries(headers.entries())\n}\n\nfunction parseNodeResponseHeaders(headers: Record<string, string | string[] | undefined>) {\n  return Object.fromEntries(\n    Object.entries(headers).flatMap(([key, value]) => {\n      if (value === undefined) {\n        return []\n      }\n\n      return [[key.toLowerCase(), Array.isArray(value) ? value.join(', ') : value]]\n    })\n  )\n}\n\nfunction createHttpResponse(statusCode: number, headers: Record<string, string>, body: string): HttpResponse {\n  return {\n    statusCode,\n    headers,\n    body\n  }\n}\n\nfunction prepareRequest(method: string, options: HttpRequestOptions) {\n  if (options.body === undefined) {\n    return {\n      headers: options.headers,\n      body: undefined\n    }\n  }\n\n  const headers = { ...options.headers }\n  const body = typeof options.body === 'string' ? options.body : JSON.stringify(options.body)\n\n  if (method !== 'GET' && headers['Content-Type'] === undefined && headers['content-type'] === undefined) {\n    headers['Content-Type'] = 'application/json'\n  }\n\n  return {\n    headers,\n    body\n  }\n}\n\nfunction getRetryAfterDelayMS(headers: Record<string, string>, maxRetryAfter?: number) {\n  const retryAfterHeader = headers['retry-after']\n  if (retryAfterHeader === undefined) {\n    return\n  }\n\n  const parsedSeconds = Number.parseFloat(retryAfterHeader)\n  let delayMS: number | undefined\n\n  if (Number.isFinite(parsedSeconds)) {\n    delayMS = parsedSeconds * ONE_SEC_IN_MS\n  } else {\n    const parsedDate = Date.parse(retryAfterHeader)\n    if (Number.isFinite(parsedDate)) {\n      delayMS = parsedDate - Date.now()\n    }\n  }\n\n  if (delayMS === undefined || delayMS < 0) {\n    return\n  }\n\n  if (maxRetryAfter !== undefined && delayMS > maxRetryAfter) {\n    return\n  }\n\n  return delayMS\n}\n\nfunction getRetryDelayMS(attempt: number, headers: Record<string, string>, maxRetryAfter?: number) {\n  const retryAfterDelayMS = getRetryAfterDelayMS(headers, maxRetryAfter)\n  if (retryAfterDelayMS !== undefined) {\n    return retryAfterDelayMS\n  }\n\n  return Math.min(250 * 2 ** (attempt - 1), 5000)\n}\n\nfunction isRetryableStatus(statusCode: number, retrySettings: RetrySettings) {\n  if (retrySettings.statusCodes !== undefined) {\n    return retrySettings.statusCodes.has(statusCode)\n  }\n\n  return statusCode === 408 || statusCode === 429 || statusCode >= 500\n}\n\nfunction shouldRetryHttpStatus(attempt: number, response: HttpResponse, retrySettings: RetrySettings) {\n  return attempt <= retrySettings.limit && isRetryableStatus(response.statusCode, retrySettings)\n}\n\nfunction shouldRetryHttpError(attempt: number, retrySettings: RetrySettings) {\n  return attempt <= retrySettings.limit\n}\n\nasync function requestViaFetch(method: string, url: string, options: HttpRequestOptions): Promise<HttpResponse> {\n  const controller = new AbortController()\n  const timeoutMS = options.timeout\n  const timeoutId = timeoutMS !== undefined ? setTimeout(() => controller.abort(), timeoutMS) : undefined\n  const preparedRequest = prepareRequest(method, options)\n\n  try {\n    const response = await fetch(url, {\n      method,\n      headers: preparedRequest.headers,\n      body: preparedRequest.body,\n      signal: controller.signal\n    })\n    const body = await response.text()\n\n    return createHttpResponse(response.status, parseResponseHeaders(response.headers), body)\n  } catch (error) {\n    if (controller.signal.aborted) {\n      throw new Error('Request timed out')\n    }\n\n    throw error\n  } finally {\n    if (timeoutId !== undefined) {\n      clearTimeout(timeoutId)\n    }\n  }\n}\n\nasync function requestViaProxy(method: string, url: string, options: HttpRequestOptions): Promise<HttpResponse> {\n  const requestClient = new URL(url).protocol === 'http:' ? http : https\n  const preparedRequest = prepareRequest(method, options)\n\n  return await new Promise<HttpResponse>((resolve, reject) => {\n    const request = requestClient\n      .request(\n        url,\n        {\n          method,\n          agent: httpsProxyAgent,\n          headers: preparedRequest.headers,\n          timeout: options.timeout\n        },\n        (response) => {\n          response.setEncoding('utf8')\n          let body = ''\n          response.on('error', reject)\n          response.on('data', (chunk) => (body += chunk))\n          response.on('end', () => {\n            resolve(createHttpResponse(response.statusCode ?? 0, parseNodeResponseHeaders(response.headers), body))\n          })\n        }\n      )\n      .on('error', reject)\n      .on('timeout', () => {\n        reject(new Error('Request timed out'))\n        request.destroy()\n      })\n\n    if (preparedRequest.body !== undefined) {\n      request.write(preparedRequest.body)\n    }\n\n    request.end()\n  })\n}\n\nasync function request(method: string, url: string, options: HttpRequestOptions = {}) {\n  const retrySettings = getRetrySettings(method, options.retry)\n\n  for (let attempt = 1; ; attempt += 1) {\n    try {\n      const response =\n        httpsProxyAgent === undefined ? await requestViaFetch(method, url, options) : await requestViaProxy(method, url, options)\n\n      if (response.statusCode >= 200 && response.statusCode < 300) {\n        return response\n      }\n\n      if (shouldRetryHttpStatus(attempt, response, retrySettings)) {\n        await wait(getRetryDelayMS(attempt, response.headers, retrySettings.maxRetryAfter))\n        continue\n      }\n\n      throw new HttpClientError(response, method, url)\n    } catch (error) {\n      if (error instanceof HttpClientError) {\n        throw error\n      }\n\n      if (shouldRetryHttpError(attempt, retrySettings)) {\n        await wait(Math.min(250 * 2 ** (attempt - 1), 5000))\n        continue\n      }\n\n      throw error\n    }\n  }\n}\n\nasync function requestJSON<T>(method: string, url: string, options?: HttpRequestOptions): Promise<JSONResponse<T>> {\n  const response = await request(method, url, options)\n\n  return {\n    data: JSON.parse(response.body) as T,\n    headers: response.headers,\n    statusCode: response.statusCode\n  }\n}\n\nexport function getJSON<T>(url: string, options?: HttpRequestOptions) {\n  return requestJSON<T>('GET', url, options)\n}\n\nexport function postJSON<T>(url: string, options?: HttpRequestOptions) {\n  return requestJSON<T>('POST', url, options)\n}\n\nexport async function download({\n  apiKey,\n  downloadPath,\n  url,\n  userAgent,\n  appendContentEncodingExtension = false,\n  acceptEncoding = 'gzip'\n}: {\n  url: string\n  downloadPath: string\n  userAgent: string\n  apiKey: string\n  appendContentEncodingExtension?: boolean\n  acceptEncoding?: string\n}) {\n  const httpRequestOptions = {\n    agent: httpsProxyAgent !== undefined ? httpsProxyAgent : httpsAgent,\n    timeout: 90 * ONE_SEC_IN_MS,\n    headers: {\n      'Accept-Encoding': acceptEncoding,\n      'User-Agent': userAgent,\n      Authorization: apiKey ? `Bearer ${apiKey}` : ''\n    }\n  }\n\n  const MAX_ATTEMPTS = 30\n  let attempts = 0\n\n  while (true) {\n    // simple retry logic when fetching from the network...\n    attempts++\n    try {\n      const addRetryAttempt = attempts - 1 > 0 && url.endsWith('gz')\n      if (addRetryAttempt) {\n        return await _downloadFile(httpRequestOptions, `${url}?retryAttempt=${attempts - 1}`, downloadPath, appendContentEncodingExtension)\n      } else {\n        return await _downloadFile(httpRequestOptions, url, downloadPath, appendContentEncodingExtension)\n      }\n    } catch (error) {\n      const unsupportedDataFeedEncoding = error instanceof Error && error.message.startsWith('Unsupported data feed content encoding')\n      const badOrUnauthorizedRequest =\n        error instanceof HttpError &&\n        ((error.status === 400 && error.message.includes('ISO 8601 format') === false) || error.status === 401)\n      const tooManyRequests = error instanceof HttpError && error.status === 429\n      const internalServiceError = error instanceof HttpError && error.status === 500\n      // do not retry when we've got bad or unauthorized request or enough attempts\n      if (unsupportedDataFeedEncoding || badOrUnauthorizedRequest || attempts === MAX_ATTEMPTS) {\n        throw error\n      }\n\n      const randomIngridient = Math.random() * 500\n      const attemptsDelayMS = Math.min(Math.pow(2, attempts) * ONE_SEC_IN_MS, 120 * ONE_SEC_IN_MS)\n      let nextAttemptDelayMS = randomIngridient + attemptsDelayMS\n\n      if (tooManyRequests) {\n        // when too many requests received wait one minute\n        nextAttemptDelayMS += 60 * ONE_SEC_IN_MS\n      }\n      if (internalServiceError) {\n        nextAttemptDelayMS = nextAttemptDelayMS * 2\n      }\n\n      debug('download file error: %o, next attempt delay: %d, url %s, path: %s', error, nextAttemptDelayMS, url, downloadPath)\n\n      await wait(nextAttemptDelayMS)\n    }\n  }\n}\n\nconst tmpFileCleanups = new Map<string, () => void>()\n\nexport function cleanTempFiles() {\n  tmpFileCleanups.forEach((cleanup) => cleanup())\n}\n\nasync function _downloadFile(requestOptions: RequestOptions, url: string, downloadPath: string, appendContentEncodingExtension: boolean) {\n  // first ensure that directory where we want to download file exists\n  mkdirSync(path.dirname(downloadPath), { recursive: true })\n\n  // create write file stream that we'll write data into - first as unconfirmed temp file\n\n  const tmpFilePath = `${downloadPath}${crypto.randomBytes(8).toString('hex')}.unconfirmed`\n  const fileWriteStream = createWriteStream(tmpFilePath)\n  const cleanup = () => {\n    try {\n      fileWriteStream.destroy()\n      rmSync(tmpFilePath, { force: true })\n    } catch {}\n  }\n  tmpFileCleanups.set(tmpFilePath, cleanup)\n\n  let finalDownloadPath = downloadPath\n\n  try {\n    // based on https://github.com/nodejs/node/issues/28172 - only reliable way to consume response stream and avoiding all the 'gotchas'\n    await new Promise<void>((resolve, reject) => {\n      const req = https\n        .get(url, requestOptions, (res) => {\n          const { statusCode } = res\n          if (statusCode !== 200) {\n            // read the error response text and throw it as an HttpError\n            res.setEncoding('utf8')\n            let body = ''\n            res.on('error', reject)\n            res.on('data', (chunk) => (body += chunk))\n            res.on('end', () => {\n              reject(new HttpError(statusCode!, body, url))\n            })\n          } else {\n            if (appendContentEncodingExtension) {\n              const contentEncoding = asSingleHeaderValue(res.headers['content-encoding'])\n              if (contentEncoding === 'zstd') {\n                finalDownloadPath = `${downloadPath}.zst`\n              } else if (contentEncoding === undefined || contentEncoding === 'gzip') {\n                finalDownloadPath = `${downloadPath}.gz`\n              } else {\n                reject(new Error(`Unsupported data feed content encoding: ${contentEncoding}`))\n                return\n              }\n            }\n\n            // consume the response stream by writing it to the file\n            res\n              .on('error', reject)\n              .on('aborted', () => reject(new Error('Request aborted')))\n              .pipe(fileWriteStream)\n              .on('error', reject)\n              .on('finish', () => {\n                if (res.complete) {\n                  resolve()\n                } else {\n                  reject(new Error('The connection was terminated while the message was still being sent'))\n                }\n              })\n          }\n        })\n        .on('error', reject)\n        .on('timeout', () => {\n          debug('download file request timeout, %s', url)\n          reject(new Error('Request timed out'))\n          req.destroy()\n        })\n    })\n\n    // finally when saving from the network to file has succeded, rename tmp file to normal name\n    // then we're sure that responses is 100% saved and also even if different process was doing the same we're good\n    await rename(tmpFilePath, finalDownloadPath)\n\n    return {\n      downloadPath: finalDownloadPath\n    }\n  } finally {\n    tmpFileCleanups.delete(tmpFilePath)\n    cleanup()\n  }\n}\n\nfunction asSingleHeaderValue(headerValue: string | string[] | undefined) {\n  if (Array.isArray(headerValue)) {\n    return headerValue[0]\n  }\n\n  return headerValue\n}\n\nexport class CircularBuffer<T> {\n  private _buffer: T[] = []\n  private _index: number = 0\n  constructor(private readonly _bufferSize: number) {}\n\n  append(value: T) {\n    const isFull = this._buffer.length === this._bufferSize\n    let poppedValue\n    if (isFull) {\n      poppedValue = this._buffer[this._index]\n    }\n    this._buffer[this._index] = value\n    this._index = (this._index + 1) % this._bufferSize\n\n    return poppedValue\n  }\n\n  *items() {\n    for (let i = 0; i < this._buffer.length; i++) {\n      const index = (this._index + i) % this._buffer.length\n      yield this._buffer[index]\n    }\n  }\n\n  get count() {\n    return this._buffer.length\n  }\n\n  clear() {\n    this._buffer = []\n    this._index = 0\n  }\n}\n\nexport class CappedSet<T> {\n  private _set = new Set<T>()\n  constructor(private readonly _maxSize: number) {}\n\n  public has(value: T) {\n    return this._set.has(value)\n  }\n\n  public add(value: T) {\n    if (this._set.size >= this._maxSize) {\n      this._set.delete(this._set.keys().next().value!)\n    }\n    this._set.add(value)\n  }\n\n  public remove(value: T) {\n    this._set.delete(value)\n  }\n\n  public size() {\n    return this._set.size\n  }\n}\n\nfunction hasFraction(n: number) {\n  return Math.abs(Math.round(n) - n) > 1e-10\n}\n// https://stackoverflow.com/a/44815797\nexport function decimalPlaces(n: number) {\n  let count = 0\n  // multiply by increasing powers of 10 until the fractional part is ~ 0\n  while (hasFraction(n * 10 ** count) && isFinite(10 ** count)) count++\n  return count\n}\n\nexport function asNumberIfValid(val: string | number | undefined | null) {\n  if (val === undefined || val === null) {\n    return\n  }\n\n  var asNumber = Number(val)\n\n  if (isNaN(asNumber) || isFinite(asNumber) === false) {\n    return\n  }\n\n  if (asNumber === 0) {\n    return\n  }\n\n  return asNumber\n}\n\nexport function upperCaseSymbols(symbols?: string[]) {\n  if (symbols !== undefined) {\n    return symbols.map((s) => s.toUpperCase())\n  }\n  return\n}\n\nexport function lowerCaseSymbols(symbols?: string[]) {\n  if (symbols !== undefined) {\n    return symbols.map((s) => s.toLowerCase())\n  }\n  return\n}\n\nexport const fromMicroSecondsToDate = (micros: number) => {\n  const isMicroseconds = micros > 1e15 // Check if the number is likely in microseconds\n\n  if (!isMicroseconds) {\n    return new Date(micros)\n  }\n\n  const timestamp = new Date(micros / 1000)\n  timestamp.μs = micros % 1000\n\n  return timestamp\n}\n\nexport function onlyUnique(value: string, index: number, array: string[]) {\n  return array.indexOf(value) === index\n}\n"
  },
  {
    "path": "src/index.ts",
    "content": "export * from './apikeyaccessinfo.ts'\nexport * from './clearcache.ts'\nexport * from './combine.ts'\nexport * from './computable/index.ts'\nexport * from './consts.ts'\nexport * from './exchangedetails.ts'\nexport * from './mappers/index.ts'\nexport { init } from './options.ts'\nexport * from './orderbook.ts'\nexport * from './realtimefeeds/index.ts'\nexport * from './replay.ts'\nexport * from './stream.ts'\nexport * from './downloaddatasets.ts'\nexport * from './types.ts'\nexport * from './filter.ts'\nexport * from './instrumentinfo.ts'\n"
  },
  {
    "path": "src/instrumentinfo.ts",
    "content": "import { getOptions } from './options.ts'\nimport type { SymbolType } from './exchangedetails.ts'\nimport type { Exchange } from './types.ts'\nimport { getJSON } from './handy.ts'\n\nexport async function getInstrumentInfo(exchange: Exchange): Promise<InstrumentInfo[]>\nexport async function getInstrumentInfo(exchange: Exchange | Exchange[], filter: InstrumentInfoFilter): Promise<InstrumentInfo[]>\nexport async function getInstrumentInfo(exchange: Exchange, symbol: string): Promise<InstrumentInfo>\n\nexport async function getInstrumentInfo(exchange: Exchange | Exchange[], filterOrSymbol?: InstrumentInfoFilter | string) {\n  if (Array.isArray(exchange)) {\n    const exchanges = exchange\n    const results = await Promise.all(exchanges.map((e) => getInstrumentInfoForExchange(e, filterOrSymbol)))\n\n    return results.flat()\n  } else {\n    return getInstrumentInfoForExchange(exchange, filterOrSymbol)\n  }\n}\n\nasync function getInstrumentInfoForExchange(exchange: Exchange, filterOrSymbol?: InstrumentInfoFilter | string) {\n  const options = getOptions()\n\n  let url = `${options.endpoint}/instruments/${exchange}`\n  if (typeof filterOrSymbol === 'string') {\n    url += `/${encodeURIComponent(filterOrSymbol)}`\n  } else if (typeof filterOrSymbol === 'object') {\n    url += `?filter=${encodeURIComponent(JSON.stringify(filterOrSymbol))}`\n  }\n\n  try {\n    const { data } = await getJSON(url, {\n      headers: { Authorization: `Bearer ${options.apiKey}` }\n    })\n\n    return data\n  } catch (e: any) {\n    // expose 400 error message from server\n    if (e.response?.statusCode === 400) {\n      let err: { code: Number; message: string }\n      try {\n        err = JSON.parse(e.response.body)\n      } catch {\n        throw e\n      }\n\n      throw err ? new Error(`${err.message} (${err.code})`) : e\n    } else {\n      throw e\n    }\n  }\n}\n\ntype InstrumentInfoFilter = {\n  baseCurrency?: string | string[]\n  quoteCurrency?: string | string[]\n  type?: SymbolType | SymbolType[]\n  contractType?: ContractType | ContractType[]\n  active?: boolean\n}\n\nexport type ContractType =\n  | 'move'\n  | 'linear_future'\n  | 'inverse_future'\n  | 'quanto_future'\n  | 'linear_perpetual'\n  | 'inverse_perpetual'\n  | 'quanto_perpetual'\n  | 'put_option'\n  | 'call_option'\n  | 'turbo_put_option'\n  | 'turbo_call_option'\n  | 'spread'\n  | 'interest_rate_swap'\n  | 'repo'\n  | 'index'\n\nexport interface InstrumentInfo {\n  /** symbol id */\n  id: string\n  /** dataset symbol id, may differ from id */\n  datasetId?: string\n  /** exchange id */\n  exchange: string\n  /** normalized, so for example bitmex XBTUSD has base currency set to BTC not XBT */\n  baseCurrency: string\n  /** normalized, so for example bitfinex BTCUST has quote currency set to USDT, not UST */\n  quoteCurrency: string\n  type: SymbolType\n  /** derivative contract type */\n  contractType?: ContractType\n  /** indicates if the instrument can currently be traded. */\n  active: boolean\n  /** date in ISO format */\n  availableSince: string\n  /** date in ISO format */\n  availableTo?: string\n  /** date in ISO format, when the instrument was first listed on the exchange */\n  listing?: string\n  /** in ISO format, only for futures and options */\n  expiry?: string\n  /** expiration schedule type */\n  expirationType?: 'daily' | 'weekly' | 'next_week' | 'quarter' | 'next_quarter'\n  /** the underlying index for derivatives */\n  underlyingIndex?: string\n  /** price tick size, price precision can be calculated from it */\n  priceIncrement: number\n  /** amount tick size, amount/size precision can be calculated from it */\n  amountIncrement: number\n  /** min order size */\n  minTradeAmount: number\n  /** minimum notional value */\n  minNotional?: number\n  /** consider it as illustrative only, as it depends in practice on account traded volume levels, different categories, VIP levels, owning exchange currency etc */\n  makerFee: number\n  /** consider it as illustrative only, as it depends in practice on account traded volume levels, different categories, VIP levels, owning exchange currency etc */\n  takerFee: number\n  /** only for derivatives */\n  inverse?: boolean\n  /** only for derivatives */\n  contractMultiplier?: number\n  /** only for quanto instruments */\n  quanto?: boolean\n  /**  only for quanto instruments as settlement currency is different base/quote currency */\n  settlementCurrency?: string\n  /** strike price, only for options */\n  strikePrice?: number\n  /** option type, only for options */\n  optionType?: 'call' | 'put'\n  /** margin mode */\n  marginMode?: 'isolated' | 'cross'\n  /** whether margin trading is supported (spot) */\n  margin?: boolean\n  /** if this instrument is an alias for another */\n  aliasFor?: string\n  /** historical changes to instrument parameters */\n  changes?: {\n    until: string\n    priceIncrement?: number\n    amountIncrement?: number\n    contractMultiplier?: number\n    minTradeAmount?: number\n    makerFee?: number\n    takerFee?: number\n    quanto?: boolean\n    inverse?: boolean\n    settlementCurrency?: string\n    underlyingIndex?: string\n    contractType?: ContractType\n    quoteCurrency?: string\n    type?: string\n  }[]\n}\n"
  },
  {
    "path": "src/mappers/ascendex.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\nexport class AscendexTradesMapper implements Mapper<'ascendex', Trade> {\n  canHandle(message: AscendexTrade) {\n    return message.m === 'trades'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: AscendexTrade, localTimestamp: Date): IterableIterator<Trade> {\n    for (let trade of message.data) {\n      yield {\n        type: 'trade',\n        symbol: message.symbol,\n        exchange: 'ascendex',\n        id: undefined,\n        price: Number(trade.p),\n        amount: Number(trade.q),\n        side: trade.bm === true ? 'sell' : 'buy',\n        timestamp: new Date(trade.ts),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nexport class AscendexBookChangeMapper implements Mapper<'ascendex', BookChange> {\n  canHandle(message: AscendexDepthRealTime | AscendexDepthRealTimeSnapshot) {\n    return message.m === 'depth-realtime' || message.m === 'depth-snapshot-realtime'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'depth-realtime',\n        symbols\n      } as const,\n      {\n        channel: 'depth-snapshot-realtime',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: AscendexDepthRealTime | AscendexDepthRealTimeSnapshot, localTimestamp: Date): IterableIterator<BookChange> {\n    if (!message.symbol || !message.data.bids || !message.data.asks) {\n      return\n    }\n\n    yield {\n      type: 'book_change',\n      symbol: message.symbol,\n      exchange: 'ascendex',\n      isSnapshot: message.m === 'depth-snapshot-realtime',\n      bids: message.data.bids.map(this.mapBookLevel),\n      asks: message.data.asks.map(this.mapBookLevel),\n      timestamp: message.data.ts > 0 ? new Date(message.data.ts) : localTimestamp,\n      localTimestamp\n    }\n  }\n\n  protected mapBookLevel(level: AscendexPriceLevel) {\n    const price = Number(level[0])\n    const amount = Number(level[1])\n    return { price, amount }\n  }\n}\n\nexport class AscendexDerivativeTickerMapper implements Mapper<'ascendex', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: AscendexFuturesData | AscendexTrade) {\n    return message.m === 'futures-pricing-data' || message.m === 'trades'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'futures-pricing-data',\n        symbols: [] as string[]\n      } as const,\n      {\n        channel: 'trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: AscendexFuturesData | AscendexTrade, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    if (message.m === 'trades') {\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(message.symbol, 'ascendex')\n      pendingTickerInfo.updateLastPrice(Number(message.data[message.data.length - 1].p))\n      return\n    }\n\n    for (const futuresData of message.con) {\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(futuresData.s, 'ascendex')\n\n      pendingTickerInfo.updateIndexPrice(Number(futuresData.ip))\n      pendingTickerInfo.updateMarkPrice(Number(futuresData.mp))\n      pendingTickerInfo.updateOpenInterest(Number(futuresData.oi))\n      pendingTickerInfo.updateTimestamp(new Date(futuresData.t))\n      pendingTickerInfo.updateFundingTimestamp(new Date(futuresData.f))\n      pendingTickerInfo.updateFundingRate(Number(futuresData.r))\n\n      if (pendingTickerInfo.hasChanged()) {\n        yield pendingTickerInfo.getSnapshot(localTimestamp)\n      }\n    }\n  }\n}\n\nexport class AscendexBookTickerMapper implements Mapper<'ascendex', BookTicker> {\n  canHandle(message: AscendexTicker) {\n    return message.m === 'bbo'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'bbo',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: AscendexTicker, localTimestamp: Date): IterableIterator<BookTicker> {\n    const ask = message.data.ask\n    const bid = message.data.bid\n\n    yield {\n      type: 'book_ticker',\n      symbol: message.symbol,\n      exchange: 'ascendex',\n\n      askAmount: ask !== undefined && ask[1] !== undefined ? Number(ask[1]) : undefined,\n      askPrice: ask !== undefined && ask[0] !== undefined ? Number(ask[0]) : undefined,\n      bidPrice: bid !== undefined && bid[0] !== undefined ? Number(bid[0]) : undefined,\n      bidAmount: bid !== undefined && bid[1] !== undefined ? Number(bid[1]) : undefined,\n      timestamp: new Date(message.data.ts),\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\ntype AscendexTrade = {\n  m: 'trades'\n  symbol: string\n  data: [{ p: string; q: string; ts: number; bm: boolean; seqnum: number }]\n}\n\ntype AscendexPriceLevel = [string, string]\n\ntype AscendexDepthRealTime = {\n  m: 'depth-realtime'\n  symbol: 'XRP/USDT'\n  data: { ts: 1621814400204; seqnum: 39862426; asks: AscendexPriceLevel[]; bids: AscendexPriceLevel[] }\n}\n\ntype AscendexDepthRealTimeSnapshot = {\n  m: 'depth-snapshot-realtime'\n  symbol: 'XRP/USDT'\n  data: {\n    ts: 0\n    seqnum: 39862426\n    asks: AscendexPriceLevel[]\n    bids: AscendexPriceLevel[]\n  }\n}\n\ntype AscendexTicker = { m: 'bbo'; symbol: string; data: { ts: number; bid?: AscendexPriceLevel; ask?: AscendexPriceLevel } }\n\ntype AscendexFuturesData = {\n  m: 'futures-pricing-data'\n  con: [\n    {\n      t: 1621814404114\n      s: 'BTC-PERP'\n      mp: '34878.075977904'\n      ip: '34697.17'\n      oi: '80.6126'\n      r: '0.000093633'\n      f: 1621843200000\n      fi: 28800000\n    }\n  ]\n}\n"
  },
  {
    "path": "src/mappers/binance.ts",
    "content": "import { debug } from '../debug.ts'\nimport { CircularBuffer, fromMicroSecondsToDate, lowerCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Exchange, FilterForExchange, Liquidation, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\n// https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md\n\nexport class BinanceTradesMapper\n  implements Mapper<'binance' | 'binance-jersey' | 'binance-us' | 'binance-futures' | 'binance-delivery', Trade>\n{\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: BinanceResponse<any>) {\n    if (message.stream === undefined) {\n      return false\n    }\n\n    return message.stream.endsWith('@trade')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = lowerCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(binanceTradeResponse: BinanceResponse<BinanceTradeData>, localTimestamp: Date) {\n    const binanceTrade = binanceTradeResponse.data\n\n    const isOffBookTrade = binanceTrade.X === 'INSURANCE_FUND' || binanceTrade.X === 'ADL' || binanceTrade.X === 'NA'\n    if (isOffBookTrade) {\n      return\n    }\n\n    const trade: Trade = {\n      type: 'trade',\n      symbol: binanceTrade.s,\n      exchange: this._exchange,\n      id: String(binanceTrade.t),\n      price: Number(binanceTrade.p),\n      amount: Number(binanceTrade.q),\n      side: binanceTrade.m ? 'sell' : 'buy',\n      timestamp: fromMicroSecondsToDate(binanceTrade.T),\n      localTimestamp: localTimestamp\n    }\n\n    yield trade\n  }\n}\n\nexport class BinanceBookChangeMapper\n  implements Mapper<'binance' | 'binance-jersey' | 'binance-us' | 'binance-futures' | 'binance-delivery', BookChange>\n{\n  protected readonly symbolToDepthInfoMapping: {\n    [key: string]: LocalDepthInfo\n  } = {}\n\n  constructor(protected readonly exchange: Exchange, protected readonly ignoreBookSnapshotOverlapError: boolean) {}\n\n  canHandle(message: BinanceResponse<any>) {\n    if (message.stream === undefined) {\n      return false\n    }\n\n    return message.stream.includes('@depth')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = lowerCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'depth',\n        symbols\n      } as const,\n      {\n        channel: 'depthSnapshot',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BinanceResponse<BinanceDepthData | BinanceDepthSnapshotData>, localTimestamp: Date) {\n    const symbol = message.stream.split('@')[0].toUpperCase()\n\n    if (this.symbolToDepthInfoMapping[symbol] === undefined) {\n      this.symbolToDepthInfoMapping[symbol] = {\n        bufferedUpdates: new CircularBuffer<BinanceDepthData>(2000)\n      }\n    }\n\n    const symbolDepthInfo = this.symbolToDepthInfoMapping[symbol]\n    const snapshotAlreadyProcessed = symbolDepthInfo.snapshotProcessed\n\n    // first check if received message is snapshot and process it as such if it is\n    if (message.data.lastUpdateId !== undefined) {\n      // if we've already received 'manual' snapshot, ignore if there is another one\n      if (snapshotAlreadyProcessed) {\n        return\n      }\n      // produce snapshot book_change\n      const binanceDepthSnapshotData = message.data\n\n      //  mark given symbol depth info that has snapshot processed\n      symbolDepthInfo.lastUpdateId = binanceDepthSnapshotData.lastUpdateId\n      symbolDepthInfo.snapshotProcessed = true\n\n      // if there were any depth updates buffered, let's proccess those by adding to or updating the initial snapshot\n      for (const update of symbolDepthInfo.bufferedUpdates.items()) {\n        const bookChange = this.mapBookDepthUpdate(update, localTimestamp)\n        if (bookChange !== undefined) {\n          for (const bid of update.b) {\n            const matchingBid = binanceDepthSnapshotData.bids.find((b) => b[0] === bid[0])\n            if (matchingBid !== undefined) {\n              matchingBid[1] = bid[1]\n            } else {\n              binanceDepthSnapshotData.bids.push(bid)\n            }\n          }\n\n          for (const ask of update.a) {\n            const matchingAsk = binanceDepthSnapshotData.asks.find((a) => a[0] === ask[0])\n            if (matchingAsk !== undefined) {\n              matchingAsk[1] = ask[1]\n            } else {\n              binanceDepthSnapshotData.asks.push(ask)\n            }\n          }\n        }\n      }\n\n      // remove all buffered updates\n      symbolDepthInfo.bufferedUpdates.clear()\n\n      const bookChange: BookChange = {\n        type: 'book_change',\n        symbol,\n        exchange: this.exchange,\n        isSnapshot: true,\n        bids: binanceDepthSnapshotData.bids.map(this.mapBookLevel),\n        asks: binanceDepthSnapshotData.asks.map(this.mapBookLevel),\n        timestamp: binanceDepthSnapshotData.T !== undefined ? fromMicroSecondsToDate(binanceDepthSnapshotData.T) : localTimestamp,\n        localTimestamp\n      }\n\n      yield bookChange\n    } else if (snapshotAlreadyProcessed) {\n      // snapshot was already processed let's map the message as normal book_change\n      const bookChange = this.mapBookDepthUpdate(message.data as BinanceDepthData, localTimestamp)\n      if (bookChange !== undefined) {\n        yield bookChange\n      }\n    } else {\n      const binanceDepthUpdateData = message.data as BinanceDepthData\n\n      symbolDepthInfo.bufferedUpdates.append(binanceDepthUpdateData)\n    }\n  }\n\n  protected mapBookDepthUpdate(binanceDepthUpdateData: BinanceDepthData, localTimestamp: Date): BookChange | undefined {\n    // we can safely assume here that depthContext and lastUpdateId aren't null here as this is method only works\n    // when we've already processed the snapshot\n    const depthContext = this.symbolToDepthInfoMapping[binanceDepthUpdateData.s]!\n    const lastUpdateId = depthContext.lastUpdateId!\n\n    // Drop any event where u is <= lastUpdateId in the snapshot\n    if (binanceDepthUpdateData.u <= lastUpdateId) {\n      return\n    }\n\n    // The first processed event should have U <= lastUpdateId+1 AND u >= lastUpdateId+1.\n    if (!depthContext.validatedFirstUpdate) {\n      // if there is new instrument added it can have empty book at first and that's normal\n      const bookSnapshotIsEmpty = lastUpdateId == -1\n\n      if ((binanceDepthUpdateData.U <= lastUpdateId + 1 && binanceDepthUpdateData.u >= lastUpdateId + 1) || bookSnapshotIsEmpty) {\n        depthContext.validatedFirstUpdate = true\n      } else {\n        const message = `Book depth snaphot has no overlap with first update, update ${JSON.stringify(\n          binanceDepthUpdateData\n        )}, lastUpdateId: ${lastUpdateId}, exchange ${this.exchange}`\n        if (this.ignoreBookSnapshotOverlapError) {\n          depthContext.validatedFirstUpdate = true\n          debug(message)\n        } else {\n          throw new Error(message)\n        }\n      }\n    }\n\n    return {\n      type: 'book_change',\n      symbol: binanceDepthUpdateData.s,\n      exchange: this.exchange,\n      isSnapshot: false,\n\n      bids: binanceDepthUpdateData.b.map(this.mapBookLevel),\n      asks: binanceDepthUpdateData.a.map(this.mapBookLevel),\n      timestamp: fromMicroSecondsToDate(binanceDepthUpdateData.E),\n      localTimestamp: localTimestamp\n    }\n  }\n\n  protected mapBookLevel(level: BinanceBookLevel) {\n    const price = Number(level[0])\n    const amount = Number(level[1])\n    return { price, amount }\n  }\n}\n\nexport class BinanceFuturesBookChangeMapper\n  extends BinanceBookChangeMapper\n  implements Mapper<'binance-futures' | 'binance-delivery', BookChange>\n{\n  constructor(protected readonly exchange: Exchange, protected readonly ignoreBookSnapshotOverlapError: boolean) {\n    super(exchange, ignoreBookSnapshotOverlapError)\n  }\n\n  protected mapBookDepthUpdate(binanceDepthUpdateData: BinanceFuturesDepthData, localTimestamp: Date): BookChange | undefined {\n    // we can safely assume here that depthContext and lastUpdateId aren't null here as this is method only works\n    // when we've already processed the snapshot\n    const depthContext = this.symbolToDepthInfoMapping[binanceDepthUpdateData.s]!\n    const lastUpdateId = depthContext.lastUpdateId!\n\n    // based on https://binanceapitest.github.io/Binance-Futures-API-doc/wss/#how-to-manage-a-local-order-book-correctly\n    // Drop any event where u is < lastUpdateId in the snapshot\n    if (binanceDepthUpdateData.u < lastUpdateId) {\n      return\n    }\n\n    // The first processed should have U <= lastUpdateId AND u >= lastUpdateId\n    if (!depthContext.validatedFirstUpdate) {\n      if (binanceDepthUpdateData.U <= lastUpdateId && binanceDepthUpdateData.u >= lastUpdateId) {\n        depthContext.validatedFirstUpdate = true\n      } else {\n        const message = `Book depth snaphot has no overlap with first update, update ${JSON.stringify(\n          binanceDepthUpdateData\n        )}, lastUpdateId: ${lastUpdateId}, exchange ${this.exchange}`\n\n        if (this.ignoreBookSnapshotOverlapError) {\n          depthContext.validatedFirstUpdate = true\n          debug(message)\n        } else {\n          throw new Error(message)\n        }\n      }\n    }\n\n    return {\n      type: 'book_change',\n      symbol: binanceDepthUpdateData.s,\n      exchange: this.exchange,\n      isSnapshot: false,\n\n      bids: binanceDepthUpdateData.b.map(this.mapBookLevel),\n      asks: binanceDepthUpdateData.a.map(this.mapBookLevel),\n      timestamp: fromMicroSecondsToDate(binanceDepthUpdateData.E),\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nexport class BinanceFuturesDerivativeTickerMapper implements Mapper<'binance-futures' | 'binance-delivery', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n  private readonly _indexPrices = new Map<string, number>()\n\n  constructor(protected readonly exchange: Exchange) {}\n\n  canHandle(message: BinanceResponse<any>) {\n    if (message.stream === undefined) {\n      return false\n    }\n\n    return (\n      message.stream.includes('@markPrice') ||\n      message.stream.endsWith('@ticker') ||\n      message.stream.endsWith('@openInterest') ||\n      message.stream.includes('@indexPrice')\n    )\n  }\n\n  getFilters(symbols?: string[]): FilterForExchange['binance-futures' | 'binance-delivery'][] {\n    symbols = lowerCaseSymbols(symbols)\n\n    const filters = [\n      {\n        channel: 'markPrice',\n        symbols\n      } as const,\n      {\n        channel: 'ticker',\n        symbols\n      } as const,\n      {\n        channel: 'openInterest',\n        symbols\n      } as const\n    ]\n\n    if (this.exchange === 'binance-delivery') {\n      // index channel requires index symbol\n      filters.push({\n        channel: 'indexPrice' as any,\n        symbols: symbols !== undefined ? symbols.map((s) => s.split('_')[0]) : undefined\n      })\n    }\n\n    return filters\n  }\n\n  *map(\n    message: BinanceResponse<\n      BinanceFuturesMarkPriceData | BinanceFuturesTickerData | BinanceFuturesOpenInterestData | BinanceFuturesIndexPriceData\n    >,\n    localTimestamp: Date\n  ): IterableIterator<DerivativeTicker> {\n    if (message.data.e === 'indexPriceUpdate') {\n      this._indexPrices.set(message.data.i, Number(message.data.p))\n    } else {\n      const symbol = 's' in message.data ? message.data.s : message.data.symbol\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(symbol, this.exchange)\n\n      const lastIndexPrice = this._indexPrices.get(symbol.split('_')[0])\n      if (lastIndexPrice !== undefined) {\n        pendingTickerInfo.updateIndexPrice(lastIndexPrice)\n      }\n\n      if (message.data.e === 'markPriceUpdate') {\n        if ('r' in message.data && message.data.r !== '' && message.data.T !== 0) {\n          // only perpetual futures have funding rate info in mark price\n          // delivery futures sometimes send empty ('') r value\n          pendingTickerInfo.updateFundingRate(Number(message.data.r))\n          pendingTickerInfo.updateFundingTimestamp(new Date(message.data.T!))\n        }\n        if (message.data.i !== undefined) {\n          pendingTickerInfo.updateIndexPrice(Number(message.data.i))\n        }\n\n        pendingTickerInfo.updateMarkPrice(Number(message.data.p))\n        pendingTickerInfo.updateTimestamp(fromMicroSecondsToDate(message.data.E))\n      }\n\n      if (message.data.e === '24hrTicker') {\n        pendingTickerInfo.updateLastPrice(Number(message.data.c))\n        pendingTickerInfo.updateTimestamp(fromMicroSecondsToDate(message.data.E))\n      }\n\n      if ('openInterest' in message.data) {\n        pendingTickerInfo.updateOpenInterest(Number(message.data.openInterest))\n      }\n\n      if (pendingTickerInfo.hasChanged()) {\n        yield pendingTickerInfo.getSnapshot(localTimestamp)\n      }\n    }\n  }\n}\n\nexport class BinanceLiquidationsMapper implements Mapper<'binance-futures' | 'binance-delivery', Liquidation> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: BinanceResponse<any>) {\n    if (message.stream === undefined) {\n      return false\n    }\n\n    return message.stream.endsWith('@forceOrder')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = lowerCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'forceOrder',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(binanceTradeResponse: BinanceResponse<BinanceFuturesForceOrderData>, localTimestamp: Date) {\n    const binanceLiquidation = binanceTradeResponse.data.o\n    // not sure if order status can be different to 'FILLED' for liquidations in practice, but...\n    if (binanceLiquidation.X !== 'FILLED') {\n      return\n    }\n\n    const liquidation: Liquidation = {\n      type: 'liquidation',\n      symbol: binanceLiquidation.s,\n      exchange: this._exchange,\n      id: undefined,\n      price: Number(binanceLiquidation.p),\n      amount: Number(binanceLiquidation.z), //   Order Filled Accumulated Quantity\n      side: binanceLiquidation.S === 'SELL' ? 'sell' : 'buy',\n      timestamp: fromMicroSecondsToDate(binanceLiquidation.T),\n      localTimestamp: localTimestamp\n    }\n\n    yield liquidation\n  }\n}\n\nexport class BinanceBookTickerMapper implements Mapper<'binance-futures' | 'binance-delivery' | 'binance', BookTicker> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: BinanceResponse<any>) {\n    if (message.stream === undefined) {\n      return false\n    }\n\n    return message.stream.endsWith('@bookTicker')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = lowerCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'bookTicker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(binanceBookTickerResponse: BinanceResponse<BinanceBookTickerData>, localTimestamp: Date) {\n    const binanceBookTicker = binanceBookTickerResponse.data\n\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol: binanceBookTicker.s,\n      exchange: this._exchange,\n      askAmount: binanceBookTicker.A !== undefined ? Number(binanceBookTicker.A) : undefined,\n      askPrice: binanceBookTicker.a !== undefined ? Number(binanceBookTicker.a) : undefined,\n      bidPrice: binanceBookTicker.b !== undefined ? Number(binanceBookTicker.b) : undefined,\n      bidAmount: binanceBookTicker.B !== undefined ? Number(binanceBookTicker.B) : undefined,\n      timestamp: binanceBookTicker.E !== undefined ? fromMicroSecondsToDate(binanceBookTicker.E) : localTimestamp,\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\ntype BinanceResponse<T> = {\n  stream: string\n  data: T\n}\n\ntype BinanceTradeData = {\n  s: string\n  t: number\n  p: string\n  q: string\n  T: number\n  m: true\n  X?: 'INSURANCE_FUND' | 'MARKET' | 'ADL' | 'NA'\n}\n\ntype BinanceBookLevel = [string, string]\n\ntype BinanceDepthData = {\n  lastUpdateId: undefined\n  E: number\n  s: string\n  U: number\n  u: number\n  b: BinanceBookLevel[]\n  a: BinanceBookLevel[]\n}\n\n// T is the time that updated in matching engine, while E is when pushing out from ws server\n\ntype BinanceFuturesDepthData = BinanceDepthData & {\n  pu: number\n  T: number\n}\n\ntype BinanceDepthSnapshotData = {\n  lastUpdateId: number\n  bids: BinanceBookLevel[]\n  asks: BinanceBookLevel[]\n  T?: number\n}\n\ntype LocalDepthInfo = {\n  bufferedUpdates: CircularBuffer<BinanceDepthData>\n  snapshotProcessed?: boolean\n  lastUpdateId?: number\n  validatedFirstUpdate?: boolean\n}\n\ntype BinanceFuturesMarkPriceData = {\n  e: 'markPriceUpdate'\n  s: string // Symbol\n  E: number // Event time\n  p: string // Mark price\n  r?: string // Funding rate\n  T?: number // Next funding time\n  i?: string\n}\n\ntype BinanceFuturesTickerData = {\n  e: '24hrTicker'\n  E: number // Event time\n  s: string // Symbol\n  c: string // Last price\n}\n\ntype BinanceFuturesOpenInterestData = {\n  e: undefined\n  symbol: string\n  openInterest: string\n}\n\ntype BinanceFuturesIndexPriceData = {\n  e: 'indexPriceUpdate' // Event type\n  E: 1591261236000 // Event time\n  i: string // Pair\n  p: string // Index Price\n}\n\ntype BinanceFuturesForceOrderData = {\n  o: {\n    s: string // Symbol\n    S: string // Side\n    q: string // Original Quantity\n    p: string // Price\n    ap: string // Average Price\n    X: 'FILLED' // Order Status\n    l: '0.014' // Order Last Filled Quantity\n    T: 1568014460893 // Order Trade Time\n    z: string // Order Filled Accumulated Quantity\n  }\n}\n\ntype BinanceBookTickerData = {\n  u: number // order book updateId\n  s: string // symbol\n  b: string // best bid price\n  B: string // best bid qty\n  a: string // best ask price\n  A: string // best ask qty\n  E?: number // transaction time\n}\n"
  },
  {
    "path": "src/mappers/binancedex.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\n// https://docs.binance.org/api-reference/dex-api/ws-streams.html\n\nexport const binanceDexTradesMapper: Mapper<'binance-dex', Trade> = {\n  canHandle(message: BinanceDexResponse<any>) {\n    return message.stream === 'trades'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trades',\n        symbols\n      }\n    ]\n  },\n\n  *map(binanceDexTradeResponse: BinanceDexResponse<BinanceDexTradeData>, localTimestamp: Date): IterableIterator<Trade> {\n    for (const binanceDexTrade of binanceDexTradeResponse.data) {\n      yield {\n        type: 'trade',\n        symbol: binanceDexTrade.s,\n        exchange: 'binance-dex',\n        id: binanceDexTrade.t,\n        price: Number(binanceDexTrade.p),\n        amount: Number(binanceDexTrade.q),\n        side: binanceDexTrade.tt === 2 ? 'sell' : 'buy',\n        timestamp: new Date(Math.floor(binanceDexTrade.T / 1000000)),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nconst mapBookLevel = (level: BinanceDexBookLevel) => {\n  const price = Number(level[0])\n  const amount = Number(level[1])\n  return { price, amount }\n}\n\nexport const binanceDexBookChangeMapper: Mapper<'binance-dex', BookChange> = {\n  canHandle(message: BinanceDexResponse<any>) {\n    return message.stream === 'marketDiff' || message.stream === 'depthSnapshot'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'depthSnapshot',\n        symbols\n      },\n      {\n        channel: 'marketDiff',\n        symbols\n      }\n    ]\n  },\n\n  *map(\n    message: BinanceDexResponse<BinanceDexDepthSnapshotData | BinanceDexMarketDiffData>,\n    localTimestamp: Date\n  ): IterableIterator<BookChange> {\n    if ('symbol' in message.data) {\n      // we've got snapshot message\n      yield {\n        type: 'book_change',\n        symbol: message.data.symbol,\n        exchange: 'binance-dex',\n        isSnapshot: true,\n        bids: message.data.bids.map(mapBookLevel),\n        asks: message.data.asks.map(mapBookLevel),\n        timestamp: localTimestamp,\n        localTimestamp\n      }\n    } else {\n      // we've got update\n      yield {\n        type: 'book_change',\n        symbol: message.data.s,\n        exchange: 'binance-dex',\n        isSnapshot: false,\n        bids: message.data.b.map(mapBookLevel),\n        asks: message.data.a.map(mapBookLevel),\n        timestamp: localTimestamp,\n        localTimestamp\n      }\n    }\n  }\n}\n\nexport const binanceDexBookTickerMapper: Mapper<'binance-dex', BookTicker> = {\n  canHandle(message: BinanceDexResponse<any>) {\n    return message.stream === 'ticker'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      }\n    ]\n  },\n\n  *map(binanceDexTradeResponse: BinanceDexResponse<BinanceDexTickerData>, localTimestamp: Date): IterableIterator<BookTicker> {\n    const binanceDexTicker = binanceDexTradeResponse.data\n\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol: binanceDexTicker.s,\n      exchange: 'binance-dex',\n\n      askAmount: binanceDexTicker.A !== undefined ? Number(binanceDexTicker.A) : undefined,\n      askPrice: binanceDexTicker.a !== undefined ? Number(binanceDexTicker.a) : undefined,\n      bidPrice: binanceDexTicker.b !== undefined ? Number(binanceDexTicker.b) : undefined,\n      bidAmount: binanceDexTicker.B !== undefined ? Number(binanceDexTicker.B) : undefined,\n      timestamp: binanceDexTicker.E !== undefined ? new Date(binanceDexTicker.E * 1000) : localTimestamp,\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\ntype BinanceDexResponse<T> = {\n  stream: string\n  data: T\n}\n\ntype BinanceDexTradeData = {\n  s: string // Symbol\n  t: string // Trade ID\n  p: string // Price\n  q: string // Quantity\n  T: number // Trade time\n\n  tt: number //tiekertype 0: Unknown 1: SellTaker 2: BuyTaker 3: BuySurplus 4: SellSurplus 5: Neutral\n}[]\n\ntype BinanceDexBookLevel = [string, string]\n\ntype BinanceDexDepthSnapshotData = {\n  symbol: string\n  bids: BinanceDexBookLevel[]\n  asks: BinanceDexBookLevel[]\n}\n\ntype BinanceDexMarketDiffData = {\n  E: number // Event time\n  s: string // Symbol\n  b: BinanceDexBookLevel[]\n  a: BinanceDexBookLevel[]\n}\n\ntype BinanceDexTickerData = {\n  e: '24hrTicker' // Event type\n  E: 123456789 // Event time\n  s: 'ABC_0DX-BNB' // Symbol\n\n  b: '0.0024' // Best bid price\n  B: '10' // Best bid quantity\n  a: '0.0026' // Best ask price\n  A: '100' // Best ask quantity\n}\n"
  },
  {
    "path": "src/mappers/binanceeuropeanoptions.ts",
    "content": "import { asNumberIfValid, lowerCaseSymbols, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, OptionSummary, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\n// https://binance-docs.github.io/apidocs/voptions/en/#websocket-market-streams\n\nexport class BinanceEuropeanOptionsTradesMapper implements Mapper<'binance-european-options', Trade> {\n  canHandle(message: BinanceResponse<any>) {\n    if (message.stream === undefined) {\n      return false\n    }\n\n    return message.stream.endsWith('@trade')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(binanceTradeResponse: BinanceResponse<BinanceOptionsTradeData>, localTimestamp: Date) {\n    const trade: Trade = {\n      type: 'trade',\n      symbol: binanceTradeResponse.data.s,\n      exchange: 'binance-european-options',\n      id: binanceTradeResponse.data.t,\n      price: Number(binanceTradeResponse.data.p),\n      amount: Number(binanceTradeResponse.data.q),\n      side: binanceTradeResponse.data.S === '-1' ? 'sell' : 'buy',\n      timestamp: new Date(binanceTradeResponse.data.T),\n      localTimestamp: localTimestamp\n    }\n\n    yield trade\n  }\n}\n\nexport class BinanceEuropeanOptionsTradesMapperV2 implements Mapper<'binance-european-options', Trade> {\n  canHandle(message: BinanceResponse<any>) {\n    if (message.stream === undefined) {\n      return false\n    }\n\n    return message.stream.endsWith('@optionTrade')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = lowerCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'optionTrade',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(binanceTradeResponse: BinanceResponse<BinanceOptionsTradeDataV2>, localTimestamp: Date) {\n    const trade: Trade = {\n      type: 'trade',\n      symbol: binanceTradeResponse.data.s,\n      exchange: 'binance-european-options',\n      id: String(binanceTradeResponse.data.t),\n      price: Number(binanceTradeResponse.data.p),\n      amount: Number(binanceTradeResponse.data.q),\n      side: binanceTradeResponse.data.m ? 'sell' : 'buy',\n      timestamp: new Date(binanceTradeResponse.data.T),\n      localTimestamp: localTimestamp\n    }\n\n    yield trade\n  }\n}\n\nexport class BinanceEuropeanOptionsBookChangeMapper implements Mapper<'binance-european-options', BookChange> {\n  canHandle(message: BinanceResponse<any>) {\n    if (message.stream === undefined) {\n      return false\n    }\n\n    return message.stream.includes('@depth100')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'depth100',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BinanceResponse<BinanceOptionsDepthData>, localTimestamp: Date) {\n    const bookChange: BookChange = {\n      type: 'book_change',\n      symbol: message.data.s,\n      exchange: 'binance-european-options',\n      isSnapshot: true,\n      bids: message.data.b.map(this.mapBookLevel),\n      asks: message.data.a.map(this.mapBookLevel),\n      timestamp: message.data.E !== undefined ? new Date(message.data.E) : new Date(message.data.T),\n      localTimestamp\n    }\n\n    yield bookChange\n  }\n\n  protected mapBookLevel(level: BinanceBookLevel) {\n    const price = Number(level[0])\n    const amount = Number(level[1])\n    return { price, amount }\n  }\n}\n\nexport class BinanceEuropeanOptionsBookChangeMapperV2 implements Mapper<'binance-european-options', BookChange> {\n  canHandle(message: BinanceResponse<any>) {\n    if (message.stream === undefined) {\n      return false\n    }\n\n    return message.stream.includes('@depth20')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = lowerCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'depth20',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BinanceResponse<BinanceOptionsDepthDataV2>, localTimestamp: Date) {\n    const bookChange: BookChange = {\n      type: 'book_change',\n      symbol: message.data.s,\n      exchange: 'binance-european-options',\n      isSnapshot: true,\n      bids: message.data.b.map(this.mapBookLevel),\n      asks: message.data.a.map(this.mapBookLevel),\n      timestamp: new Date(message.data.T),\n      localTimestamp\n    }\n\n    yield bookChange\n  }\n\n  protected mapBookLevel(level: BinanceBookLevel) {\n    const price = Number(level[0])\n    const amount = Number(level[1])\n    return { price, amount }\n  }\n}\n\nexport class BinanceEuropeanOptionsBookTickerMapper implements Mapper<'binance-european-options', BookTicker> {\n  canHandle(message: BinanceResponse<any>) {\n    if (message.stream === undefined) {\n      return false\n    }\n\n    return message.stream.endsWith('@bookTicker')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = lowerCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'bookTicker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BinanceResponse<BinanceOptionsBookTickerData>, localTimestamp: Date) {\n    const bestBidPrice = Number(message.data.b)\n    const bestBidAmount = Number(message.data.B)\n    const bestAskPrice = Number(message.data.a)\n    const bestAskAmount = Number(message.data.A)\n\n    const bookTicker: BookTicker = {\n      type: 'book_ticker',\n      symbol: message.data.s,\n      exchange: 'binance-european-options',\n      bidPrice: bestBidPrice > 0 ? bestBidPrice : undefined,\n      bidAmount: bestBidAmount > 0 ? bestBidAmount : undefined,\n      askPrice: bestAskPrice > 0 ? bestAskPrice : undefined,\n      askAmount: bestAskAmount > 0 ? bestAskAmount : undefined,\n      timestamp: new Date(message.data.T),\n      localTimestamp\n    }\n\n    yield bookTicker\n  }\n}\n\nexport class BinanceEuropeanOptionSummaryMapper implements Mapper<'binance-european-options', OptionSummary> {\n  private readonly _indexPrices = new Map<string, number>()\n  private readonly _openInterests = new Map<string, number>()\n\n  canHandle(message: BinanceResponse<any>) {\n    if (message.stream === undefined) {\n      return false\n    }\n\n    return message.stream.endsWith('@ticker') || message.stream.endsWith('@index') || message.stream.includes('@openInterest')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    const indexes =\n      symbols !== undefined\n        ? symbols.map((s) => {\n            const symbolParts = s.split('-')\n            return `${symbolParts[0]}USDT`\n          })\n        : undefined\n\n    const underlyings =\n      symbols !== undefined\n        ? symbols.map((s) => {\n            const symbolParts = s.split('-')\n            return `${symbolParts[0]}`\n          })\n        : undefined\n\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      } as const,\n      {\n        channel: 'index',\n        symbols: indexes\n      } as const,\n      {\n        channel: 'openInterest',\n        symbols: underlyings\n      } as const\n    ]\n  }\n\n  *map(\n    message: BinanceResponse<BinanceOptionsTickerData | BinanceOptionsIndexData | BinanceOptionsOpenInterestData[]>,\n    localTimestamp: Date\n  ) {\n    if (message.stream.endsWith('@index')) {\n      const lastIndexPrice = Number((message.data as any).p)\n      if (lastIndexPrice > 0) {\n        this._indexPrices.set((message.data as any).s, lastIndexPrice)\n      }\n      return\n    }\n\n    if (message.stream.includes('@openInterest')) {\n      for (let data of message.data as BinanceOptionsOpenInterestData[]) {\n        const openInterest = Number(data.o)\n        if (openInterest >= 0) {\n          this._openInterests.set(data.s, openInterest)\n        }\n      }\n\n      return\n    }\n\n    const optionInfo = message.data as BinanceOptionsTickerData\n\n    const [base, expiryPart, strikePrice, optionType] = optionInfo.s.split('-')\n\n    const expirationDate = new Date(`20${expiryPart.slice(0, 2)}-${expiryPart.slice(2, 4)}-${expiryPart.slice(4, 6)}Z`)\n    expirationDate.setUTCHours(8)\n\n    const isPut = optionType === 'P'\n\n    const underlyingIndex = `${base}USDT`\n\n    let bestBidPrice = asNumberIfValid(optionInfo.bo)\n    if (bestBidPrice === 0) {\n      bestBidPrice = undefined\n    }\n\n    let bestBidAmount = asNumberIfValid(optionInfo.bq)\n    if (bestBidAmount === 0) {\n      bestBidAmount = undefined\n    }\n    let bestAskPrice = asNumberIfValid(optionInfo.ao)\n    if (bestAskPrice === 0) {\n      bestAskPrice = undefined\n    }\n\n    let bestAskAmount = asNumberIfValid(optionInfo.aq)\n    if (bestAskAmount === 0) {\n      bestAskAmount = undefined\n    }\n\n    let bestBidIV = bestBidPrice !== undefined ? asNumberIfValid(optionInfo.b) : undefined\n    if (bestBidIV === -1) {\n      bestBidIV = undefined\n    }\n\n    let bestAskIV = bestAskPrice !== undefined ? asNumberIfValid(optionInfo.a) : undefined\n    if (bestAskIV === -1) {\n      bestAskIV = undefined\n    }\n\n    const optionSummary: OptionSummary = {\n      type: 'option_summary',\n      symbol: optionInfo.s,\n      exchange: 'binance-european-options',\n      optionType: isPut ? 'put' : 'call',\n      strikePrice: Number(strikePrice),\n      expirationDate,\n\n      bestBidPrice,\n      bestBidAmount,\n      bestBidIV,\n\n      bestAskPrice,\n      bestAskAmount,\n      bestAskIV,\n\n      lastPrice: asNumberIfValid(optionInfo.c),\n\n      openInterest: this._openInterests.get(optionInfo.s),\n\n      markPrice: asNumberIfValid(optionInfo.mp),\n      markIV: undefined,\n\n      delta: asNumberIfValid(optionInfo.d),\n      gamma: asNumberIfValid(optionInfo.g),\n      vega: asNumberIfValid(optionInfo.v),\n      theta: asNumberIfValid(optionInfo.t),\n      rho: undefined,\n\n      underlyingPrice: this._indexPrices.get(underlyingIndex),\n      underlyingIndex,\n\n      timestamp: new Date(optionInfo.E),\n      localTimestamp: localTimestamp\n    }\n\n    yield optionSummary\n  }\n}\n\nexport class BinanceEuropeanOptionSummaryMapperV2 implements Mapper<'binance-european-options', OptionSummary> {\n  private readonly _lastPrices = new Map<string, number>()\n  private readonly _openInterests = new Map<string, number>()\n\n  canHandle(message: BinanceResponse<any>) {\n    if (message.stream === undefined) {\n      return false\n    }\n\n    return (\n      message.stream.endsWith('@optionMarkPrice') ||\n      message.stream.endsWith('@optionTicker') ||\n      message.stream.includes('@optionOpenInterest')\n    )\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = lowerCaseSymbols(symbols)\n\n    const underlyings =\n      symbols !== undefined\n        ? symbols.map((s) => {\n            const symbolParts = s.split('-')\n            return `${symbolParts[0]}usdt`\n          })\n        : undefined\n\n    return [\n      {\n        channel: 'optionMarkPrice',\n        symbols: underlyings\n      } as const,\n      {\n        channel: 'optionTicker',\n        symbols\n      } as const,\n      {\n        channel: 'optionOpenInterest',\n        symbols: underlyings\n      } as const\n    ]\n  }\n\n  *map(\n    message: BinanceResponse<BinanceOptionsMarkPriceData[] | BinanceOptionsTickerData | BinanceOptionsOpenInterestDataV2[]>,\n    localTimestamp: Date\n  ) {\n    // Handle optionTicker messages to track last prices\n    if (message.stream.endsWith('@optionTicker')) {\n      const tickerData = message.data as BinanceOptionsTickerData\n      const lastPrice = Number(tickerData.c)\n      if (lastPrice > 0) {\n        this._lastPrices.set(tickerData.s, lastPrice)\n      }\n      return\n    }\n\n    // Handle optionOpenInterest messages to track open interest\n    if (message.stream.includes('@optionOpenInterest')) {\n      const openInterestArray = message.data as BinanceOptionsOpenInterestDataV2[]\n      for (let oi of openInterestArray) {\n        const openInterest = Number(oi.o)\n        if (openInterest >= 0) {\n          this._openInterests.set(oi.s, openInterest)\n        }\n      }\n      return\n    }\n\n    // optionMarkPrice contains all data needed: greeks, IV, best bid/ask, mark price, and index price\n    const markPriceArray = message.data as BinanceOptionsMarkPriceData[]\n    for (let markData of markPriceArray) {\n      const [base, expiryPart, strikePrice, optionType] = markData.s.split('-')\n\n      const expirationDate = new Date(`20${expiryPart.slice(0, 2)}-${expiryPart.slice(2, 4)}-${expiryPart.slice(4, 6)}Z`)\n      expirationDate.setUTCHours(8)\n\n      const isPut = optionType === 'P'\n      const underlyingIndex = `${base}USDT`\n\n      let bestBidPrice = asNumberIfValid(markData.bo)\n      if (bestBidPrice === 0) {\n        bestBidPrice = undefined\n      }\n\n      let bestBidAmount = asNumberIfValid(markData.bq)\n      if (bestBidAmount === 0) {\n        bestBidAmount = undefined\n      }\n\n      let bestAskPrice = asNumberIfValid(markData.ao)\n      if (bestAskPrice === 0) {\n        bestAskPrice = undefined\n      }\n\n      let bestAskAmount = asNumberIfValid(markData.aq)\n      if (bestAskAmount === 0) {\n        bestAskAmount = undefined\n      }\n\n      let bestBidIV = bestBidPrice !== undefined ? asNumberIfValid(markData.b) : undefined\n      if (bestBidIV === -1) {\n        bestBidIV = undefined\n      }\n\n      let bestAskIV = bestAskPrice !== undefined ? asNumberIfValid(markData.a) : undefined\n      if (bestAskIV === -1) {\n        bestAskIV = undefined\n      }\n\n      const markPrice = asNumberIfValid(markData.mp)\n      const markIV = asNumberIfValid(markData.vo)\n      const delta = asNumberIfValid(markData.d)\n      const gamma = asNumberIfValid(markData.g)\n      const vega = asNumberIfValid(markData.v)\n      const theta = asNumberIfValid(markData.t)\n      const underlyingPrice = asNumberIfValid(markData.i) // Index price is included in mark price data\n\n      const optionSummary: OptionSummary = {\n        type: 'option_summary',\n        symbol: markData.s,\n        exchange: 'binance-european-options',\n        optionType: isPut ? 'put' : 'call',\n        strikePrice: Number(strikePrice),\n        expirationDate,\n\n        bestBidPrice,\n        bestBidAmount,\n        bestBidIV,\n\n        bestAskPrice,\n        bestAskAmount,\n        bestAskIV,\n\n        lastPrice: this._lastPrices.get(markData.s),\n\n        openInterest: this._openInterests.get(markData.s),\n\n        markPrice,\n        markIV,\n\n        delta,\n        gamma,\n        vega,\n        theta,\n        rho: undefined,\n\n        underlyingPrice,\n        underlyingIndex,\n\n        timestamp: new Date(markData.E),\n        localTimestamp: localTimestamp\n      }\n\n      yield optionSummary\n    }\n  }\n}\n\ntype BinanceResponse<T> = {\n  stream: string\n  data: T\n}\n\ntype BinanceOptionsTradeData = {\n  e: 'trade'\n  E: 1696118408137\n  s: 'DOGE-231006-0.06-C'\n  t: '15'\n  p: '2.64'\n  q: '0.01'\n  b: '4647850284614262784'\n  a: '4719907951072796672'\n  T: 1696118408134\n  S: '-1'\n}\n\ntype BinanceOptionsDepthData = {\n  e: 'depth'\n  E: 1696118400038\n  T: 1696118399082\n  s: 'BTC-231027-34000-C'\n  u: 1925729\n  pu: 1925729\n  b: [['60', '7.31'], ['55', '2.5'], ['50', '15'], ['45', '15'], ['40', '34.04']]\n  a: [['65', '8.28'], ['70', '38.88'], ['75', '15'], ['1200', '0.01'], ['4660', '0.42']]\n}\n\ntype BinanceOptionsTickerData = {\n  e: '24hrTicker'\n  E: 1696118400043\n  T: 1696118400000\n  s: 'BNB-231013-200-P'\n  o: '1'\n  h: '1'\n  l: '0.9'\n  c: '0.9'\n  V: '11.08'\n  A: '9.97'\n  P: '-0.1'\n  p: '-0.1'\n  Q: '11'\n  F: '0'\n  L: '8'\n  n: 1\n  bo: '1'\n  ao: '1.7'\n  bq: '50'\n  aq: '50'\n  b: '0.35929501'\n  a: '0.43317497'\n  d: '-0.16872899'\n  t: '-0.16779034'\n  g: '0.0153237'\n  v: '0.09935076'\n  vo: '0.41658748'\n  mp: '1.5'\n  hl: '37.1'\n  ll: '0.1'\n  eep: '0'\n}\n\ntype BinanceOptionsIndexData = { e: 'index'; E: 1696118400040; s: 'BNBUSDT'; p: '214.6133998' }\n\ntype BinanceOptionsOpenInterestData = { e: 'openInterest'; E: 1696118400042; s: 'XRP-231006-0.46-P'; o: '39480.0'; h: '20326.64319' }\n\ntype BinanceBookLevel = [string, string]\n\n// V2 Types for new format (Dec 17, 2025+)\ntype BinanceOptionsTradeDataV2 = {\n  e: 'trade'\n  E: number // event time\n  T: number // trade completed time\n  s: string // option symbol\n  t: number // trade ID\n  p: string // price\n  q: string // quantity\n  X: 'MARKET' | 'BLOCK' // trade type\n  S: 'BUY' | 'SELL' // direction\n  m: boolean // is buyer market maker\n}\n\ntype BinanceOptionsDepthDataV2 = {\n  e: 'depthUpdate'\n  E: number // event time\n  T: number // transaction time\n  s: string // symbol\n  U: number // first update ID\n  u: number // final update ID\n  pu: number // previous final update ID\n  b: [string, string][] // bids\n  a: [string, string][] // asks\n}\n\ntype BinanceOptionsBookTickerData = {\n  e: 'bookTicker'\n  u: number // order book update ID\n  s: string // symbol\n  b: string // best bid price\n  B: string // best bid qty\n  a: string // best ask price\n  A: string // best ask qty\n  T: number // transaction time\n  E: number // event time\n}\n\ntype BinanceOptionsOpenInterestDataV2 = {\n  e: 'openInterest'\n  E: number // event time\n  s: string // symbol\n  o: string // open interest (quantity)\n  h: string // open interest in notional value (USD)\n}\n\ntype BinanceOptionsMarkPriceData = {\n  s: string // option symbol\n  mp: string // mark price\n  E: number // event time\n  e: 'markPrice'\n  i: string // index price\n  P: string // premium\n  bo: string // best bid price\n  ao: string // best ask price\n  bq: string // best bid quantity\n  aq: string // best ask quantity\n  b: string // bid IV\n  a: string // ask IV\n  hl: string // high limit price\n  ll: string // low limit price\n  vo: string // mark IV\n  rf: string // risk free rate\n  d: string // delta\n  t: string // theta\n  g: string // gamma\n  v: string // vega\n}\n"
  },
  {
    "path": "src/mappers/bitfinex.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Exchange, FilterForExchange, Liquidation, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\n// https://docs.bitfinex.com/v2/docs/ws-general\n\nexport class BitfinexTradesMapper implements Mapper<'bitfinex' | 'bitfinex-derivatives', Trade> {\n  private readonly _channelIdToSymbolMap: Map<number, string> = new Map()\n\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: BitfinexMessage) {\n    // non sub messages are provided as arrays\n    if (Array.isArray(message)) {\n      // first test if message itself provides channel name and if so if it's trades\n      const channelName = message[message.length - 2]\n      if (typeof channelName === 'string') {\n        return channelName === 'trades'\n      }\n\n      // otherwise use channel to id mapping\n      return this._channelIdToSymbolMap.get(message[0]) !== undefined\n    }\n\n    // store mapping between channel id and symbols\n    if (message.event === 'subscribed') {\n      const isTradeChannel = message.channel === 'trades'\n      if (isTradeChannel) {\n        this._channelIdToSymbolMap.set(message.chanId, message.pair)\n      }\n    }\n\n    return false\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BitfinexTrades, localTimestamp: Date) {\n    const symbolFromMessage = message[message.length - 1]\n    const symbol = typeof symbolFromMessage === 'string' ? symbolFromMessage : this._channelIdToSymbolMap.get(message[0])\n\n    // ignore if we don't have matching symbol\n    if (symbol === undefined) {\n      return\n    }\n\n    // ignore heartbeats\n    if (message[1] === 'hb') {\n      return\n    }\n    // ignore snapshots\n    if (message[1] !== 'te') {\n      return\n    }\n\n    const [id, timestamp, amount, price] = message[2]\n\n    const trade: Trade = {\n      type: 'trade',\n      symbol,\n      exchange: this._exchange,\n      id: String(id),\n      price,\n      amount: Math.abs(amount),\n      side: amount < 0 ? 'sell' : 'buy',\n      timestamp: new Date(timestamp),\n      localTimestamp: localTimestamp\n    }\n\n    yield trade\n  }\n}\n\nexport class BitfinexBookChangeMapper implements Mapper<'bitfinex' | 'bitfinex-derivatives', BookChange> {\n  private readonly _channelIdToSymbolMap: Map<number, string> = new Map()\n\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: BitfinexMessage) {\n    // non sub messages are provided as arrays\n    if (Array.isArray(message)) {\n      // first test if message itself provides channel name and if so if it's a book\n      const channelName = message[message.length - 2]\n      if (typeof channelName === 'string') {\n        return channelName === 'book'\n      }\n\n      // otherwise use channel to id mapping\n      return this._channelIdToSymbolMap.get(message[0]) !== undefined\n    }\n\n    // store mapping between channel id and symbols\n    if (message.event === 'subscribed') {\n      const isBookP0Channel = message.channel === 'book' && message.prec === 'P0'\n      if (isBookP0Channel) {\n        this._channelIdToSymbolMap.set(message.chanId, message.pair)\n      }\n    }\n\n    return false\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'book',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BitfinexBooks, localTimestamp: Date) {\n    const symbolFromMessage = message[message.length - 1]\n    const symbol = typeof symbolFromMessage === 'string' ? symbolFromMessage : this._channelIdToSymbolMap.get(message[0])\n\n    // ignore if we don't have matching symbol\n    if (symbol === undefined) {\n      return\n    }\n    // ignore heartbeats\n    if (message[1] === 'hb') {\n      return\n    }\n\n    const isSnapshot = Array.isArray(message[1][0])\n    const bookLevels = (isSnapshot ? message[1] : [message[1]]) as BitfinexBookLevel[]\n\n    const asks = bookLevels.filter((level) => level[2] < 0)\n    const bids = bookLevels.filter((level) => level[2] > 0)\n\n    const bookChange: BookChange = {\n      type: 'book_change',\n      symbol,\n      exchange: this._exchange,\n      isSnapshot,\n\n      bids: bids.map(this._mapBookLevel),\n      asks: asks.map(this._mapBookLevel),\n      timestamp: new Date(message[3]),\n      localTimestamp: localTimestamp\n    }\n\n    yield bookChange\n  }\n\n  private _mapBookLevel(level: BitfinexBookLevel) {\n    const [price, count, bitfinexAmount] = level\n    const amount = count === 0 ? 0 : Math.abs(bitfinexAmount)\n\n    return { price, amount }\n  }\n}\n\nexport class BitfinexDerivativeTickerMapper implements Mapper<'bitfinex-derivatives', DerivativeTicker> {\n  private readonly _channelIdToSymbolMap: Map<number, string> = new Map()\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: BitfinexMessage) {\n    // non sub messages are provided as arrays\n    if (Array.isArray(message)) {\n      // first test if message itself provides channel name and if so if it's a status\n      const channelName = message[message.length - 2]\n      if (typeof channelName === 'string') {\n        return channelName === 'status'\n      }\n\n      // otherwise use channel to id mapping\n      return this._channelIdToSymbolMap.get(message[0]) !== undefined\n    }\n\n    // store mapping between channel id and symbols\n    if (message.event === 'subscribed') {\n      const isDerivStatusChannel = message.channel === 'status' && message.key && message.key.startsWith('deriv:')\n\n      if (isDerivStatusChannel) {\n        this._channelIdToSymbolMap.set(message.chanId, message.key!.replace('deriv:t', ''))\n      }\n    }\n\n    return false\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'status',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BitfinexStatusMessage, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    const symbolFromMessage = message[message.length - 1]\n    const symbol = typeof symbolFromMessage === 'string' ? symbolFromMessage : this._channelIdToSymbolMap.get(message[0])\n\n    // ignore if we don't have matching symbol\n    if (symbol === undefined) {\n      return\n    }\n\n    // ignore heartbeats\n    if (message[1] === 'hb') {\n      return\n    }\n    const statusInfo = message[1]\n    // https://docs.bitfinex.com/v2/reference#ws-public-status\n\n    const fundingRate = statusInfo[11]\n    const indexPrice = statusInfo[3]\n    const lastPrice = statusInfo[2]\n    const markPrice = statusInfo[14]\n    const openInterest = statusInfo[17]\n    const nextFundingTimestamp = statusInfo[7]\n    const predictedFundingRate = statusInfo[8]\n\n    const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(symbol, 'bitfinex-derivatives')\n\n    pendingTickerInfo.updateFundingRate(fundingRate)\n    pendingTickerInfo.updateFundingTimestamp(nextFundingTimestamp !== undefined ? new Date(nextFundingTimestamp) : undefined)\n    pendingTickerInfo.updatePredictedFundingRate(predictedFundingRate)\n\n    pendingTickerInfo.updateIndexPrice(indexPrice)\n    pendingTickerInfo.updateLastPrice(lastPrice)\n    pendingTickerInfo.updateMarkPrice(markPrice)\n    pendingTickerInfo.updateOpenInterest(openInterest)\n\n    pendingTickerInfo.updateTimestamp(new Date(message[3]))\n\n    if (pendingTickerInfo.hasChanged()) {\n      yield pendingTickerInfo.getSnapshot(localTimestamp)\n    }\n  }\n}\n\nexport class BitfinexLiquidationsMapper implements Mapper<'bitfinex-derivatives', Liquidation> {\n  private _liquidationsChannelId: number | undefined = undefined\n\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: BitfinexMessage) {\n    // non sub messages are provided as arrays\n    if (Array.isArray(message)) {\n      // first test if message itself provides channel name and if so if it's liquidations\n      const channelName = message[message.length - 2]\n      if (typeof channelName === 'string') {\n        return channelName === 'liquidations'\n      }\n\n      // otherwise use channel id\n      return this._liquidationsChannelId === message[0]\n    }\n\n    // store liquidation channel id\n    if (message.event === 'subscribed') {\n      const isLiquidationsChannel = message.channel === 'status' && message.key === 'liq:global'\n      if (isLiquidationsChannel) {\n        this._liquidationsChannelId = message.chanId\n      }\n    }\n\n    return false\n  }\n\n  getFilters() {\n    // liquidations channel is global, not per symbol\n    return [\n      {\n        channel: 'liquidations'\n      } as const\n    ]\n  }\n\n  *map(message: BitfinexLiquidation, localTimestamp: Date) {\n    // ignore heartbeats\n    if (message[1] === 'hb') {\n      return\n    }\n\n    if (!message[1]) {\n      return\n    }\n    // see https://docs.bitfinex.com/reference#ws-public-status\n    for (let bitfinexLiquidation of message[1]) {\n      const isInitialLiquidationTrigger = bitfinexLiquidation[8] === 0\n      // process only initial liquidation triggers not subsequent 'matches', assumption here is that\n      // there's only single initial liquidation trigger but there can be multiple matches for single liquidation\n      if (isInitialLiquidationTrigger) {\n        const id = String(bitfinexLiquidation[1])\n        const timestamp = new Date(bitfinexLiquidation[2])\n        const symbol = bitfinexLiquidation[4].replace('t', '')\n        const price = bitfinexLiquidation[6]\n        const amount = bitfinexLiquidation[5]\n\n        const liquidation: Liquidation = {\n          type: 'liquidation',\n          symbol,\n          exchange: this._exchange,\n          id,\n          price,\n          amount: Math.abs(amount),\n          side: amount < 0 ? 'buy' : 'sell',\n          timestamp,\n          localTimestamp: localTimestamp\n        }\n\n        yield liquidation\n      }\n    }\n  }\n}\n\nexport class BitfinexBookTickerMapper implements Mapper<'bitfinex' | 'bitfinex-derivatives', BookTicker> {\n  private readonly _channelIdToSymbolMap: Map<number, string> = new Map()\n\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: BitfinexMessage) {\n    // non sub messages are provided as arrays\n    if (Array.isArray(message)) {\n      // first test if message itself provides channel name and if so if it's trades\n      const channelName = message[message.length - 2]\n      if (typeof channelName === 'string') {\n        return channelName === 'ticker'\n      }\n\n      // otherwise use channel to id mapping\n      return this._channelIdToSymbolMap.get(message[0]) !== undefined\n    }\n\n    // store mapping between channel id and symbols\n    if (message.event === 'subscribed') {\n      const isTicker = message.channel === 'ticker' && message.pair !== undefined\n      if (isTicker) {\n        this._channelIdToSymbolMap.set(message.chanId, message.pair)\n      }\n    }\n\n    return false\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BitfinexTicker, localTimestamp: Date) {\n    const symbolFromMessage = message[message.length - 1]\n    const symbol = typeof symbolFromMessage === 'string' ? symbolFromMessage : this._channelIdToSymbolMap.get(message[0])\n\n    if (symbol === undefined) {\n      return\n    }\n\n    // ignore heartbeats\n    if (message[1] === 'hb') {\n      return\n    }\n\n    // ignore funding tickers\n    const tickerData = message[1]\n    if (tickerData.length > 11) {\n      return\n    }\n\n    const [bidPrice, bidAmount, askPrice, askAmount] = tickerData\n\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol,\n      exchange: this._exchange,\n      askAmount,\n      askPrice,\n      bidPrice,\n      bidAmount,\n      timestamp: new Date(message[3]),\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\ntype BitfinexMessage =\n  | {\n      event: 'subscribed'\n      channel: FilterForExchange['bitfinex-derivatives']['channel']\n      chanId: number\n      pair: string\n      prec: string\n      key?: string\n    }\n  | Array<any>\n\ntype BitfinexHeartbeat = [number, 'hb']\ntype BitfinexTrades = [number, 'te' | any[], [number, number, number, number]] | BitfinexHeartbeat\ntype BitfinexBookLevel = [number, number, number]\ntype BitfinexBooks = [number, BitfinexBookLevel | BitfinexBookLevel[], number, number] | BitfinexHeartbeat\n\ntype BitfinexStatusMessage = [number, (number | undefined)[], number, number] | BitfinexHeartbeat\n\ntype BitfinexLiquidation =\n  | [number, ['pos', number, number, null, string, number, number, null, number, number, null, number][]]\n  | BitfinexHeartbeat\n\ntype BitfinexTicker =\n  | [\n      CHANNEL_ID: number,\n      ITEMS:\n        | [\n            BID: number,\n            BID_SIZE: number,\n            ASK: number,\n            ASK_SIZE: number,\n            DAILY_CHANGE: number,\n            DAILY_CHANGE_RELATIVE: number,\n            LAST_PRICE: number,\n            VOLUME: number,\n            HIGH: number,\n            LOW: number\n          ]\n        | [\n            BID: number,\n            BID_SIZE: number,\n            ASK: number,\n            ASK_SIZE: number,\n            DAILY_CHANGE: number,\n            DAILY_CHANGE_RELATIVE: number,\n            LAST_PRICE: number,\n            VOLUME: number,\n            HIGH: number,\n            LOW: number,\n            EXTRA: null\n          ],\n      SEQ_ID: number,\n      TIMESTAMP: number\n    ]\n  | BitfinexHeartbeat\n"
  },
  {
    "path": "src/mappers/bitflyer.ts",
    "content": "import { parseμs, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\nexport const bitflyerTradesMapper: Mapper<'bitflyer', Trade> = {\n  canHandle(message: BitflyerExecutions | BitflyerBoard) {\n    return message.params.channel.startsWith('lightning_executions')\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'lightning_executions',\n        symbols\n      }\n    ]\n  },\n\n  *map(bitflyerExecutions: BitflyerExecutions, localTimestamp: Date) {\n    const symbol = bitflyerExecutions.params.channel.replace('lightning_executions_', '')\n\n    for (const execution of bitflyerExecutions.params.message) {\n      const timestamp = new Date(execution.exec_date)\n      timestamp.μs = parseμs(execution.exec_date)\n\n      const trade: Trade = {\n        type: 'trade',\n        symbol,\n        exchange: 'bitflyer',\n        id: String(execution.id),\n        price: execution.price,\n        amount: execution.size,\n        side: execution.side === 'BUY' ? 'buy' : execution.side === 'SELL' ? 'sell' : 'unknown',\n        timestamp,\n        localTimestamp: localTimestamp\n      }\n\n      yield trade\n    }\n  }\n}\n\nconst mapBookLevel = ({ price, size }: BitflyerBookLevel) => {\n  return { price, amount: size }\n}\n\nexport class BitflyerBookChangeMapper implements Mapper<'bitflyer', BookChange> {\n  private readonly _snapshotsInfo: Map<string, boolean> = new Map()\n\n  canHandle(message: BitflyerExecutions | BitflyerBoard) {\n    return message.params.channel.startsWith('lightning_board')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'lightning_board_snapshot',\n        symbols\n      } as const,\n      {\n        channel: 'lightning_board',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(bitflyerBoard: BitflyerBoard, localTimestamp: Date): IterableIterator<BookChange> {\n    const channel = bitflyerBoard.params.channel\n    const isSnapshot = channel.startsWith('lightning_board_snapshot_')\n    const symbol = isSnapshot ? channel.replace('lightning_board_snapshot_', '') : channel.replace('lightning_board_', '')\n\n    if (this._snapshotsInfo.has(symbol) === false) {\n      if (isSnapshot) {\n        this._snapshotsInfo.set(symbol, true)\n      } else {\n        // skip change messages until we've received book snapshot\n        return\n      }\n    }\n\n    yield {\n      type: 'book_change',\n      symbol,\n      exchange: 'bitflyer',\n      isSnapshot,\n      bids: bitflyerBoard.params.message.bids.map(mapBookLevel),\n      asks: bitflyerBoard.params.message.asks.map(mapBookLevel),\n      timestamp: localTimestamp,\n      localTimestamp\n    }\n  }\n}\n\nexport const bitflyerBookTickerMapper: Mapper<'bitflyer', BookTicker> = {\n  canHandle(message: BitflyerTicker) {\n    return message.params.channel.startsWith('lightning_ticker')\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'lightning_ticker',\n        symbols\n      }\n    ]\n  },\n\n  *map(bitflyerTickerMessage: BitflyerTicker, localTimestamp: Date) {\n    const symbol = bitflyerTickerMessage.params.channel.replace('lightning_ticker_', '')\n    const bitflyerTicker = bitflyerTickerMessage.params.message\n    const timestamp = new Date(bitflyerTicker.timestamp)\n    timestamp.μs = parseμs(bitflyerTicker.timestamp)\n\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol,\n      exchange: 'bitflyer',\n\n      askAmount: bitflyerTicker.best_ask_size,\n      askPrice: bitflyerTicker.best_ask,\n\n      bidPrice: bitflyerTicker.best_bid,\n      bidAmount: bitflyerTicker.best_bid_size,\n      timestamp,\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\ntype BitflyerExecutions = {\n  method: 'channelMessage'\n  params: {\n    channel: string\n    message: {\n      id: number\n      side: 'SELL' | 'BUY'\n      price: number\n      size: number\n      exec_date: string\n    }[]\n  }\n}\n\ntype BitflyerBookLevel = {\n  price: number\n  size: number\n}\n\ntype BitflyerBoard = {\n  method: 'channelMessage'\n  params: {\n    channel: string\n    message: {\n      bids: BitflyerBookLevel[]\n      asks: BitflyerBookLevel[]\n    }\n  }\n}\n\ntype BitflyerTicker = {\n  method: 'channelMessage'\n  params: {\n    channel: 'lightning_ticker_ETH_JPY'\n    message: {\n      product_code: 'ETH_JPY'\n      state: 'RUNNING'\n      timestamp: '2021-09-01T00:00:00.2115808Z'\n      tick_id: 2830807\n      best_bid: 376592.0\n      best_ask: 376676.0\n      best_bid_size: 0.01\n      best_ask_size: 0.4\n      total_bid_depth: 5234.4333389\n      total_ask_depth: 1511.52678\n      market_bid_size: 0.0\n      market_ask_size: 0.0\n      ltp: 376789.0\n      volume: 37853.5120461\n      volume_by_product: 37853.5120461\n    }\n  }\n}\n"
  },
  {
    "path": "src/mappers/bitget.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Exchange, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\nexport class BitgetTradesMapper implements Mapper<'bitget' | 'bitget-futures', Trade> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: BitgetTradeMessage) {\n    return message.arg.channel === 'trade' && message.action === 'update'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BitgetTradeMessage, localTimestamp: Date): IterableIterator<Trade> {\n    for (let trade of message.data) {\n      yield {\n        type: 'trade',\n        symbol: message.arg.instId,\n        exchange: this._exchange,\n        id: trade.tradeId,\n        price: Number(trade.price),\n        amount: Number(trade.size),\n        side: trade.side === 'buy' ? 'buy' : 'sell',\n        timestamp: new Date(Number(trade.ts)),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nfunction mapPriceLevel(level: [string, string]) {\n  return {\n    price: Number(level[0]),\n    amount: Number(level[1])\n  }\n}\nexport class BitgetBookChangeMapper implements Mapper<'bitget' | 'bitget-futures', BookChange> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: BitgetOrderbookMessage) {\n    return message.arg.channel === 'books15' && message.action === 'snapshot'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'books15',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BitgetOrderbookMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    for (let orderbookData of message.data) {\n      yield {\n        type: 'book_change',\n        symbol: message.arg.instId,\n        exchange: this._exchange,\n        isSnapshot: message.action === 'snapshot',\n        bids: orderbookData.bids.map(mapPriceLevel),\n        asks: orderbookData.asks.map(mapPriceLevel),\n        timestamp: new Date(Number(orderbookData.ts)),\n        localTimestamp\n      }\n    }\n  }\n}\n\nexport class BitgetBookTickerMapper implements Mapper<'bitget' | 'bitget-futures', BookTicker> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: BitgetBBoMessage) {\n    return message.arg.channel === 'books1' && message.action === 'snapshot'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: `books1` as const,\n        symbols\n      }\n    ]\n  }\n\n  *map(message: BitgetBBoMessage, localTimestamp: Date): IterableIterator<BookTicker> {\n    for (const bboMessage of message.data) {\n      const ticker: BookTicker = {\n        type: 'book_ticker',\n        symbol: message.arg.instId,\n        exchange: this._exchange,\n\n        askAmount: bboMessage.asks[0] ? Number(bboMessage.asks[0][1]) : undefined,\n        askPrice: bboMessage.asks[0] ? Number(bboMessage.asks[0][0]) : undefined,\n\n        bidPrice: bboMessage.bids[0] ? Number(bboMessage.bids[0][0]) : undefined,\n        bidAmount: bboMessage.bids[0] ? Number(bboMessage.bids[0][1]) : undefined,\n        timestamp: new Date(Number(bboMessage.ts)),\n        localTimestamp: localTimestamp\n      }\n\n      yield ticker\n    }\n  }\n}\n\nexport class BitgetDerivativeTickerMapper implements Mapper<'bitget-futures', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: BitgetTickerMessage) {\n    return message.arg.channel === 'ticker' && message.action === 'snapshot'\n  }\n\n  getFilters(symbols?: string[]) {\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BitgetTickerMessage, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    for (const tickerMessage of message.data) {\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(tickerMessage.symbol, 'bitget-futures')\n\n      pendingTickerInfo.updateIndexPrice(Number(tickerMessage.indexPrice))\n      pendingTickerInfo.updateMarkPrice(Number(tickerMessage.markPrice))\n      pendingTickerInfo.updateOpenInterest(Number(tickerMessage.holdingAmount))\n      pendingTickerInfo.updateLastPrice(Number(tickerMessage.lastPr))\n\n      pendingTickerInfo.updateTimestamp(new Date(Number(tickerMessage.ts)))\n\n      if (tickerMessage.nextFundingTime !== '0') {\n        pendingTickerInfo.updateFundingTimestamp(new Date(Number(tickerMessage.nextFundingTime)))\n        pendingTickerInfo.updateFundingRate(Number(tickerMessage.fundingRate))\n      }\n\n      if (pendingTickerInfo.hasChanged()) {\n        yield pendingTickerInfo.getSnapshot(localTimestamp)\n      }\n    }\n  }\n}\n\ntype BitgetTradeMessage = {\n  action: 'update'\n  arg: { instType: 'SPOT'; channel: 'trade'; instId: 'OPUSDT' }\n  data: [{ ts: '1730332800983'; price: '1.717'; size: '56.16'; side: 'buy'; tradeId: '1235670816495050754' }]\n  ts: 1730332800989\n}\n\ntype BitgetOrderbookMessage = {\n  action: 'snapshot'\n  arg: { instType: 'SPOT'; channel: 'books15'; instId: 'GEMSUSDT' }\n  data: [\n    {\n      asks: [['0.22816', '155.25']]\n      bids: [['0.22785', '73.41']]\n      checksum: 0\n      ts: '1730963759993'\n    }\n  ]\n  ts: 1730963759997\n}\n\ntype BitgetBBoMessage = {\n  action: 'snapshot'\n  arg: { instType: 'SPOT'; channel: 'books1'; instId: 'METISUSDT' }\n  data: [{ asks: [['44.90', '0.6927']]; bids: [['44.82', '3.5344']]; checksum: 0; ts: '1730332859988' }]\n  ts: 1730332859989\n}\n\ntype BitgetTickerMessage = {\n  action: 'snapshot'\n  arg: { instType: 'COIN-FUTURES'; channel: 'ticker'; instId: 'BTCUSD' }\n  data: [\n    {\n      instId: 'BTCUSD'\n      lastPr: '72331.5'\n      bidPr: '72331.5'\n      askPr: '72331.8'\n      bidSz: '7.296'\n      askSz: '0.02'\n      open24h: '72047.8'\n      high24h: '72934.8'\n      low24h: '71422.8'\n      change24h: '-0.00561'\n      fundingRate: '0.000116'\n      nextFundingTime: string\n      markPrice: string\n      indexPrice: string\n      holdingAmount: string\n      baseVolume: '7543.376'\n      quoteVolume: '544799876.924'\n      openUtc: '72335.3'\n      symbolType: '1'\n      symbol: 'BTCUSD'\n      deliveryPrice: '0'\n      ts: '1730332823217'\n    }\n  ]\n  ts: 1730332823220\n}\n"
  },
  {
    "path": "src/mappers/bitmex.ts",
    "content": "import { asNumberIfValid, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookPriceLevel, BookTicker, DerivativeTicker, FilterForExchange, Liquidation, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\n// https://www.bitmex.com/app/wsAPI\n\nexport const bitmexTradesMapper: Mapper<'bitmex', Trade> = {\n  canHandle(message: BitmexDataMessage) {\n    return message.table === 'trade' && message.action === 'insert'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      }\n    ]\n  },\n\n  *map(bitmexTradesMessage: BitmexTradesMessage, localTimestamp: Date) {\n    for (const bitmexTrade of bitmexTradesMessage.data) {\n      const trade: Trade = {\n        type: 'trade',\n        symbol: bitmexTrade.symbol,\n        exchange: 'bitmex',\n        id: bitmexTrade.trdMatchID,\n        price: bitmexTrade.price,\n        amount: bitmexTrade.size,\n        side: bitmexTrade.side !== undefined ? (bitmexTrade.side === 'Buy' ? 'buy' : 'sell') : 'unknown',\n        timestamp: new Date(bitmexTrade.timestamp),\n        localTimestamp: localTimestamp\n      }\n\n      yield trade\n    }\n  }\n}\n\nexport class BitmexBookChangeMapper implements Mapper<'bitmex', BookChange> {\n  private readonly _idToPriceLevelMap: Map<number, number> = new Map()\n\n  canHandle(message: BitmexDataMessage) {\n    return message.table === 'orderBookL2'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'orderBookL2',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(bitmexOrderBookL2Message: BitmexOrderBookL2Message, localTimestamp: Date): IterableIterator<BookChange> {\n    let bitmexBookMessagesGrouppedBySymbol\n    // only partial messages can contain different symbols (when subscribed via {\"op\": \"subscribe\", \"args\": [\"orderBookL2\"]} for example)\n    if (bitmexOrderBookL2Message.action === 'partial') {\n      bitmexBookMessagesGrouppedBySymbol = bitmexOrderBookL2Message.data.reduce(\n        (prev, current) => {\n          if (prev[current.symbol]) {\n            prev[current.symbol].push(current)\n          } else {\n            prev[current.symbol] = [current]\n          }\n\n          return prev\n        },\n        {} as {\n          [key: string]: typeof bitmexOrderBookL2Message.data\n        }\n      )\n\n      if (bitmexOrderBookL2Message.data.length === 0 && bitmexOrderBookL2Message.filter?.symbol !== undefined) {\n        const emptySnapshot: BookChange = {\n          type: 'book_change',\n          symbol: bitmexOrderBookL2Message.filter?.symbol!,\n          exchange: 'bitmex',\n          isSnapshot: true,\n          bids: [],\n          asks: [],\n          timestamp: localTimestamp,\n          localTimestamp: localTimestamp\n        }\n\n        yield emptySnapshot\n      }\n    } else {\n      // in case of other messages types BitMEX always returns data for single symbol\n      bitmexBookMessagesGrouppedBySymbol = {\n        [bitmexOrderBookL2Message.data[0].symbol]: bitmexOrderBookL2Message.data\n      }\n    }\n\n    for (let symbol in bitmexBookMessagesGrouppedBySymbol) {\n      const bids: BookPriceLevel[] = []\n      const asks: BookPriceLevel[] = []\n      let latestBitmexTimestamp: Date | undefined = undefined\n\n      for (const item of bitmexBookMessagesGrouppedBySymbol[symbol]) {\n        if (item.timestamp !== undefined) {\n          const priceLevelTimestamp = new Date(item.timestamp)\n          if (latestBitmexTimestamp === undefined) {\n            latestBitmexTimestamp = priceLevelTimestamp\n          } else {\n            if (priceLevelTimestamp.valueOf() > latestBitmexTimestamp.valueOf()) {\n              latestBitmexTimestamp = priceLevelTimestamp\n            }\n          }\n        }\n\n        // https://www.bitmex.com/app/restAPI#OrderBookL2\n        if (item.price !== undefined) {\n          // store the mapping from id to price level if price is specified\n          // only partials and inserts have price set\n          this._idToPriceLevelMap.set(item.id, item.price)\n        }\n        const price = this._idToPriceLevelMap.get(item.id)\n        const amount = item.size || 0 // delete messages do not have size specified\n        // if we still don't have a price it means that there was an update before partial message - let's skip it\n        if (price === undefined) {\n          continue\n        }\n\n        if (item.side === 'Buy') {\n          bids.push({ price, amount })\n        } else {\n          asks.push({ price, amount })\n        }\n        // remove meta info for deleted level\n        if (bitmexOrderBookL2Message.action === 'delete') {\n          this._idToPriceLevelMap.delete(item.id)\n        }\n      }\n\n      const isSnapshot = bitmexOrderBookL2Message.action === 'partial'\n\n      if (bids.length > 0 || asks.length > 0 || isSnapshot) {\n        const bookChange: BookChange = {\n          type: 'book_change',\n          symbol,\n          exchange: 'bitmex',\n          isSnapshot,\n          bids,\n          asks,\n          timestamp: latestBitmexTimestamp !== undefined ? latestBitmexTimestamp : localTimestamp,\n          localTimestamp: localTimestamp\n        }\n\n        yield bookChange\n      }\n    }\n  }\n}\n\nexport class BitmexDerivativeTickerMapper implements Mapper<'bitmex', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: BitmexDataMessage) {\n    return message.table === 'instrument'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'instrument',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BitmexInstrumentsMessage, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    for (const bitmexInstrument of message.data) {\n      // process instrument messages only if:\n      // - we already have seen their 'partials' or already have 'pending info'\n      // - and instruments aren't settled or unlisted already\n      const isOpen = bitmexInstrument.state === undefined || bitmexInstrument.state === 'Open' || bitmexInstrument.state === 'Closed'\n      const isPartial = message.action === 'partial'\n      const hasPendingInfo = this.pendingTickerInfoHelper.hasPendingTickerInfo(bitmexInstrument.symbol)\n\n      if ((isPartial || hasPendingInfo) && isOpen) {\n        const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(bitmexInstrument.symbol, 'bitmex')\n\n        pendingTickerInfo.updateFundingRate(bitmexInstrument.fundingRate)\n        pendingTickerInfo.updatePredictedFundingRate(bitmexInstrument.indicativeFundingRate)\n        pendingTickerInfo.updateFundingTimestamp(\n          bitmexInstrument.fundingTimestamp ? new Date(bitmexInstrument.fundingTimestamp) : undefined\n        )\n        pendingTickerInfo.updateIndexPrice(bitmexInstrument.indicativeSettlePrice)\n        pendingTickerInfo.updateMarkPrice(bitmexInstrument.markPrice)\n        pendingTickerInfo.updateOpenInterest(bitmexInstrument.openInterest)\n        pendingTickerInfo.updateLastPrice(bitmexInstrument.lastPrice)\n\n        if (bitmexInstrument.timestamp !== undefined) {\n          pendingTickerInfo.updateTimestamp(new Date(bitmexInstrument.timestamp))\n        }\n\n        if (pendingTickerInfo.hasChanged()) {\n          yield pendingTickerInfo.getSnapshot(localTimestamp)\n        }\n      }\n    }\n  }\n}\n\nexport const bitmexLiquidationsMapper: Mapper<'bitmex', Liquidation> = {\n  canHandle(message: BitmexDataMessage) {\n    return message.table === 'liquidation' && message.action === 'insert'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'liquidation',\n        symbols\n      }\n    ]\n  },\n\n  *map(bitmexLiquiationsMessage: BitmexLiquidation, localTimestamp: Date) {\n    for (const bitmexLiquidation of bitmexLiquiationsMessage.data) {\n      const liquidation: Liquidation = {\n        type: 'liquidation',\n        symbol: bitmexLiquidation.symbol,\n        exchange: 'bitmex',\n        id: bitmexLiquidation.orderID,\n        price: bitmexLiquidation.price,\n        amount: bitmexLiquidation.leavesQty,\n        side: bitmexLiquidation.side === 'Buy' ? 'buy' : 'sell',\n        timestamp: localTimestamp,\n        localTimestamp: localTimestamp\n      }\n\n      yield liquidation\n    }\n  }\n}\n\nexport const bitmexBookTickerMapper: Mapper<'bitmex', BookTicker> = {\n  canHandle(message: BitmexDataMessage) {\n    return message.table === 'quote' && message.action === 'insert'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'quote',\n        symbols\n      }\n    ]\n  },\n\n  *map(bitmexQuoteMessage: BitmexQuote, localTimestamp: Date) {\n    for (const bitmexQuote of bitmexQuoteMessage.data) {\n      const ticker: BookTicker = {\n        type: 'book_ticker',\n        symbol: bitmexQuote.symbol,\n        exchange: 'bitmex',\n        askAmount: asNumberIfValid(bitmexQuote.askSize),\n        askPrice: asNumberIfValid(bitmexQuote.askPrice),\n\n        bidPrice: asNumberIfValid(bitmexQuote.bidPrice),\n        bidAmount: asNumberIfValid(bitmexQuote.bidSize),\n        timestamp: new Date(bitmexQuote.timestamp),\n        localTimestamp: localTimestamp\n      }\n\n      yield ticker\n    }\n  }\n}\n\ntype BitmexDataMessage = {\n  table: FilterForExchange['bitmex']['channel']\n  action: 'partial' | 'update' | 'insert' | 'delete'\n}\n\ntype BitmexTradesMessage = BitmexDataMessage & {\n  table: 'trade'\n  action: 'insert'\n  data: {\n    symbol: string\n    trdMatchID: string\n    side?: 'Buy' | 'Sell'\n    size: number\n    price: number\n    timestamp: string\n  }[]\n}\n\ntype BitmexInstrument = {\n  symbol: string\n  state?: 'Open' | 'Closed' | 'Unlisted' | 'Settled'\n  openInterest?: number | null\n  fundingRate?: number | null\n  markPrice?: number | null\n  lastPrice?: number | null\n  indicativeSettlePrice?: number | null\n  indicativeFundingRate?: number | null\n  fundingTimestamp?: string | null\n  timestamp?: string\n}\n\ntype BitmexInstrumentsMessage = BitmexDataMessage & {\n  table: 'instrument'\n  data: BitmexInstrument[]\n}\n\ntype BitmexOrderBookL2Message = BitmexDataMessage & {\n  table: 'orderBookL2'\n  filter?: { symbol?: string }\n  data: {\n    symbol: string\n    id: number\n    side: 'Buy' | 'Sell'\n    size?: number\n    price?: number\n    timestamp?: string\n  }[]\n}\n\ntype BitmexLiquidation = BitmexDataMessage & {\n  table: 'liquidation'\n  data: {\n    orderID: string\n    symbol: string\n    side: 'Buy' | 'Sell'\n    price: number\n    leavesQty: number\n  }[]\n}\n\ntype BitmexQuote = BitmexDataMessage & {\n  table: 'quote'\n  action: 'insert'\n  data: [{ timestamp: string; symbol: string; bidSize: number; bidPrice: number; askPrice: number; askSize: number }]\n}\n"
  },
  {
    "path": "src/mappers/bitnomial.ts",
    "content": "import { parseμs, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\nexport const bitnomialTradesMapper: Mapper<'bitnomial', Trade> = {\n  canHandle(message: BitnomialTrade) {\n    return message.type === 'trade'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: BitnomialTrade, localTimestamp: Date): IterableIterator<Trade> {\n    const timestamp = new Date(message.timestamp)\n    timestamp.μs = parseμs(message.timestamp)\n\n    yield {\n      type: 'trade',\n      symbol: message.symbol,\n      exchange: 'bitnomial',\n      id: String(message.ack_id),\n      price: Number(message.price),\n      amount: Number(message.quantity),\n      side: message.taker_side === 'Bid' ? 'buy' : 'sell',\n      timestamp,\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nconst mapBookLevel = (level: BookLevel) => {\n  return { price: level[0], amount: level[1] }\n}\n\nexport class BitnomialBookChangMapper implements Mapper<'bitnomial', BookChange> {\n  canHandle(message: BitnomialBookMessage) {\n    return message.type === 'book' || message.type === 'level'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'book',\n        symbols\n      } as const,\n      {\n        channel: 'level',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BitnomialBookMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    const timestamp = new Date(message.timestamp)\n    timestamp.μs = parseμs(message.timestamp)\n\n    if (message.type === 'book') {\n      yield {\n        type: 'book_change',\n        symbol: message.symbol,\n        exchange: 'bitnomial',\n        isSnapshot: true,\n        bids: message.bids.map(mapBookLevel),\n        asks: message.asks.map(mapBookLevel),\n        timestamp,\n        localTimestamp\n      }\n    } else {\n      const update = {\n        price: message.price,\n        amount: message.quantity\n      }\n      yield {\n        type: 'book_change',\n        symbol: message.symbol,\n        exchange: 'bitnomial',\n        isSnapshot: false,\n        bids: message.side === 'Bid' ? [update] : [],\n        asks: message.side === 'Ask' ? [update] : [],\n        timestamp,\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\ntype BitnomialTrade = {\n  type: 'trade'\n  ack_id: '7148460953766461527'\n  price: 19000\n  quantity: 10\n  symbol: 'BUSZ2'\n  taker_side: 'Bid'\n  timestamp: '2022-09-28T16:06:39.022836179Z'\n}\n\ntype BookLevel = [number, number]\n\ntype BitnomialBookMessage =\n  | {\n      ack_id: '7187577067767395971'\n      price: 18970\n      quantity: 5\n      side: 'Ask' | 'Bid'\n      symbol: 'BUIH23'\n      timestamp: '2023-01-12T20:03:28.292532617Z'\n      type: 'level'\n    }\n  | {\n      ack_id: '7187577067767395784'\n      asks: BookLevel[]\n      bids: BookLevel[]\n      symbol: 'BUSH23'\n      timestamp: '2023-01-12T20:03:06.479197763Z'\n      type: 'book'\n    }\n"
  },
  {
    "path": "src/mappers/bitstamp.ts",
    "content": "import { lowerCaseSymbols } from '../handy.ts'\nimport { BookChange, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\n// https://www.bitstamp.net/websocket/v2/\n\nexport const bitstampTradesMapper: Mapper<'bitstamp', Trade> = {\n  canHandle(message: BitstampTrade | BitstampDiffOrderBook | BitstampDiffOrderBookSnapshot) {\n    if (message.data === undefined) {\n      return false\n    }\n\n    return message.channel.startsWith('live_trades') && message.event === 'trade'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = lowerCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'live_trades',\n        symbols\n      }\n    ]\n  },\n\n  *map(bitstampTradeResponse: BitstampTrade, localTimestamp: Date): IterableIterator<Trade> {\n    const bitstampTrade = bitstampTradeResponse.data\n    const symbol = bitstampTradeResponse.channel.slice(bitstampTradeResponse.channel.lastIndexOf('_') + 1)\n    const microtimestamp = Number(bitstampTrade.microtimestamp)\n    const timestamp = new Date(microtimestamp / 1000)\n    timestamp.μs = microtimestamp % 1000\n\n    yield {\n      type: 'trade',\n      symbol: symbol.toUpperCase(),\n      exchange: 'bitstamp',\n      id: String(bitstampTrade.id),\n      price: Number(bitstampTrade.price),\n      amount: Number(bitstampTrade.amount),\n      side: bitstampTrade.type === 0 ? 'buy' : 'sell',\n      timestamp,\n      localTimestamp\n    }\n  }\n}\n\nexport class BitstampBookChangeMapper implements Mapper<'bitstamp', BookChange> {\n  private readonly _symbolToDepthInfoMapping: { [key: string]: LocalDepthInfo } = {}\n\n  canHandle(message: BitstampTrade | BitstampDiffOrderBook | BitstampDiffOrderBookSnapshot) {\n    if (message.data === undefined) {\n      return false\n    }\n\n    return message.channel.startsWith('diff_order_book') && (message.event === 'data' || message.event === 'snapshot')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = lowerCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'diff_order_book',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BitstampDiffOrderBookSnapshot | BitstampDiffOrderBook, localTimestamp: Date): IterableIterator<BookChange> {\n    const symbol = message.channel.slice(message.channel.lastIndexOf('_') + 1).toUpperCase()\n    if (this._symbolToDepthInfoMapping[symbol] === undefined) {\n      this._symbolToDepthInfoMapping[symbol] = {\n        bufferedUpdates: []\n      }\n    }\n\n    const symbolDepthInfo = this._symbolToDepthInfoMapping[symbol]\n    const snapshotAlreadyProcessed = symbolDepthInfo.snapshotProcessed\n\n    // first check if received message is snapshot and process it as such if it is\n    if (message.event === 'snapshot') {\n      // produce snapshot book_change\n\n      let timestamp\n      if (message.data.microtimestamp !== undefined) {\n        const microtimestamp = Number(message.data.microtimestamp)\n        timestamp = new Date(microtimestamp / 1000)\n        timestamp.μs = microtimestamp % 1000\n      } else {\n        timestamp = new Date(Number(message.data.timestamp) * 1000)\n      }\n\n      yield {\n        type: 'book_change',\n        symbol,\n        exchange: 'bitstamp',\n        isSnapshot: true,\n        bids: message.data.bids !== undefined ? message.data.bids.map(this._mapBookLevel) : [],\n        asks: message.data.asks !== undefined ? message.data.asks.map(this._mapBookLevel) : [],\n        timestamp,\n        localTimestamp\n      }\n\n      //  mark given symbol depth info that has snapshot processed\n      symbolDepthInfo.lastUpdateTimestamp = Number(message.data.timestamp)\n      if (message.data.microtimestamp !== undefined) {\n        symbolDepthInfo.lastUpdateMicroTimestamp = Number(message.data.microtimestamp)\n      }\n      symbolDepthInfo.snapshotProcessed = true\n\n      // if there were any depth updates buffered, let's proccess those\n      for (const update of symbolDepthInfo.bufferedUpdates) {\n        const bookChange = this._mapBookDepthUpdate(update, localTimestamp, symbolDepthInfo, symbol)\n        if (bookChange !== undefined) {\n          yield bookChange\n        }\n      }\n      // remove all buffered updates\n      symbolDepthInfo.bufferedUpdates = []\n    } else if (snapshotAlreadyProcessed) {\n      // snapshot was already processed let's map the message as normal book_change\n      const bookChange = this._mapBookDepthUpdate(message, localTimestamp, symbolDepthInfo, symbol)\n      if (bookChange !== undefined) {\n        yield bookChange\n      }\n    } else {\n      // if snapshot hasn't been yet processed and we've got depthUpdate message, let's buffer it for later processing\n      symbolDepthInfo.bufferedUpdates.push(message)\n    }\n  }\n\n  private _mapBookDepthUpdate(\n    bitstampBookUpdate: BitstampDiffOrderBook,\n    localTimestamp: Date,\n    depthInfo: LocalDepthInfo,\n    symbol: string\n  ): BookChange | undefined {\n    const microtimestamp = Number(bitstampBookUpdate.data.microtimestamp)\n    // skip all book updates that preceed book snapshot\n    // REST API not always returned microtimestamps for initial order book snapshots\n    // fallback to timestamp\n    if (depthInfo.lastUpdateMicroTimestamp !== undefined && microtimestamp <= depthInfo.lastUpdateMicroTimestamp) {\n      return\n    } else if (Number(bitstampBookUpdate.data.timestamp) < depthInfo.lastUpdateTimestamp!) {\n      return\n    }\n\n    const timestamp = new Date(microtimestamp / 1000)\n    timestamp.μs = microtimestamp % 1000\n\n    return {\n      type: 'book_change',\n      symbol,\n      exchange: 'bitstamp',\n      isSnapshot: false,\n      bids: bitstampBookUpdate.data.bids !== undefined ? bitstampBookUpdate.data.bids.map(this._mapBookLevel) : [],\n      asks: bitstampBookUpdate.data.asks !== undefined ? bitstampBookUpdate.data.asks.map(this._mapBookLevel) : [],\n      timestamp: timestamp,\n      localTimestamp\n    }\n  }\n\n  private _mapBookLevel(level: BitstampBookLevel) {\n    const price = Number(level[0])\n    const amount = Number(level[1])\n    return { price, amount }\n  }\n}\n\ntype BitstampTrade = {\n  event: 'trade'\n  channel: string\n  data: {\n    microtimestamp: string\n    amount: number\n    price: number\n    type: number\n    id: number\n  }\n}\ntype BitstampBookLevel = [string, string]\n\ntype BitstampDiffOrderBook = {\n  data: {\n    microtimestamp: string\n    timestamp: string\n    bids: BitstampBookLevel[]\n    asks: BitstampBookLevel[]\n  }\n  event: 'data'\n  channel: string\n}\n\ntype BitstampDiffOrderBookSnapshot = {\n  event: 'snapshot'\n  channel: string\n  data: {\n    timestamp: string\n    microtimestamp?: string\n    bids: BitstampBookLevel[]\n    asks: BitstampBookLevel[]\n  }\n}\n\ntype LocalDepthInfo = {\n  bufferedUpdates: BitstampDiffOrderBook[]\n  snapshotProcessed?: boolean\n  lastUpdateTimestamp?: number\n  lastUpdateMicroTimestamp?: number\n}\n"
  },
  {
    "path": "src/mappers/blockchaincom.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\nexport class BlockchainComTradesMapper implements Mapper<'blockchain-com', Trade> {\n  canHandle(message: BlockchainComTradeMessage) {\n    return message.channel === 'trades' && message.event === 'updated'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BlockchainComTradeMessage, localTimestamp: Date): IterableIterator<Trade> {\n    yield {\n      type: 'trade',\n      symbol: message.symbol,\n      exchange: 'blockchain-com',\n      id: message.trade_id,\n      price: message.price,\n      amount: message.qty,\n      side: message.side === 'sell' ? 'sell' : 'buy',\n      timestamp: new Date(message.timestamp),\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nexport class BlockchainComBookChangeMapper implements Mapper<'blockchain-com', BookChange> {\n  canHandle(message: BlockchainComL2Message) {\n    return message.channel == 'l2' && (message.event === 'snapshot' || message.event === 'updated')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'l2',\n        symbols\n      }\n    ]\n  }\n\n  *map(message: BlockchainComL2Message, localTimestamp: Date): IterableIterator<BookChange> {\n    yield {\n      type: 'book_change',\n      symbol: message.symbol,\n      exchange: 'blockchain-com',\n      isSnapshot: message.event === 'snapshot',\n      bids: message.bids.map(this.mapBookLevel),\n      asks: message.asks.map(this.mapBookLevel),\n      timestamp: new Date(message.timestamp),\n      localTimestamp\n    }\n  }\n\n  protected mapBookLevel(level: { px: number; qty: number }) {\n    return { price: level.px, amount: level.qty }\n  }\n}\n\ntype BlockchainComTradeMessage = {\n  seqnum: 408403\n  event: 'updated'\n  channel: 'trades'\n  symbol: 'ETH-USDT'\n  timestamp: '2023-02-23T03:02:11.503718Z'\n  side: 'sell'\n  qty: 0.60192856\n  price: 1677.94\n  trade_id: '844558083396024'\n}\n\ntype BlockchainComL2Message =\n  | {\n      seqnum: 482554\n      event: 'updated'\n      channel: 'l2'\n      symbol: 'DOT-GBP'\n      bids: [{ num: 1; px: 6.08; qty: 137.77377093 }]\n      asks: []\n      timestamp: '2023-02-23T03:02:11.535015Z'\n    }\n  | {\n      seqnum: 269087\n      event: 'snapshot'\n      channel: 'l2'\n      symbol: 'BTC-USD'\n      bids: [{ num: 1; px: 1.8; qty: 7.45715496 }]\n      asks: [{ num: 1; px: 24187.8; qty: 0.04175659 }]\n      timestamp: '2023-02-23T00:00:00.127804Z'\n    }\n"
  },
  {
    "path": "src/mappers/bybit.ts",
    "content": "import { asNumberIfValid, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Exchange, Liquidation, OptionSummary, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\n// v5 https://bybit-exchange.github.io/docs/v5/ws/connect\n\nexport class BybitV5TradesMapper implements Mapper<'bybit' | 'bybit-spot' | 'bybit-options', Trade> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: BybitV5Trade) {\n    if (message.topic === undefined) {\n      return false\n    }\n\n    return message.topic.startsWith('publicTrade.')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'publicTrade',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitV5Trade, localTimestamp: Date): IterableIterator<Trade> {\n    for (const trade of message.data) {\n      yield {\n        type: 'trade',\n        symbol: trade.s,\n        exchange: this._exchange,\n        id: trade.i,\n        price: Number(trade.p),\n        amount: Number(trade.v),\n        side: trade.S == 'Buy' ? 'buy' : trade.S === 'Sell' ? 'sell' : 'unknown',\n        timestamp: new Date(trade.T),\n        localTimestamp\n      }\n    }\n  }\n}\n\nexport class BybitV5BookChangeMapper implements Mapper<'bybit' | 'bybit-spot' | 'bybit-options', BookChange> {\n  constructor(protected readonly _exchange: Exchange, private readonly _depth: number) {}\n\n  canHandle(message: BybitV5OrderBookMessage) {\n    if (message.topic === undefined) {\n      return false\n    }\n    return message.topic.startsWith(`orderbook.${this._depth}.`)\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: `orderbook.${this._depth}`,\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitV5OrderBookMessage, localTimestamp: Date) {\n    yield {\n      type: 'book_change',\n      symbol: message.data.s,\n      exchange: this._exchange,\n      isSnapshot: message.type === 'snapshot',\n      bids: message.data.b.map(this._mapBookLevel),\n      asks: message.data.a.map(this._mapBookLevel),\n      timestamp: new Date(message.ts),\n      localTimestamp\n    } as const\n  }\n\n  private _mapBookLevel(level: [string, string]) {\n    return { price: Number(level[0]), amount: Number(level[1]) }\n  }\n}\n\nexport class BybitV5BookTickerMapper implements Mapper<'bybit' | 'bybit-spot', BookTicker> {\n  private _snapshots: {\n    [key: string]: {\n      askAmount: number | undefined\n      askPrice: number | undefined\n      bidPrice: number | undefined\n      bidAmount: number | undefined\n    }\n  } = {}\n\n  constructor(protected readonly _exchange: Exchange) {}\n\n  canHandle(message: BybitV5OrderBookMessage) {\n    if (message.topic === undefined) {\n      return false\n    }\n    return message.topic.startsWith(`orderbook.1.`)\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'orderbook.1',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitV5OrderBookMessage, localTimestamp: Date) {\n    const bestAsk = message.data.a.filter((ask) => ask[1] != '0')[0]\n    const bestBid = message.data.b.filter((bid) => bid[1] != '0')[0]\n\n    if (message.type === 'snapshot') {\n      this._snapshots[message.data.s] = {\n        askAmount: bestAsk !== undefined ? Number(bestAsk[1]) : undefined,\n        askPrice: bestAsk !== undefined ? Number(bestAsk[0]) : undefined,\n        bidPrice: bestBid !== undefined ? Number(bestBid[0]) : undefined,\n        bidAmount: bestBid !== undefined ? Number(bestBid[1]) : undefined\n      }\n    }\n\n    const matchingSnapshot = this._snapshots[message.data.s]\n    if (!matchingSnapshot) {\n      return\n    }\n\n    const bookTicker: BookTicker = {\n      type: 'book_ticker',\n      symbol: message.data.s,\n      exchange: this._exchange,\n      askAmount: bestAsk !== undefined ? Number(bestAsk[1]) : matchingSnapshot.askAmount,\n      askPrice: bestAsk !== undefined ? Number(bestAsk[0]) : matchingSnapshot.askPrice,\n      bidPrice: bestBid !== undefined ? Number(bestBid[0]) : matchingSnapshot.bidPrice,\n      bidAmount: bestBid !== undefined ? Number(bestBid[1]) : matchingSnapshot.bidAmount,\n      timestamp: new Date(message.ts),\n      localTimestamp: localTimestamp\n    }\n\n    this._snapshots[message.data.s] = {\n      askAmount: bookTicker.askAmount,\n      askPrice: bookTicker.askPrice,\n      bidPrice: bookTicker.bidPrice,\n      bidAmount: bookTicker.bidAmount\n    }\n\n    yield bookTicker\n  }\n}\n\nexport class BybitV5DerivativeTickerMapper implements Mapper<'bybit', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: BybitV5DerivTickerMessage) {\n    if (message.topic === undefined) {\n      return false\n    }\n\n    return message.topic.startsWith('tickers.')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'tickers',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitV5DerivTickerMessage, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    const instrumentInfo = message.data\n\n    const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(instrumentInfo.symbol, 'bybit')\n\n    if (instrumentInfo.fundingRate !== undefined && instrumentInfo.fundingRate !== '') {\n      pendingTickerInfo.updateFundingRate(Number(instrumentInfo.fundingRate))\n    }\n\n    if (instrumentInfo.nextFundingTime !== undefined && instrumentInfo.nextFundingTime !== '') {\n      pendingTickerInfo.updateFundingTimestamp(new Date(Number(instrumentInfo.nextFundingTime)))\n    }\n\n    if (instrumentInfo.indexPrice !== undefined && instrumentInfo.indexPrice !== '') {\n      pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.indexPrice))\n    }\n\n    if (instrumentInfo.markPrice !== undefined && instrumentInfo.markPrice !== '') {\n      pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.markPrice))\n    }\n\n    if (instrumentInfo.openInterest !== undefined && instrumentInfo.openInterest !== '') {\n      pendingTickerInfo.updateOpenInterest(Number(instrumentInfo.openInterest))\n    }\n\n    if (instrumentInfo.lastPrice !== undefined && instrumentInfo.lastPrice !== '') {\n      pendingTickerInfo.updateLastPrice(Number(instrumentInfo.lastPrice))\n    }\n\n    pendingTickerInfo.updateTimestamp(new Date(message.ts))\n\n    if (pendingTickerInfo.hasChanged()) {\n      yield pendingTickerInfo.getSnapshot(localTimestamp)\n    }\n  }\n}\n\nexport class BybitV5LiquidationsMapper implements Mapper<'bybit', Liquidation> {\n  constructor(private readonly _exchange: Exchange) {}\n  canHandle(message: BybitV5LiquidationMessage) {\n    if (message.topic === undefined) {\n      return false\n    }\n\n    return message.topic.startsWith('liquidation.')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'liquidation',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitV5LiquidationMessage, localTimestamp: Date): IterableIterator<Liquidation> {\n    // from bybit telegram: When \"side\":\"Buy\", a long position was liquidated. Will fix the docs.\n\n    const bybitLiquidation = message.data\n    const liquidation: Liquidation = {\n      type: 'liquidation',\n      symbol: bybitLiquidation.symbol,\n      exchange: this._exchange,\n      id: undefined,\n      price: Number(bybitLiquidation.price),\n      amount: Number(bybitLiquidation.size),\n      side: bybitLiquidation.side == 'Buy' ? 'sell' : 'buy',\n      timestamp: new Date(message.ts),\n      localTimestamp\n    }\n\n    yield liquidation\n  }\n}\n\nexport class BybitV5AllLiquidationsMapper implements Mapper<'bybit', Liquidation> {\n  constructor(private readonly _exchange: Exchange) {}\n  canHandle(message: BybitV5AllLiquidationMessage) {\n    if (message.topic === undefined) {\n      return false\n    }\n\n    return message.topic.startsWith('allLiquidation.')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'allLiquidation',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitV5AllLiquidationMessage, localTimestamp: Date): IterableIterator<Liquidation> {\n    for (const bybitLiquidation of message.data) {\n      const liquidation: Liquidation = {\n        type: 'liquidation',\n        symbol: bybitLiquidation.s,\n        exchange: this._exchange,\n        id: undefined,\n        price: Number(bybitLiquidation.p),\n        amount: Number(bybitLiquidation.v),\n        //  from bybit docs  Position side. Buy,Sell. When you receive a Buy update, this means that a long position has been liquidated\n        side: bybitLiquidation.S == 'Buy' ? 'sell' : 'buy',\n        timestamp: new Date(bybitLiquidation.T),\n        localTimestamp\n      }\n\n      yield liquidation\n    }\n  }\n}\nexport class BybitV5OptionSummaryMapper implements Mapper<'bybit-options', OptionSummary> {\n  canHandle(message: BybitV5OptionTickerMessage) {\n    if (message.topic === undefined) {\n      return false\n    }\n\n    return message.topic.startsWith('tickers.')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'tickers',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitV5OptionTickerMessage, localTimestamp: Date) {\n    const symbolParts = message.data.symbol.split('-')\n\n    const isPut = symbolParts[3] === 'P'\n\n    const strikePrice = Number(symbolParts[2])\n\n    const expirationDate = new Date(symbolParts[1] + 'Z')\n    expirationDate.setUTCHours(8)\n\n    const optionSummary: OptionSummary = {\n      type: 'option_summary',\n      symbol: message.data.symbol,\n      exchange: 'bybit-options',\n      optionType: isPut ? 'put' : 'call',\n      strikePrice,\n      expirationDate,\n\n      bestBidPrice: asNumberIfValid(message.data.bidPrice),\n      bestBidAmount: asNumberIfValid(message.data.bidSize),\n      bestBidIV: asNumberIfValid(message.data.bidIv),\n\n      bestAskPrice: asNumberIfValid(message.data.askPrice),\n      bestAskAmount: asNumberIfValid(message.data.askSize),\n      bestAskIV: asNumberIfValid(message.data.askIv),\n\n      lastPrice: asNumberIfValid(message.data.lastPrice),\n      openInterest: asNumberIfValid(message.data.openInterest),\n\n      markPrice: asNumberIfValid(message.data.markPrice),\n      markIV: asNumberIfValid(message.data.markPriceIv),\n\n      delta: asNumberIfValid(message.data.delta),\n      gamma: asNumberIfValid(message.data.gamma),\n      vega: asNumberIfValid(message.data.vega),\n      theta: asNumberIfValid(message.data.theta),\n      rho: undefined,\n\n      underlyingPrice: asNumberIfValid(message.data.underlyingPrice),\n      underlyingIndex: '',\n      timestamp: new Date(message.ts),\n      localTimestamp: localTimestamp\n    }\n\n    yield optionSummary\n  }\n}\n\n// https://github.com/bybit-exchange/bybit-official-api-docs/blob/master/en/websocket.md\n\nexport class BybitTradesMapper implements Mapper<'bybit', Trade> {\n  constructor(private readonly _exchange: Exchange) {}\n  canHandle(message: BybitDataMessage) {\n    if (message.topic === undefined) {\n      return false\n    }\n\n    return message.topic.startsWith('trade.')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitTradeDataMessage, localTimestamp: Date): IterableIterator<Trade> {\n    for (const trade of message.data) {\n      const timestamp =\n        'trade_time_ms' in trade\n          ? new Date(Number(trade.trade_time_ms))\n          : 'tradeTimeMs' in trade\n          ? new Date(Number(trade.tradeTimeMs))\n          : new Date(trade.timestamp)\n\n      yield {\n        type: 'trade',\n        symbol: trade.symbol,\n        exchange: this._exchange,\n        id: 'trade_id' in trade ? trade.trade_id : trade.tradeId,\n        price: Number(trade.price),\n        amount: trade.size,\n        side: trade.side == 'Buy' ? 'buy' : trade.side === 'Sell' ? 'sell' : 'unknown',\n        timestamp,\n        localTimestamp\n      }\n    }\n  }\n}\n\nexport class BybitBookChangeMapper implements Mapper<'bybit', BookChange> {\n  constructor(protected readonly _exchange: Exchange, private readonly _canUseBook200Channel: boolean) {}\n\n  canHandle(message: BybitDataMessage) {\n    if (message.topic === undefined) {\n      return false\n    }\n\n    if (this._canUseBook200Channel) {\n      return message.topic.startsWith('orderBook_200.')\n    } else {\n      return message.topic.startsWith('orderBookL2_25.')\n    }\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    if (this._canUseBook200Channel) {\n      return [\n        {\n          channel: 'orderBook_200',\n          symbols\n        } as const\n      ]\n    }\n\n    return [\n      {\n        channel: 'orderBookL2_25',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitBookSnapshotDataMessage | BybitBookSnapshotUpdateMessage, localTimestamp: Date) {\n    const topicArray = message.topic.split('.')\n    const symbol = topicArray[topicArray.length - 1]\n    const data =\n      message.type === 'snapshot'\n        ? 'order_book' in message.data\n          ? message.data.order_book\n          : 'orderBook' in message.data\n          ? message.data.orderBook\n          : message.data\n        : [...message.data.delete, ...message.data.update, ...message.data.insert]\n\n    const timestampBybit = message.timestamp_e6 !== undefined ? Number(message.timestamp_e6) : Number(message.timestampE6)\n    const timestamp = new Date(timestampBybit / 1000)\n    timestamp.μs = timestampBybit % 1000\n\n    yield {\n      type: 'book_change',\n      symbol,\n      exchange: this._exchange,\n      isSnapshot: message.type === 'snapshot',\n      bids: data.filter((d) => d.side === 'Buy').map(this._mapBookLevel),\n      asks: data.filter((d) => d.side === 'Sell').map(this._mapBookLevel),\n      timestamp,\n      localTimestamp\n    } as const\n  }\n\n  private _mapBookLevel(level: BybitBookLevel) {\n    return { price: Number(level.price), amount: level.size !== undefined ? level.size : 0 }\n  }\n}\n\nexport class BybitDerivativeTickerMapper implements Mapper<'bybit', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: BybitDataMessage) {\n    if (message.topic === undefined) {\n      return false\n    }\n\n    return message.topic.startsWith('instrument_info.')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'instrument_info',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitInstrumentDataMessage, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    const instrumentInfo = 'symbol' in message.data ? message.data : message.data.update[0]\n\n    const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(instrumentInfo.symbol, 'bybit')\n    const fundingRate = 'funding_rate_e6' in instrumentInfo ? instrumentInfo.funding_rate_e6 : instrumentInfo.fundingRateE6\n\n    pendingTickerInfo.updateFundingRate(fundingRate !== undefined ? Number(fundingRate) / 1000000 : undefined)\n\n    const predictedFundingRate =\n      'predicted_funding_rate_e6' in instrumentInfo ? instrumentInfo.predicted_funding_rate_e6 : instrumentInfo.predictedFundingRateE6\n\n    pendingTickerInfo.updatePredictedFundingRate(predictedFundingRate !== undefined ? Number(predictedFundingRate) / 1000000 : undefined)\n\n    const nextFundingTime = 'next_funding_time' in instrumentInfo ? instrumentInfo.next_funding_time : instrumentInfo.nextFundingTime\n    pendingTickerInfo.updateFundingTimestamp(\n      nextFundingTime !== undefined && new Date(nextFundingTime).valueOf() > 0 ? new Date(nextFundingTime) : undefined\n    )\n\n    if (instrumentInfo.index_price !== undefined) {\n      pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.index_price))\n    } else if (instrumentInfo.indexPrice !== undefined) {\n      pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.indexPrice))\n    } else if (instrumentInfo.index_price_e4 !== undefined) {\n      pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.index_price_e4) / 10000)\n    } else if (instrumentInfo.indexPriceE4 !== undefined) {\n      pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.indexPriceE4) / 10000)\n    }\n\n    if (instrumentInfo.mark_price !== undefined) {\n      pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.mark_price))\n    } else if (instrumentInfo.markPrice !== undefined) {\n      pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.markPrice))\n    } else if (instrumentInfo.mark_price_e4 !== undefined) {\n      pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.mark_price_e4) / 10000)\n    } else if (instrumentInfo.markPriceE4 !== undefined) {\n      pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.markPriceE4) / 10000)\n    }\n\n    if (instrumentInfo.open_interest !== undefined) {\n      pendingTickerInfo.updateOpenInterest(instrumentInfo.open_interest)\n    } else if (instrumentInfo.openInterestE8 !== undefined) {\n      pendingTickerInfo.updateOpenInterest(Number(instrumentInfo.openInterestE8) / 100000000)\n    } else if (instrumentInfo.open_interest_e8 !== undefined) {\n      pendingTickerInfo.updateOpenInterest(instrumentInfo.open_interest_e8 / 100000000)\n    }\n\n    if (instrumentInfo.last_price !== undefined) {\n      pendingTickerInfo.updateLastPrice(Number(instrumentInfo.last_price))\n    } else if (instrumentInfo.lastPrice !== undefined) {\n      pendingTickerInfo.updateLastPrice(Number(instrumentInfo.lastPrice))\n    } else if (instrumentInfo.last_price_e4 !== undefined) {\n      pendingTickerInfo.updateLastPrice(Number(instrumentInfo.last_price_e4) / 10000)\n    } else if (instrumentInfo.lastPriceE4) {\n      pendingTickerInfo.updateLastPrice(Number(instrumentInfo.lastPriceE4) / 10000)\n    }\n\n    if (message.timestamp_e6 !== undefined) {\n      const timestampBybit = Number(message.timestamp_e6)\n      const timestamp = new Date(timestampBybit / 1000)\n      timestamp.μs = timestampBybit % 1000\n      pendingTickerInfo.updateTimestamp(timestamp)\n    } else if (message.timestampE6 !== undefined) {\n      const timestampBybit = Number(message.timestampE6)\n      const timestamp = new Date(timestampBybit / 1000)\n      timestamp.μs = timestampBybit % 1000\n      pendingTickerInfo.updateTimestamp(timestamp)\n    } else {\n      pendingTickerInfo.updateTimestamp(new Date(instrumentInfo.updated_at))\n    }\n\n    if (pendingTickerInfo.hasChanged()) {\n      yield pendingTickerInfo.getSnapshot(localTimestamp)\n    }\n  }\n}\n\nexport class BybitLiquidationsMapper implements Mapper<'bybit', Liquidation> {\n  constructor(private readonly _exchange: Exchange) {}\n  canHandle(message: BybitDataMessage) {\n    if (message.topic === undefined) {\n      return false\n    }\n\n    return message.topic.startsWith('liquidation.')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'liquidation',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitLiquidationMessage | BybitLiquidationNativeMessage, localTimestamp: Date): IterableIterator<Liquidation> {\n    // from bybit telegram: When \"side\":\"Buy\", a long position was liquidated. Will fix the docs.\n    if (message.generated) {\n      for (const bybitLiquidation of message.data) {\n        const liquidation: Liquidation = {\n          type: 'liquidation',\n          symbol: bybitLiquidation.symbol,\n          exchange: this._exchange,\n          id: String(bybitLiquidation.id),\n          price: Number(bybitLiquidation.price),\n          amount: bybitLiquidation.qty,\n          side: bybitLiquidation.side == 'Buy' ? 'sell' : 'buy',\n          timestamp: new Date(bybitLiquidation.time),\n          localTimestamp\n        }\n\n        yield liquidation\n      }\n    } else {\n      const bybitLiquidation = message.data\n      const liquidation: Liquidation = {\n        type: 'liquidation',\n        symbol: bybitLiquidation.symbol,\n        exchange: this._exchange,\n        id: undefined,\n        price: Number(bybitLiquidation.price),\n        amount: Number(bybitLiquidation.qty),\n        side: bybitLiquidation.side == 'Buy' ? 'sell' : 'buy',\n        timestamp: new Date(bybitLiquidation.time),\n        localTimestamp\n      }\n\n      yield liquidation\n    }\n  }\n}\n\ntype BybitV5Trade =\n  | {\n      topic: 'publicTrade.LTCUSDT'\n      type: 'snapshot'\n      ts: 1680688979985\n      data: [\n        {\n          T: 1680688979983\n          s: 'LTCUSDT'\n          S: 'Buy'\n          v: '0.4'\n          p: '94.53'\n          L: 'ZeroMinusTick'\n          i: '4c7b6bdc-b4a3-5716-9c7b-bbe01dc7072f'\n          BT: false\n        }\n      ]\n    }\n  | {\n      topic: 'publicTrade.BTCUSDC'\n      ts: 1680688980000\n      type: 'snapshot'\n      data: [{ i: '2240000000041223438'; T: 1680688979998; p: '28528.98'; v: '0.00433'; S: 'Buy'; s: 'BTCUSDC'; BT: false }]\n    }\n  | {\n      id: 'publicTrade.BTC-3414637898-1680652922102'\n      topic: 'publicTrade.BTC'\n      ts: 1680652922102\n      data: [\n        { p: '985'; v: '0.01'; i: '0404c393-8419-5bac-95c3-5fea28404754'; T: 1680652922081; BT: false; s: 'BTC-28APR23-29500-C'; S: 'Sell' }\n      ]\n      type: 'snapshot'\n    }\n\ntype BybitV5OrderBookMessage = {\n  topic: 'orderbook.50.LTCUSD'\n  type: 'snapshot' | 'delta'\n  ts: 1680673822478\n  data: {\n    s: string\n    b: [string, string][]\n    a: [string, string][]\n    u: 11802648\n    seq: 941860281\n  }\n}\n\ntype BybitV5DerivTickerMessage = {\n  topic: 'tickers.BTCUSD'\n  type: 'snapshot' | 'delta'\n  data: {\n    symbol: string\n    lastPrice?: string\n\n    markPrice?: string\n    indexPrice?: string\n    openInterest?: string\n    openInterestValue?: string\n    nextFundingTime?: string\n    fundingRate?: string\n    bid1Price?: string\n    bid1Size?: string\n    ask1Price?: string\n    ask1Size?: string\n  }\n  cs: 20856433578\n  ts: 1680673822577\n}\n\ntype BybitV5LiquidationMessage = {\n  data: {\n    price: '0.03803'\n    side: 'Buy'\n    size: '1637'\n    symbol: 'GALAUSDT'\n    updatedTime: 1673251091822\n  }\n  topic: 'liquidation.GALAUSDT'\n  ts: 1673251091822\n  type: 'snapshot'\n}\n\ntype BybitV5AllLiquidationMessage = {\n  topic: 'allLiquidation.KAITOUSDT'\n  type: 'snapshot'\n  ts: 1740480190078\n  data: [{ T: 1740480189987; s: 'KAITOUSDT'; S: 'Buy'; v: '43'; p: '1.7531' }]\n}\n\ntype BybitV5OptionTickerMessage = {\n  id: 'tickers.ETH-30JUN23-200-P-3164908233-1680652859919'\n  topic: 'tickers.ETH-30JUN23-200-P'\n  ts: 1680652859919\n  data: {\n    symbol: 'ETH-30JUN23-200-P'\n    bidPrice: '0.1'\n    bidSize: '5'\n    bidIv: '1.4744'\n    askPrice: '0'\n    askSize: '0'\n    askIv: '0'\n    lastPrice: '1'\n    highPrice24h: '0'\n    lowPrice24h: '0'\n    markPrice: '0.2548522'\n    indexPrice: '1871.27'\n    markPriceIv: '1.5991'\n    underlyingPrice: '1886.16'\n    openInterest: '231.5'\n    turnover24h: '0'\n    volume24h: '0'\n    totalVolume: '232'\n    totalTurnover: '362305'\n    delta: '-0.00052953'\n    gamma: '0.00000128'\n    vega: '0.01719155'\n    theta: '-0.0159208'\n    predictedDeliveryPrice: '0'\n    change24h: '0'\n  }\n  type: 'snapshot'\n}\n\ntype BybitDataMessage = {\n  topic: string\n}\n\ntype BybitTradeDataMessage =\n  | (BybitDataMessage & {\n      data: {\n        timestamp: string\n        trade_time_ms?: number | string\n        symbol: string\n        side: 'Buy' | 'Sell'\n        size: number\n        price: number | string\n        trade_id: string\n      }[]\n    })\n  | {\n      topic: 'trade.BTCPERP'\n      data: [\n        {\n          symbol: 'BTCPERP'\n          tickDirection: 'PlusTick'\n          price: '21213.00'\n          size: 0.007\n          timestamp: '2022-06-21T09:36:58.000Z'\n          tradeTimeMs: '1655804218524'\n          side: 'Sell'\n          tradeId: '7aad7741-f763-5f78-bf43-c38b29a40f67'\n        }\n      ]\n    }\n\ntype BybitBookLevel = {\n  price: string\n  side: 'Buy' | 'Sell'\n  size?: number\n}\n\ntype BybitBookSnapshotDataMessage = BybitDataMessage & {\n  type: 'snapshot'\n  data: BybitBookLevel[] | { order_book: BybitBookLevel[] } | { orderBook: BybitBookLevel[] }\n  timestamp_e6: number | string\n  timestampE6: number | string\n}\n\ntype BybitBookSnapshotUpdateMessage = BybitDataMessage & {\n  type: 'delta'\n  data: {\n    delete: BybitBookLevel[]\n    update: BybitBookLevel[]\n    insert: BybitBookLevel[]\n  }\n  timestamp_e6: number | string\n  timestampE6: number | string\n}\n\ntype BybitInstrumentUpdate = {\n  symbol: string\n  mark_price_e4?: number\n  mark_price?: string\n  index_price_e4?: string\n  index_price?: string\n  open_interest?: number\n  open_interest_e8?: number\n  funding_rate_e6?: string\n  predicted_funding_rate_e6?: number\n  next_funding_time?: string\n  last_price_e4?: string\n  last_price?: string\n  updated_at: string\n  lastPriceE4: '212130000'\n  lastPrice: '21213.00'\n  lastTickDirection: 'PlusTick'\n  prevPrice24hE4: '207180000'\n  prevPrice24h: '20718.00'\n  price24hPcntE6: '23892'\n  highPrice24hE4: '214085000'\n  highPrice24h: '21408.50'\n  lowPrice24hE4: '198005000'\n  lowPrice24h: '19800.50'\n  prevPrice1hE4: '213315000'\n  prevPrice1h: '21331.50'\n  price1hPcntE6: '-5555'\n  markPriceE4: '212094700'\n  markPrice: '21209.47'\n  indexPriceE4: '212247200'\n  indexPrice: '21224.72'\n  openInterestE8: '18317600000'\n  totalTurnoverE8: '94568739311650000'\n  turnover24hE8: '1375880657550000'\n  totalVolumeE8: '2734659400000'\n  volume24hE8: '66536799999'\n  fundingRateE6: '-900'\n  predictedFundingRateE6: '-614'\n  crossSeq: '385207672'\n  createdAt: '1970-01-01T00:00:00.000Z'\n  updatedAt: '2022-06-21T09:36:58.000Z'\n  nextFundingTime: '2022-06-21T16:00:00Z'\n  countDownHour: '7'\n  bid1PriceE4: '212130000'\n  bid1Price: '21213.00'\n  ask1PriceE4: '212135000'\n  ask1Price: '21213.50'\n}\n\ntype BybitInstrumentDataMessage =\n  | BybitDataMessage & {\n      timestamp_e6: string\n      timestampE6: string\n      data:\n        | BybitInstrumentUpdate\n        | {\n            update: [BybitInstrumentUpdate]\n          }\n    }\n\ntype BybitLiquidationMessage = BybitDataMessage & {\n  generated: true\n  data: {\n    id: number\n    qty: number\n    side: 'Sell' | 'Buy'\n    time: number\n    symbol: string\n    price: number\n  }[]\n}\n\ntype BybitLiquidationNativeMessage = BybitDataMessage & {\n  generated: undefined\n  data: { symbol: string; side: 'Sell' | 'Buy'; price: string; qty: string; time: number }\n}\n"
  },
  {
    "path": "src/mappers/bybitspot.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, Exchange, BookTicker, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\nexport class BybitSpotTradesMapper implements Mapper<'bybit-spot', Trade> {\n  constructor(private readonly _exchange: Exchange) {}\n  canHandle(message: BybitSpotTradeMessage) {\n    return message.topic === 'trade' && message.data !== undefined\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitSpotTradeMessage, localTimestamp: Date): IterableIterator<Trade> {\n    const bybitTrade = message.data\n    yield {\n      type: 'trade',\n      symbol: message.params.symbol,\n      exchange: this._exchange,\n      id: bybitTrade.v,\n      price: Number(bybitTrade.p),\n      amount: Number(bybitTrade.q),\n      side: bybitTrade.m === true ? 'buy' : 'sell',\n      timestamp: new Date(bybitTrade.t),\n      localTimestamp\n    }\n  }\n}\n\nexport class BybitSpotBookChangeMapper implements Mapper<'bybit-spot', BookChange> {\n  constructor(protected readonly _exchange: Exchange) {}\n\n  canHandle(message: BybitSpotDepthMessage) {\n    return message.topic === 'depth' && message.data !== undefined\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'depth',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitSpotDepthMessage, localTimestamp: Date) {\n    yield {\n      type: 'book_change',\n      symbol: message.params.symbol,\n      exchange: this._exchange,\n      isSnapshot: true,\n      bids: message.data.b.map(this._mapBookLevel),\n      asks: message.data.a.map(this._mapBookLevel),\n      timestamp: new Date(message.data.t),\n      localTimestamp\n    } as const\n  }\n\n  private _mapBookLevel(level: [string, string]) {\n    return { price: Number(level[0]), amount: Number(level[1]) }\n  }\n}\n\nexport class BybitSpotBookTickerMapper implements Mapper<'bybit-spot', BookTicker> {\n  constructor(protected readonly _exchange: Exchange) {}\n\n  canHandle(message: BybitSpotBookTickerMessage) {\n    return message.topic === 'bookTicker' && message.data !== undefined\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'bookTicker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: BybitSpotBookTickerMessage, localTimestamp: Date) {\n    const bookTicker: BookTicker = {\n      type: 'book_ticker',\n      symbol: message.params.symbol,\n      exchange: this._exchange,\n      askAmount: message.data.askQty !== undefined ? Number(message.data.askQty) : undefined,\n      askPrice: message.data.askPrice !== undefined ? Number(message.data.askPrice) : undefined,\n      bidPrice: message.data.bidPrice !== undefined ? Number(message.data.bidPrice) : undefined,\n      bidAmount: message.data.bidQty !== undefined ? Number(message.data.bidQty) : undefined,\n      timestamp: new Date(message.data.time),\n      localTimestamp: localTimestamp\n    }\n\n    yield bookTicker\n  }\n}\n\ntype BybitSpotBookTickerMessage = {\n  topic: 'bookTicker'\n  params: { symbol: 'BATUSDT'; binary: 'false'; symbolName: 'BATUSDT' }\n  data: { symbol: 'BATUSDT'; bidPrice: '0.3985'; bidQty: '1919.99'; askPrice: '0.3997'; askQty: '3747.68'; time: 1659311999973 }\n}\n\ntype BybitSpotTradeMessage = {\n  topic: 'trade'\n  params: { symbol: 'XRP3SUSDT'; binary: 'false'; symbolName: 'XRP3SUSDT' }\n  data: { v: '2220000000006443832'; t: 1659312000387; p: '6.3957'; q: '3.5962'; m: boolean }\n}\n\ntype BybitSpotDepthMessage = {\n  topic: 'depth'\n  params: { symbol: 'RENUSDT'; binary: 'false'; symbolName: 'RENUSDT' }\n  data: {\n    s: 'RENUSDT'\n    t: 1659312000390\n    v: '170667316_8244371_5'\n    b: [['0.14348', '3249.63']]\n    a: [['0.14457', '95.23']]\n  }\n}\n"
  },
  {
    "path": "src/mappers/coinbase.ts",
    "content": "import { parseμs, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookPriceLevel, BookTicker, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\n// https://docs.pro.coinbase.com/#websocket-feed\n\nexport const coinbaseTradesMapper: Mapper<'coinbase', Trade> = {\n  canHandle(message: CoinbaseTrade | CoinbaseLevel2Snapshot | CoinbaseLevel2Update) {\n    return message.type === 'match'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'match',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: CoinbaseTrade, localTimestamp: Date): IterableIterator<Trade> {\n    const timestamp = new Date(message.time)\n    timestamp.μs = parseμs(message.time)\n\n    yield {\n      type: 'trade',\n      symbol: message.product_id,\n      exchange: 'coinbase',\n      id: String(message.trade_id),\n      price: Number(message.price),\n      amount: Number(message.size),\n      side: message.side === 'sell' ? 'buy' : 'sell', // coinbase side field indicates the maker order side\n      timestamp,\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nconst mapUpdateBookLevel = (level: CoinbaseUpdateBookLevel) => {\n  const price = Number(level[1])\n  const amount = Number(level[2])\n\n  return { price, amount }\n}\n\nconst mapSnapshotBookLevel = (level: CoinbaseSnapshotBookLevel) => {\n  const price = Number(level[0])\n  const amount = Number(level[1])\n\n  return { price, amount }\n}\n\nconst validAmountsOnly = (level: BookPriceLevel) => {\n  if (Number.isNaN(level.amount)) {\n    return false\n  }\n  if (level.amount < 0) {\n    return false\n  }\n\n  return true\n}\n\nexport class CoinbaseBookChangMapper implements Mapper<'coinbase', BookChange> {\n  private readonly _symbolLastTimestampMap = new Map<string, Date>()\n\n  canHandle(message: CoinbaseTrade | CoinbaseLevel2Snapshot | CoinbaseLevel2Update) {\n    return message.type === 'l2update' || message.type === 'snapshot'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'snapshot',\n        symbols\n      } as const,\n      {\n        channel: 'l2update',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: CoinbaseLevel2Update | CoinbaseLevel2Snapshot, localTimestamp: Date): IterableIterator<BookChange> {\n    if (message.type === 'snapshot') {\n      let timestamp\n      if (message.time !== undefined) {\n        timestamp = new Date(message.time)\n        if (timestamp.valueOf() < 0) {\n          timestamp = localTimestamp\n        } else {\n          timestamp.μs = parseμs(message.time)\n        }\n      } else {\n        timestamp = localTimestamp\n      }\n\n      yield {\n        type: 'book_change',\n        symbol: message.product_id,\n        exchange: 'coinbase',\n        isSnapshot: true,\n        bids: message.bids.map(mapSnapshotBookLevel).filter(validAmountsOnly),\n        asks: message.asks.map(mapSnapshotBookLevel).filter(validAmountsOnly),\n        timestamp,\n        localTimestamp\n      }\n    } else {\n      // in very rare cases, Coinbase was returning timestamps that aren't valid, like: \"time\":\"0001-01-01T00:00:00.000000Z\"\n      // but l2update message was still valid and we need to process it, in such case use timestamp of previous message\n      let timestamp = new Date(message.time)\n      if (timestamp.valueOf() < 0) {\n        let previousValidTimestamp = this._symbolLastTimestampMap.get(message.product_id)\n        if (previousValidTimestamp === undefined) {\n          return\n        }\n        timestamp = previousValidTimestamp\n      } else {\n        timestamp.μs = parseμs(message.time)\n        this._symbolLastTimestampMap.set(message.product_id, timestamp)\n      }\n\n      yield {\n        type: 'book_change',\n        symbol: message.product_id,\n        exchange: 'coinbase',\n        isSnapshot: false,\n        bids: message.changes.filter((c) => c[0] === 'buy').map(mapUpdateBookLevel),\n        asks: message.changes.filter((c) => c[0] === 'sell').map(mapUpdateBookLevel),\n        timestamp,\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nexport const coinbaseBookTickerMapper: Mapper<'coinbase', BookTicker> = {\n  canHandle(message: CoinbaseTicker) {\n    return message.type === 'ticker'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: CoinbaseTicker, localTimestamp: Date): IterableIterator<BookTicker> {\n    let timestamp = new Date(message.time)\n\n    if (message.time === undefined || timestamp.valueOf() < 0) {\n      timestamp = localTimestamp\n    } else {\n      timestamp.μs = parseμs(message.time)\n    }\n\n    yield {\n      type: 'book_ticker',\n      symbol: message.product_id,\n      exchange: 'coinbase',\n      askAmount: message.best_ask_size !== undefined ? Number(message.best_ask_size) : undefined,\n      askPrice: message.best_ask !== undefined ? Number(message.best_ask) : undefined,\n      bidPrice: message.best_bid !== undefined ? Number(message.best_bid) : undefined,\n      bidAmount: message.best_bid_size !== undefined ? Number(message.best_bid_size) : undefined,\n      timestamp,\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\ntype CoinbaseTrade = {\n  type: 'match'\n  trade_id: number\n  time: string\n  product_id: string\n  size: string\n  price: string\n  side: 'sell' | 'buy'\n}\n\ntype CoinbaseSnapshotBookLevel = [string, string]\n\ntype CoinbaseLevel2Snapshot = {\n  type: 'snapshot'\n  product_id: string\n  bids: CoinbaseSnapshotBookLevel[]\n  asks: CoinbaseSnapshotBookLevel[]\n  time?: string\n}\n\ntype CoinbaseUpdateBookLevel = ['buy' | 'sell', string, string]\n\ntype CoinbaseLevel2Update = {\n  type: 'l2update'\n  product_id: string\n  time: string\n  changes: CoinbaseUpdateBookLevel[]\n}\n\ntype CoinbaseTicker =\n  | {\n      type: 'ticker'\n      sequence: 2349290585\n      product_id: 'CGLD-USD'\n      price: '5.415'\n      best_bid: '5.4149'\n      best_ask: '5.4150'\n      time: '2021-10-13T07:05:00.028961Z'\n      best_bid_size: undefined\n      best_ask_size: undefined\n    }\n  | {\n      type: 'ticker'\n      sequence: 50978628538\n      product_id: 'BTC-USD'\n      price: '17165.16'\n      open_24h: '16437.94'\n      volume_24h: '42492.05081975'\n      low_24h: '16423.37'\n      high_24h: '17259.37'\n      volume_30d: '1093827.95195495'\n      best_bid: '17165.15'\n      best_bid_size: '0.61540890'\n      best_ask: '17167.76'\n      best_ask_size: '0.18528568'\n      side: 'sell'\n      time: '2022-12-01T00:00:00.122581Z'\n      trade_id: 463751434\n      last_size: '0.05'\n    }\n"
  },
  {
    "path": "src/mappers/coinbaseinternational.ts",
    "content": "import { addMinutes, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookPriceLevel, BookTicker, DerivativeTicker, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\nexport const coinbaseInternationalTradesMapper: Mapper<'coinbase-international', Trade> = {\n  canHandle(message: CoinbaseInternationalTradeMessage) {\n    return message.channel === 'MATCH' && message.type === 'UPDATE'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'MATCH',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: CoinbaseInternationalTradeMessage, localTimestamp: Date): IterableIterator<Trade> {\n    yield {\n      type: 'trade',\n      symbol: message.product_id,\n      exchange: 'coinbase-international',\n      id: message.match_id,\n      price: Number(message.trade_price),\n      amount: Number(message.trade_qty),\n      side: message.aggressor_side === 'SELL' ? 'sell' : message.aggressor_side === 'BUY' ? 'buy' : 'unknown',\n      timestamp: new Date(message.time),\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nconst mapUpdateBookLevel = (level: CoinbaseInternationalUpdateBookLevel) => {\n  const price = Number(level[1])\n  const amount = Number(level[2])\n\n  return { price, amount }\n}\n\nconst mapSnapshotBookLevel = (level: CoinbaseInternationalSnapshotBookLevel) => {\n  const price = Number(level[0])\n  const amount = Number(level[1])\n\n  return { price, amount }\n}\n\nconst validAmountsOnly = (level: BookPriceLevel) => {\n  if (Number.isNaN(level.amount)) {\n    return false\n  }\n  if (level.amount < 0) {\n    return false\n  }\n\n  return true\n}\n\nexport class CoinbaseInternationalBookChangMapper implements Mapper<'coinbase-international', BookChange> {\n  canHandle(message: CoinbaseInternationalLevel2Snapshot | CoinbaseInternationalLevel2Update) {\n    return message.channel === 'LEVEL2' && (message.type === 'SNAPSHOT' || message.type === 'UPDATE')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'LEVEL2',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(\n    message: CoinbaseInternationalLevel2Snapshot | CoinbaseInternationalLevel2Update,\n    localTimestamp: Date\n  ): IterableIterator<BookChange> {\n    if (message.type === 'SNAPSHOT') {\n      let timestamp\n      if (message.time !== undefined) {\n        timestamp = new Date(message.time)\n        if (timestamp.valueOf() < 0) {\n          timestamp = localTimestamp\n        }\n      } else {\n        timestamp = localTimestamp\n      }\n\n      yield {\n        type: 'book_change',\n        symbol: message.product_id,\n        exchange: 'coinbase-international',\n        isSnapshot: true,\n        bids: message.bids.map(mapSnapshotBookLevel).filter(validAmountsOnly),\n        asks: message.asks.map(mapSnapshotBookLevel).filter(validAmountsOnly),\n        timestamp,\n        localTimestamp\n      }\n    } else {\n      let timestamp = new Date(message.time)\n\n      yield {\n        type: 'book_change',\n        symbol: message.product_id,\n        exchange: 'coinbase-international',\n        isSnapshot: false,\n        bids: message.changes.filter((c) => c[0] === 'BUY').map(mapUpdateBookLevel),\n        asks: message.changes.filter((c) => c[0] === 'SELL').map(mapUpdateBookLevel),\n        timestamp,\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nexport const coinbaseInternationalBookTickerMapper: Mapper<'coinbase-international', BookTicker> = {\n  canHandle(message: CoinbaseInternationalLevel1Message) {\n    return message.channel === 'LEVEL1' && (message.type === 'SNAPSHOT' || message.type === 'UPDATE')\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'LEVEL1',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: CoinbaseInternationalLevel1Message, localTimestamp: Date): IterableIterator<BookTicker> {\n    let timestamp = new Date(message.time)\n\n    if (message.time === undefined || timestamp.valueOf() < 0) {\n      timestamp = localTimestamp\n    }\n\n    yield {\n      type: 'book_ticker',\n      symbol: message.product_id,\n      exchange: 'coinbase-international',\n      askAmount: message.ask_qty !== undefined ? Number(message.ask_qty) : undefined,\n      askPrice: message.ask_price !== undefined ? Number(message.ask_price) : undefined,\n      bidPrice: message.bid_price !== undefined ? Number(message.bid_price) : undefined,\n      bidAmount: message.bid_qty !== undefined ? Number(message.bid_qty) : undefined,\n      timestamp,\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nexport class CoinbaseInternationalDerivativeTickerMapper implements Mapper<'coinbase-international', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: CoinbaseInternationalTradeMessage | CoinbaseInternationalRiskMessage | CoinbaseInternationalFundingMessage) {\n    // perps only\n    if (message.product_id === undefined || message.product_id.endsWith('-PERP') === false) {\n      return false\n    }\n\n    if (message.channel === 'MATCH' && message.type === 'UPDATE') {\n      return true\n    }\n\n    if (message.channel === 'FUNDING' && message.type === 'UPDATE') {\n      return true\n    }\n\n    if (message.channel === 'RISK') {\n      return true\n    }\n\n    return false\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'MATCH',\n        symbols\n      } as const,\n      {\n        channel: 'RISK',\n        symbols\n      } as const,\n      {\n        channel: 'FUNDING',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(\n    message: CoinbaseInternationalTradeMessage | CoinbaseInternationalRiskMessage | CoinbaseInternationalFundingMessage,\n    localTimestamp: Date\n  ): IterableIterator<DerivativeTicker> {\n    if (message.channel === 'MATCH') {\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(message.product_id, 'coinbase-international')\n      pendingTickerInfo.updateLastPrice(Number(message.trade_price))\n\n      return\n    }\n    const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(message.product_id, 'coinbase-international')\n\n    if (message.channel === 'RISK') {\n      if (message.index_price !== undefined) {\n        pendingTickerInfo.updateIndexPrice(Number(message.index_price))\n      }\n      if (message.mark_price !== undefined) {\n        pendingTickerInfo.updateMarkPrice(Number(message.mark_price))\n      }\n      if (message.open_interest !== undefined) {\n        pendingTickerInfo.updateOpenInterest(Number(message.open_interest))\n      }\n    }\n\n    if (message.channel === 'FUNDING') {\n      let nextFundingTime = new Date(message.time)\n      if (message.is_final === false) {\n        // If the field is_final is false, the message indicates the predicted funding rate for the next funding interval.\n        // https://docs.cdp.coinbase.com/intx/docs/websocket-channels#funding-channel\n        nextFundingTime.setUTCMinutes(0, 0, 0)\n        nextFundingTime = addMinutes(nextFundingTime, 60)\n\n        pendingTickerInfo.updateFundingTimestamp(nextFundingTime)\n      }\n\n      pendingTickerInfo.updateFundingRate(Number(message.funding_rate))\n    }\n\n    pendingTickerInfo.updateTimestamp(new Date(message.time))\n\n    if (pendingTickerInfo.hasChanged()) {\n      yield pendingTickerInfo.getSnapshot(localTimestamp)\n    }\n  }\n}\n\n// TODO: real-time\n\ntype CoinbaseInternationalTradeMessage = {\n  sequence: 80\n  match_id: '374491377330814981'\n  trade_price: '0.009573'\n  trade_qty: '1651'\n  aggressor_side: 'BUY' | 'SELL' | 'OPENING_FILL'\n  channel: 'MATCH'\n  type: 'UPDATE'\n  time: '2024-10-30T10:55:02.069Z'\n  product_id: 'MEW-PERP'\n}\n\ntype CoinbaseInternationalSnapshotBookLevel = [string, string]\n\ntype CoinbaseInternationalLevel2Snapshot = {\n  sequence: 81053126\n  bids: CoinbaseInternationalSnapshotBookLevel[]\n  asks: CoinbaseInternationalSnapshotBookLevel[]\n  channel: 'LEVEL2'\n  type: 'SNAPSHOT'\n  time: '2024-11-06T23:59:59.812Z'\n  product_id: 'BB-PERP'\n}\n\ntype CoinbaseInternationalUpdateBookLevel = ['BUY' | 'SELL', string, string]\n\ntype CoinbaseInternationalLevel2Update = {\n  sequence: 162\n  changes: CoinbaseInternationalUpdateBookLevel[]\n  channel: 'LEVEL2'\n  type: 'UPDATE'\n  time: '2024-10-30T10:55:02.348Z'\n  product_id: 'NOT-PERP'\n}\n\ntype CoinbaseInternationalLevel1Message =\n  | {\n      sequence: 65960075\n      bid_price: '27.03'\n      bid_qty: '24.404'\n      ask_price: '27.037'\n      ask_qty: '32.302'\n      channel: 'LEVEL1'\n      type: 'SNAPSHOT'\n      time: '2024-11-07T00:00:00.121Z'\n      product_id: 'AVAX-PERP'\n    }\n  | {\n      sequence: 120100774\n      bid_price: '2719.96'\n      bid_qty: '0.3676'\n      ask_price: '2720.25'\n      ask_qty: '0.919'\n      channel: 'LEVEL1'\n      type: 'UPDATE'\n      time: '2024-11-07T00:00:59.979Z'\n      product_id: 'ETH-USDC'\n    }\n\ntype CoinbaseInternationalRiskMessage = {\n  sequence: 108523490\n  limit_up: '0.5107'\n  limit_down: '0.4621'\n  index_price: '0.4864755122500001'\n  mark_price: '0.4863'\n  settlement_price: '0.4864'\n  open_interest: '153090'\n  channel: 'RISK'\n  type: 'UPDATE'\n  time: '2024-11-07T00:00:59.950Z'\n  product_id: 'ENA-PERP'\n}\n\ntype CoinbaseInternationalFundingMessage = {\n  sequence: 108521023\n  funding_rate: '0.000009'\n  is_final: false\n  channel: 'FUNDING'\n  type: 'UPDATE'\n  time: '2024-11-07T00:00:51.068Z'\n  product_id: 'DEGEN-PERP'\n}\n"
  },
  {
    "path": "src/mappers/coinflex.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, DerivativeTicker, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\n// https://docs.coinflex.com/v2/#websocket-api-subscriptions-public\n\nexport const coinflexTradesMapper: Mapper<'coinflex', Trade> = {\n  canHandle(message: CoinflexTrades) {\n    return message.table === 'trade'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      }\n    ]\n  },\n\n  *map(coinflexTrades: CoinflexTrades, localTimestamp: Date): IterableIterator<Trade> {\n    for (const trade of coinflexTrades.data) {\n      yield {\n        type: 'trade',\n        symbol: trade.marketCode,\n        exchange: 'coinflex',\n        id: trade.tradeId,\n        price: Number(trade.price),\n        amount: Number(trade.quantity),\n        side: trade.side === 'SELL' ? 'sell' : 'buy',\n        timestamp: new Date(Number(trade.timestamp)),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nconst mapBookLevel = (level: CoinflexBookLevel) => {\n  const price = Number(level[0])\n  const amount = Number(level[1])\n\n  return { price, amount }\n}\n\nexport const coinflexBookChangeMapper: Mapper<'coinflex', BookChange> = {\n  canHandle(message: CoinflexBookDepthMessage) {\n    return message.table === 'futures/depth'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'futures/depth',\n        symbols\n      }\n    ]\n  },\n\n  *map(depthMessage: CoinflexBookDepthMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    for (const change of depthMessage.data) {\n      yield {\n        type: 'book_change',\n        symbol: change.instrumentId,\n        exchange: 'coinflex',\n        isSnapshot: depthMessage.action === 'partial',\n        bids: change.bids.map(mapBookLevel),\n        asks: change.asks.map(mapBookLevel),\n        timestamp: new Date(Number(change.timestamp)),\n        localTimestamp\n      }\n    }\n  }\n}\n\nexport class CoinflexDerivativeTickerMapper implements Mapper<'coinflex', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: CoinflexTickerMessage) {\n    return message.table === 'ticker'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: CoinflexTickerMessage, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    for (const ticker of message.data) {\n      // exclude spot symbols\n      if (ticker.marketCode.split('-').length === 2) {\n        continue\n      }\n\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(ticker.marketCode, 'coinflex')\n\n      if (ticker.markPrice !== undefined) {\n        pendingTickerInfo.updateMarkPrice(Number(ticker.markPrice))\n      }\n\n      if (ticker.openInterest !== undefined) {\n        pendingTickerInfo.updateOpenInterest(Number(ticker.openInterest))\n      }\n      if (ticker.last !== undefined) {\n        pendingTickerInfo.updateLastPrice(Number(ticker.last))\n      }\n\n      pendingTickerInfo.updateTimestamp(new Date(Number(ticker.timestamp)))\n\n      if (pendingTickerInfo.hasChanged()) {\n        yield pendingTickerInfo.getSnapshot(localTimestamp)\n      }\n    }\n  }\n}\n\ntype CoinflexTrades = {\n  data: [\n    {\n      side: 'SELL' | 'BUY'\n      quantity: string\n      price: string\n      marketCode: string\n      tradeId: string\n      timestamp: string\n    }\n  ]\n  table: 'trade'\n}\n\ntype CoinflexBookLevel = [number | string, number | string]\n\ntype CoinflexBookDepthMessage = {\n  data: [\n    {\n      instrumentId: string\n      asks: CoinflexBookLevel[]\n      bids: CoinflexBookLevel[]\n      timestamp: string\n    }\n  ]\n  action: 'partial'\n  table: 'futures/depth'\n}\n\ntype CoinflexTickerMessage = {\n  data: [\n    {\n      last: string\n      markPrice?: string\n      marketCode: string\n      openInterest: string\n      timestamp: string\n    }\n  ]\n  table: 'ticker'\n}\n"
  },
  {
    "path": "src/mappers/cryptocom.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, Exchange, BookTicker, Trade, DerivativeTicker } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\nexport class CryptoComTradesMapper implements Mapper<'crypto-com', Trade> {\n  constructor(private readonly _exchange: Exchange) {}\n  canHandle(message: CryptoComTradeMessage) {\n    return message.result !== undefined && message.result.channel === 'trade'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: CryptoComTradeMessage, localTimestamp: Date): IterableIterator<Trade> {\n    message.result.data.reverse()\n\n    for (const item of message.result.data) {\n      const trade: Trade = {\n        type: 'trade',\n        symbol: message.result.instrument_name,\n        exchange: this._exchange,\n        id: item.d.toString(),\n        price: Number(item.p),\n        amount: Number(item.q),\n        side: item.s === 'BUY' ? 'buy' : 'sell',\n        timestamp: new Date(item.t),\n        localTimestamp\n      }\n\n      yield trade\n    }\n  }\n}\n\nexport class CryptoComBookChangeMapper implements Mapper<'crypto-com', BookChange> {\n  constructor(protected readonly _exchange: Exchange) {}\n\n  canHandle(message: CryptoComBookMessage) {\n    return message.result !== undefined && message.result.channel.startsWith('book')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'book',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: CryptoComBookMessage, localTimestamp: Date) {\n    if (message.result.data === undefined || message.result.data[0] === undefined) {\n      return\n    }\n\n    const bids = (message.result.channel === 'book' ? message.result.data[0].bids : message.result.data[0].update.bids) || []\n    const asks = (message.result.channel === 'book' ? message.result.data[0].asks : message.result.data[0].update.asks) || []\n\n    yield {\n      type: 'book_change',\n      symbol: message.result.instrument_name,\n      exchange: this._exchange,\n      isSnapshot: message.result.channel === 'book',\n      bids: bids.map(this._mapBookLevel),\n      asks: asks.map(this._mapBookLevel),\n      timestamp: new Date(message.result.data[0].t),\n      localTimestamp\n    } as const\n  }\n\n  private _mapBookLevel(level: [number | string, number | string]) {\n    return { price: Number(level[0]), amount: Number(level[1]) }\n  }\n}\n\nexport class CryptoComBookTickerMapper implements Mapper<'crypto-com', BookTicker> {\n  constructor(protected readonly _exchange: Exchange) {}\n\n  canHandle(message: CryptoComTickerMessage) {\n    return message.result !== undefined && message.result.channel === 'ticker'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: CryptoComTickerMessage, localTimestamp: Date) {\n    for (const item of message.result.data) {\n      const bookTicker: BookTicker = {\n        type: 'book_ticker',\n        symbol: message.result.instrument_name,\n        exchange: this._exchange,\n\n        askAmount: item.ks !== undefined && item.ks !== null ? Number(item.ks) : undefined,\n        askPrice: item.k !== undefined && item.k !== null ? Number(item.k) : undefined,\n        bidPrice: item.b !== undefined && item.b !== null ? Number(item.b) : undefined,\n        bidAmount: item.bs !== undefined && item.bs !== null ? Number(item.bs) : undefined,\n        timestamp: new Date(item.t),\n        localTimestamp: localTimestamp\n      }\n\n      yield bookTicker\n    }\n  }\n}\n\nexport class CryptoComDerivativeTickerMapper implements Mapper<'crypto-com', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n  private readonly _indexPrices = new Map<string, number>()\n\n  constructor(protected readonly exchange: Exchange) {}\n\n  canHandle(message: CryptoComDerivativesTickerMessage | CryptoComIndexMessage | CryptoComMarkPriceMessage | CryptoComFundingMessage) {\n    if (message.result === undefined) {\n      return false\n    }\n\n    if (message.result.instrument_name === undefined) {\n      return false\n    }\n\n    // spot symbols\n    if (message.result.instrument_name.includes('_')) {\n      return false\n    }\n    // options\n    if (message.result.instrument_name.split('-').length === 3) {\n      return false\n    }\n\n    return (\n      message.result.channel === 'ticker' ||\n      message.result.channel === 'index' ||\n      message.result.channel === 'mark' ||\n      message.result.channel === 'funding'\n    )\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    let indexes: string[] = []\n    if (symbols !== undefined) {\n      indexes = [...new Set(symbols.map((s) => `${s.split('-')[0]}-INDEX`))]\n    }\n    const filters = [\n      {\n        channel: 'ticker',\n        symbols\n      } as const,\n      {\n        channel: 'index',\n        symbols: indexes\n      } as const,\n      {\n        channel: 'mark',\n        symbols\n      } as const,\n      {\n        channel: 'funding',\n        symbols\n      } as const,\n      {\n        channel: 'estimatedfunding',\n        symbols\n      } as const\n    ]\n\n    return filters\n  }\n\n  *map(\n    message:\n      | CryptoComDerivativesTickerMessage\n      | CryptoComIndexMessage\n      | CryptoComMarkPriceMessage\n      | CryptoComFundingMessage\n      | CryptoComEstFundingMessage,\n    localTimestamp: Date\n  ): IterableIterator<DerivativeTicker> {\n    if (message.result.channel === 'index') {\n      this._indexPrices.set(message.result.instrument_name.split('-')[0], Number(message.result.data[0].v))\n      return\n    }\n\n    const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(message.result.instrument_name, this.exchange)\n\n    const lastIndexPrice = this._indexPrices.get(message.result.instrument_name.split('-')[0])\n    if (lastIndexPrice !== undefined) {\n      pendingTickerInfo.updateIndexPrice(lastIndexPrice)\n    }\n\n    if (message.result.channel === 'ticker') {\n      if (message.result.data[0].a !== null && message.result.data[0].a !== undefined) {\n        pendingTickerInfo.updateLastPrice(Number(message.result.data[0].a))\n      }\n      if (message.result.data[0].oi !== null && message.result.data[0].oi !== undefined) {\n        pendingTickerInfo.updateOpenInterest(Number(message.result.data[0].oi))\n      }\n    }\n\n    if (message.result.channel === 'mark') {\n      if (message.result.data[0].v !== null && message.result.data[0].v !== undefined) {\n        pendingTickerInfo.updateMarkPrice(Number(message.result.data[0].v))\n      }\n    }\n\n    if (message.result.channel === 'funding') {\n      if (message.result.data[0].v !== null && message.result.data[0].v !== undefined) {\n        pendingTickerInfo.updateFundingRate(Number(message.result.data[0].v))\n        const nextFundingTimestamp = new Date(message.result.data[0].t)\n        nextFundingTimestamp.setUTCHours(nextFundingTimestamp.getUTCHours() + 1)\n        nextFundingTimestamp.setUTCMinutes(0, 0, 0)\n        pendingTickerInfo.updateFundingTimestamp(nextFundingTimestamp)\n      }\n    }\n    if (message.result.channel === 'estimatedfunding') {\n      if (message.result.data[0] && message.result.data[0].v !== null && message.result.data[0].v !== undefined) {\n        pendingTickerInfo.updatePredictedFundingRate(Number(message.result.data[0].v))\n      }\n    }\n\n    pendingTickerInfo.updateTimestamp(new Date(message.result.data[0].t))\n\n    if (pendingTickerInfo.hasChanged()) {\n      yield pendingTickerInfo.getSnapshot(localTimestamp)\n    }\n  }\n}\n\ntype CryptoComTradeMessage =\n  | {\n      method: 'subscribe'\n      result: {\n        instrument_name: 'ETH_CRO' // instrument_name\n        subscription: 'trade.ETH_CRO'\n        channel: 'trade'\n        data: [\n          {\n            p: 162.12 // price\n            q: 11.085 // quantity\n            s: 'BUY' // side\n            d: 1210447366 // trade id\n            t: 1587523078844 // trade time\n            dataTime: 0 // please ignore this field\n          }\n        ]\n      }\n    }\n  | {\n      id: -1\n      code: 0\n      method: 'subscribe'\n      result: {\n        channel: 'trade'\n        subscription: 'trade.BTCUSD-PERP'\n        instrument_name: 'BTCUSD-PERP'\n        data: [{ d: '4611686018439397540'; t: 1653992578435; p: '31603.5'; q: '0.1000'; s: 'BUY'; i: 'BTCUSD-PERP' }]\n      }\n    }\n\ntype CryptoComBookMessage =\n  | {\n      code: 0\n      method: 'subscribe'\n      result: {\n        instrument_name: 'ETH_CRO'\n        subscription: 'book.ETH_CRO.150'\n        channel: 'book'\n        depth: 150\n        data: [\n          {\n            bids: [number, number][]\n            asks: [number, number][]\n            t: 1659311999933\n            s: 788293808\n          }\n        ]\n      }\n    }\n  | {\n      code: 0\n      method: 'subscribe'\n      result: {\n        instrument_name: 'DOT_USDT'\n        subscription: 'book.DOT_USDT.150'\n        channel: 'book.update'\n        depth: 150\n        data: [\n          {\n            update: { bids: [number, number][]; asks: [number, number][] }\n            t: 1659312000046\n            s: 763793123\n          }\n        ]\n      }\n    }\n  | {\n      id: -1\n      code: 0\n      method: 'subscribe'\n      result: {\n        channel: 'book.update'\n        subscription: 'book.BTCUSD-PERP.50'\n        instrument_name: 'BTCUSD-PERP'\n        depth: 50\n        data: [\n          {\n            update: { asks: [string, string][]; bids: [string, string][] }\n            t: 1653992578436\n            tt: 1653992578428\n            u: 72560693920\n            pu: 72560688000\n            cs: 380529173\n          }\n        ]\n      }\n    }\n\ntype CryptoComTickerMessage =\n  | {\n      code: 0\n      method: 'subscribe'\n      result: {\n        instrument_name: 'GODS_USDT'\n        subscription: 'ticker.GODS_USDT'\n        channel: 'ticker'\n        data: [\n          {\n            i: 'GODS_USDT'\n            b: 0.4262\n            bs?: 0.1\n            k: 0.4272\n            ks?: 0.2\n            a: 0.4272\n            t: 1659311999946\n            v: 100623.01\n            vv: 42986.1541\n            h: 0.4624\n            l: 0.4229\n            c: -0.0062\n            pc: -1.4302\n          }\n        ]\n      }\n    }\n  | CryptoComDerivativesTickerMessage\n\ntype CryptoComDerivativesTickerMessage =\n  | {\n      id: -1\n      code: 0\n      method: 'subscribe'\n      result: {\n        channel: 'ticker'\n        instrument_name: 'BTCUSD-PERP'\n        subscription: 'ticker.BTCUSD-PERP'\n        data: [\n          {\n            h: '32222.5'\n            l: '30240.0'\n            a: '31611.0'\n            c: '0.0320'\n            b: '31613.0'\n            bs?: '0.1000'\n            k: '31613.5'\n            ks?: '0.2000'\n            i: 'BTCUSD-PERP'\n            v: '13206.4884'\n            vv: '433945264.39'\n            oi: '318.5162'\n            t: 1653992543383\n          }\n        ]\n      }\n    }\n  | {\n      id: 2\n      method: 'subscribe'\n      code: 0\n      result: {\n        instrument_name: 'ESUSD-PERP'\n        subscription: 'ticker.ESUSD-PERP'\n        channel: 'ticker'\n        data: [\n          {\n            h: '0.09625'\n            l: '0.09230'\n            a: '0.09481'\n            c: '-0.0038'\n            b: '0.09451'\n            bs: '1'\n            k: '0.09452'\n            ks: '8461'\n            i: 'ESUSD-PERP'\n            v: '115'\n            vv: '10.84'\n            oi: '78522'\n            t: 1765238404604\n          }\n        ]\n      }\n    }\n  | {\n      id: -1\n      code: 0\n      method: 'subscribe'\n      result: {\n        channel: 'ticker'\n        instrument_name: 'MATIC_USD'\n        subscription: 'ticker.MATIC_USD'\n        id: 1\n        data: [\n          {\n            h: '1.24383'\n            l: '1.18086'\n            a: '1.19604'\n            c: '-0.0315'\n            b: '1.19591'\n            bs: '0.1'\n            k: '1.19643'\n            ks: '0.7'\n            i: 'MATIC_USD'\n            v: '854908.9'\n            vv: '1043976.96'\n            oi: '0'\n            t: 1677628802241\n          }\n        ]\n      }\n    }\n\ntype CryptoComIndexMessage = {\n  id: -1\n  method: 'subscribe'\n  code: 0\n  result: {\n    instrument_name: 'BTCUSD-INDEX'\n    subscription: 'index.BTCUSD-INDEX'\n    channel: 'index'\n    data: [{ v: '31601.35'; t: 1653992545000 }]\n  }\n}\n\ntype CryptoComMarkPriceMessage = {\n  id: 1\n  method: 'subscribe'\n  code: 0\n  result: {\n    instrument_name: 'BTCUSD-PERP'\n    subscription: 'mark.BTCUSD-PERP'\n    channel: 'mark'\n    data: [{ v: '31606.3'; t: 1653992543000 }]\n  }\n}\n\ntype CryptoComFundingMessage = {\n  id: -1\n  method: 'subscribe'\n  code: 0\n  result: {\n    instrument_name: 'BTCUSD-PERP'\n    subscription: 'funding.BTCUSD-PERP'\n    channel: 'funding'\n    data: [{ v: '0.00000700'; t: 1653992579000 }]\n  }\n}\n\ntype CryptoComEstFundingMessage = {\n  id: 1\n  method: 'subscribe'\n  code: 0\n  result: {\n    instrument_name: 'AAVEUSD-PERP'\n    subscription: 'estimatedfunding.AAVEUSD-PERP'\n    channel: 'estimatedfunding'\n    data: [{ v: '0.000039493'; t: 1727308799000 }]\n  }\n}\n"
  },
  {
    "path": "src/mappers/cryptofacilities.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Liquidation, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\n// https://www.cryptofacilities.com/resources/hc/en-us/categories/115000132213-API\n\nexport const cryptofacilitiesTradesMapper: Mapper<'cryptofacilities', Trade> = {\n  canHandle(message: CryptofacilitiesTrade | CryptofacilitiesTicker | CryptofacilitiesBookSnapshot | CryptofacilitiesBookUpdate) {\n    return message.feed === 'trade' && message.event === undefined\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      }\n    ]\n  },\n\n  *map(trade: CryptofacilitiesTrade, localTimestamp: Date): IterableIterator<Trade> {\n    yield {\n      type: 'trade',\n      symbol: trade.product_id,\n      exchange: 'cryptofacilities',\n      id: trade.uid,\n      price: trade.price,\n      amount: trade.qty,\n      side: trade.side,\n      timestamp: new Date(trade.time),\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nconst mapBookLevel = ({ price, qty }: CryptofacilitiesBookLevel) => {\n  return { price, amount: qty < 0 ? 0 : qty }\n}\n\nexport const cryptofacilitiesBookChangeMapper: Mapper<'cryptofacilities', BookChange> = {\n  canHandle(message: CryptofacilitiesTrade | CryptofacilitiesTicker | CryptofacilitiesBookSnapshot | CryptofacilitiesBookUpdate) {\n    return message.event === undefined && (message.feed === 'book' || message.feed === 'book_snapshot')\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'book',\n        symbols\n      },\n      {\n        channel: 'book_snapshot',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: CryptofacilitiesBookSnapshot | CryptofacilitiesBookUpdate, localTimestamp: Date): IterableIterator<BookChange> {\n    if (message.feed === 'book_snapshot') {\n      yield {\n        type: 'book_change',\n        symbol: message.product_id,\n        exchange: 'cryptofacilities',\n        isSnapshot: true,\n        bids: message.bids.map(mapBookLevel),\n        asks: message.asks.map(mapBookLevel),\n        timestamp: message.timestamp !== undefined ? new Date(message.timestamp) : localTimestamp,\n        localTimestamp: localTimestamp\n      }\n    } else {\n      const isAsk = message.side === 'sell'\n      const update = [\n        {\n          price: message.price,\n          amount: message.qty < 0 ? 0 : message.qty\n        }\n      ]\n\n      yield {\n        type: 'book_change',\n        symbol: message.product_id,\n        exchange: 'cryptofacilities',\n        isSnapshot: false,\n        bids: isAsk ? [] : update,\n        asks: isAsk ? update : [],\n        timestamp: message.timestamp !== undefined ? new Date(message.timestamp) : localTimestamp,\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nexport class CryptofacilitiesDerivativeTickerMapper implements Mapper<'cryptofacilities', DerivativeTicker> {\n  constructor(private readonly _useRelativeFundingRate: boolean) {}\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n  canHandle(message: CryptofacilitiesTrade | CryptofacilitiesTicker | CryptofacilitiesBookSnapshot | CryptofacilitiesBookUpdate) {\n    return message.feed === 'ticker' && message.event === undefined\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(ticker: CryptofacilitiesTicker, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(ticker.product_id, 'cryptofacilities')\n\n    if (ticker.next_funding_rate_time === 0) {\n      return\n    }\n\n    if (this._useRelativeFundingRate) {\n      pendingTickerInfo.updateFundingRate(ticker.relative_funding_rate)\n      pendingTickerInfo.updatePredictedFundingRate(ticker.relative_funding_rate_prediction)\n    } else {\n      pendingTickerInfo.updateFundingRate(ticker.funding_rate)\n      pendingTickerInfo.updatePredictedFundingRate(ticker.funding_rate_prediction)\n    }\n    pendingTickerInfo.updateFundingTimestamp(\n      ticker.next_funding_rate_time !== undefined ? new Date(ticker.next_funding_rate_time) : undefined\n    )\n    pendingTickerInfo.updateIndexPrice(ticker.index)\n    pendingTickerInfo.updateMarkPrice(ticker.markPrice)\n    pendingTickerInfo.updateOpenInterest(ticker.openInterest)\n    pendingTickerInfo.updateLastPrice(ticker.last)\n    pendingTickerInfo.updateTimestamp(new Date(ticker.time))\n\n    if (pendingTickerInfo.hasChanged()) {\n      yield pendingTickerInfo.getSnapshot(localTimestamp)\n    }\n  }\n}\n\nexport const cryptofacilitiesLiquidationsMapper: Mapper<'cryptofacilities', Liquidation> = {\n  canHandle(message: CryptofacilitiesTrade | CryptofacilitiesTicker | CryptofacilitiesBookSnapshot | CryptofacilitiesBookUpdate) {\n    return message.feed === 'trade' && message.event === undefined && message.type === 'liquidation'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      }\n    ]\n  },\n\n  *map(liquidationTrade: CryptofacilitiesTrade, localTimestamp: Date): IterableIterator<Liquidation> {\n    yield {\n      type: 'liquidation',\n      symbol: liquidationTrade.product_id,\n      exchange: 'cryptofacilities',\n      id: liquidationTrade.uid,\n      price: liquidationTrade.price,\n      amount: liquidationTrade.qty,\n      side: liquidationTrade.side,\n      timestamp: new Date(liquidationTrade.time),\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nexport const cryptofacilitiesBookTickerMapper: Mapper<'cryptofacilities', BookTicker> = {\n  canHandle(message: CryptofacilitiesTicker) {\n    return message.feed === 'ticker' && message.event === undefined\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      }\n    ]\n  },\n\n  *map(cryptofacilitiesTicker: CryptofacilitiesTicker, localTimestamp: Date): IterableIterator<BookTicker> {\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol: cryptofacilitiesTicker.product_id,\n      exchange: 'cryptofacilities',\n\n      askAmount: cryptofacilitiesTicker.ask_size,\n      askPrice: cryptofacilitiesTicker.ask,\n\n      bidPrice: cryptofacilitiesTicker.bid,\n      bidAmount: cryptofacilitiesTicker.bid_size,\n      timestamp: new Date(cryptofacilitiesTicker.time),\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\ntype CryptofacilitiesTrade = {\n  feed: 'trade'\n  type: 'liquidation' | 'fill'\n  uid: string | undefined\n  event: undefined\n  product_id: string\n  side: 'buy' | 'sell'\n  time: number\n  qty: number\n  price: number\n}\n\ntype CryptofacilitiesTicker =\n  | {\n      feed: 'ticker'\n      event: undefined\n      product_id: string\n      index: number\n      last: number\n      openInterest: number\n      markPrice: number\n      funding_rate: number | undefined\n      funding_rate_prediction: number | undefined\n      next_funding_rate_time: number | undefined\n      time: number\n      bid: number | undefined\n      ask: number | undefined\n      bid_size: number | undefined\n      ask_size: number | undefined\n      relative_funding_rate: undefined\n      relative_funding_rate_prediction: undefined\n    }\n  | {\n      time: 1680307200005\n      product_id: 'PF_1INCHUSD'\n      event: undefined\n      funding_rate: -1.861241614653e-6\n      funding_rate_prediction: -4.87669653882e-6\n      relative_funding_rate: number | undefined\n      relative_funding_rate_prediction: number | undefined\n      next_funding_rate_time: 1680307200000\n      feed: 'ticker'\n      bid: 0.5609\n      ask: 0.5621\n      bid_size: 1123.0\n      ask_size: 8931.0\n      volume: 10902.0\n      dtm: 0\n      leverage: '10x'\n      index: 0.56158\n      premium: -0.0\n      last: 0.5594\n      change: -1.0086710316758118\n      suspended: false\n      tag: 'perpetual'\n      pair: '1INCH:USD'\n      openInterest: 27481.0\n      markPrice: 0.56147544277\n      maturityTime: 0\n      post_only: false\n      volumeQuote: 6028.1795\n    }\n\ntype CryptofacilitiesBookLevel = {\n  price: number\n  qty: number\n}\n\ntype CryptofacilitiesBookSnapshot = {\n  feed: 'book_snapshot'\n  event: undefined\n  product_id: string\n  timestamp: number | undefined\n  bids: CryptofacilitiesBookLevel[]\n  asks: CryptofacilitiesBookLevel[]\n}\n\ntype CryptofacilitiesBookUpdate = {\n  feed: 'book'\n  event: undefined\n  product_id: string\n  side: 'buy' | 'sell'\n  price: number\n  qty: number\n  timestamp: number | undefined\n}\n"
  },
  {
    "path": "src/mappers/delta.ts",
    "content": "import { fromMicroSecondsToDate, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\nexport class DeltaTradesMapper implements Mapper<'delta', Trade> {\n  constructor(private _useV2Channels: boolean) {}\n\n  canHandle(message: DeltaTrade) {\n    return message.type === (this._useV2Channels ? 'all_trades' : 'recent_trade')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: this._useV2Channels ? 'all_trades' : 'recent_trade',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: DeltaTrade, localTimestamp: Date): IterableIterator<Trade> {\n    yield {\n      type: 'trade',\n      symbol: message.symbol,\n      exchange: 'delta',\n      id: undefined,\n      price: Number(message.price),\n      amount: Number(message.size),\n      side: message.buyer_role === 'taker' ? 'buy' : 'sell',\n      timestamp: fromMicroSecondsToDate(message.timestamp),\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nconst mapBookLevel = (level: DeltaBookLevel) => {\n  return {\n    price: Number(level.limit_price),\n    amount: Number(level.size)\n  }\n}\n\nconst mapL2Level = (level: DeltaL2Level) => {\n  return {\n    price: Number(level[0]),\n    amount: Number(level[1])\n  }\n}\n\nexport class DeltaBookChangeMapper implements Mapper<'delta', BookChange> {\n  constructor(private readonly _useL2UpdatesChannel: boolean) {}\n\n  canHandle(message: DeltaL2OrderBook | DeltaL2UpdateMessage) {\n    if (this._useL2UpdatesChannel) {\n      return message.type === 'l2_updates'\n    }\n    return message.type === 'l2_orderbook'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    if (this._useL2UpdatesChannel) {\n      return [\n        {\n          channel: 'l2_updates',\n          symbols\n        } as const\n      ]\n    }\n\n    return [\n      {\n        channel: 'l2_orderbook',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: DeltaL2OrderBook | DeltaL2UpdateMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    if (message.type === 'l2_updates') {\n      yield {\n        type: 'book_change',\n        symbol: message.symbol,\n        exchange: 'delta',\n        isSnapshot: message.action === 'snapshot',\n        bids: message.bids !== undefined ? message.bids.map(mapL2Level) : [],\n        asks: message.asks !== undefined ? message.asks.map(mapL2Level) : [],\n        timestamp: message.timestamp !== undefined ? fromMicroSecondsToDate(message.timestamp) : localTimestamp,\n        localTimestamp\n      }\n    } else {\n      if (message.buy === undefined && message.sell === undefined) {\n        return\n      }\n      yield {\n        type: 'book_change',\n        symbol: message.symbol,\n        exchange: 'delta',\n        isSnapshot: true,\n        bids: message.buy !== undefined ? message.buy.map(mapBookLevel) : [],\n        asks: message.sell !== undefined ? message.sell.map(mapBookLevel) : [],\n        timestamp: message.timestamp !== undefined ? fromMicroSecondsToDate(message.timestamp) : localTimestamp,\n        localTimestamp\n      }\n    }\n  }\n}\n\nexport class DeltaDerivativeTickerMapper implements Mapper<'delta', DerivativeTicker> {\n  constructor(private _useV2Channels: boolean) {}\n\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: DeltaTrade | DeltaMarkPrice | DeltaFundingRate) {\n    return (\n      message.type === (this._useV2Channels ? 'all_trades' : 'recent_trade') ||\n      message.type === 'funding_rate' ||\n      message.type === 'mark_price'\n    )\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: this._useV2Channels ? 'all_trades' : 'recent_trade',\n        symbols\n      } as const,\n      {\n        channel: 'funding_rate',\n        symbols\n      } as const,\n      {\n        channel: 'mark_price',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: DeltaTrade | DeltaMarkPrice | DeltaFundingRate, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(message.symbol.replace('MARK:', ''), 'delta')\n\n    if (message.type === 'recent_trade' || message.type === 'all_trades') {\n      pendingTickerInfo.updateLastPrice(Number(message.price))\n    }\n    if (message.type === 'mark_price') {\n      pendingTickerInfo.updateMarkPrice(Number(message.price))\n    }\n\n    if (message.type === 'funding_rate') {\n      if (message.funding_rate !== undefined) {\n        pendingTickerInfo.updateFundingRate(Number(message.funding_rate))\n      }\n\n      if (message.predicted_funding_rate !== undefined) {\n        pendingTickerInfo.updatePredictedFundingRate(Number(message.predicted_funding_rate))\n      }\n\n      if (message.next_funding_realization !== undefined) {\n        pendingTickerInfo.updateFundingTimestamp(fromMicroSecondsToDate(message.next_funding_realization))\n      }\n    }\n\n    pendingTickerInfo.updateTimestamp(fromMicroSecondsToDate(message.timestamp))\n\n    if (pendingTickerInfo.hasChanged()) {\n      yield pendingTickerInfo.getSnapshot(localTimestamp)\n    }\n  }\n}\n\nexport class DeltaBookTickerMapper implements Mapper<'delta', BookTicker> {\n  canHandle(message: DeltaL1Message) {\n    return message.type === 'l1_orderbook'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'l1_orderbook',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: DeltaL1Message, localTimestamp: Date) {\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol: message.symbol,\n      exchange: 'delta',\n      askAmount: message.ask_qty !== undefined ? Number(message.ask_qty) : undefined,\n      askPrice: message.best_ask !== undefined ? Number(message.best_ask) : undefined,\n      bidPrice: message.best_bid !== undefined ? Number(message.best_bid) : undefined,\n      bidAmount: message.bid_qty !== undefined ? Number(message.bid_qty) : undefined,\n      timestamp: message.timestamp !== undefined ? fromMicroSecondsToDate(message.timestamp) : localTimestamp,\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\ntype DeltaTrade = {\n  buyer_role: 'taker' | 'maker'\n  price: string\n  size: number | string\n  symbol: string\n  timestamp: number\n  type: 'recent_trade' | 'all_trades'\n}\n\ntype DeltaBookLevel = {\n  limit_price: string\n  size: number | string\n}\n\ntype DeltaL2OrderBook = {\n  buy: DeltaBookLevel[]\n  sell: DeltaBookLevel[]\n  symbol: string\n  timestamp?: number\n  type: 'l2_orderbook'\n}\n\ntype DeltaMarkPrice = {\n  price: string\n  symbol: string\n  timestamp: number\n  type: 'mark_price'\n}\n\ntype DeltaFundingRate = {\n  funding_rate?: string | number\n  next_funding_realization?: number\n  predicted_funding_rate?: number\n  symbol: string\n  timestamp: number\n  type: 'funding_rate'\n}\n\ntype DeltaL2Level = [string, string]\ntype DeltaL2UpdateMessage =\n  | {\n      action: 'snapshot'\n      asks: DeltaL2Level[]\n      bids: DeltaL2Level[]\n      cs: 220729409\n      sequence_no: 3660223\n      symbol: string\n      timestamp: 1680307203021223\n      type: 'l2_updates'\n    }\n  | {\n      action: 'update'\n      asks: DeltaL2Level[]\n      bids: DeltaL2Level[]\n      cs: 2728204214\n      sequence_no: 3660224\n      symbol: string\n      timestamp: 1680307203771239\n      type: 'l2_updates'\n    }\n\ntype DeltaL1Message = {\n  ask_qty: '1950'\n  best_ask: '4964.5'\n  best_bid: '4802'\n  bid_qty: '4356'\n  last_sequence_no: 1680307203966299\n  last_updated_at: 1680307203784000\n  product_id: 103877\n  symbol: 'P-BTC-33000-210423'\n  timestamp: 1680307203966299\n  type: 'l1_orderbook'\n}\n"
  },
  {
    "path": "src/mappers/deribit.ts",
    "content": "import { asNumberIfValid } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Liquidation, OptionSummary, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\n// https://docs.deribit.com/v2/#subscriptions\n\nfunction deribitCasing(symbols?: string[]) {\n  if (symbols !== undefined) {\n    return symbols.map((symbol) => {\n      if (symbol.endsWith('-C') || symbol.endsWith('-P')) {\n        const parts = symbol.split('-')\n        if (parts[2] !== undefined && parts[2].toUpperCase().includes('D')) {\n          parts[2] = parts[2].replace('D', 'd')\n          return parts.join('-')\n        } else {\n          return symbol.toUpperCase()\n        }\n      } else {\n        return symbol.toUpperCase()\n      }\n    })\n  }\n\n  return\n}\n\nexport const deribitTradesMapper: Mapper<'deribit', Trade> = {\n  canHandle(message: any) {\n    const channel = message.params !== undefined ? (message.params.channel as string | undefined) : undefined\n    if (channel === undefined) {\n      return false\n    }\n\n    return channel.startsWith('trades')\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = deribitCasing(symbols)\n\n    return [\n      {\n        channel: 'trades',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: DeribitTradesMessage, localTimestamp: Date): IterableIterator<Trade> {\n    for (const deribitTrade of message.params.data) {\n      yield {\n        type: 'trade',\n        symbol: deribitTrade.instrument_name.toUpperCase(),\n        exchange: 'deribit',\n        id: deribitTrade.trade_id,\n        price: deribitTrade.price,\n        amount: deribitTrade.amount,\n        side: deribitTrade.direction,\n        timestamp: new Date(deribitTrade.timestamp),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nconst mapBookLevel = (level: DeribitBookLevel) => {\n  const price = level[1]\n  const amount = level[0] === 'delete' ? 0 : level[2]\n\n  return { price, amount }\n}\n\nexport const deribitBookChangeMapper: Mapper<'deribit', BookChange> = {\n  canHandle(message: any) {\n    const channel = message.params && (message.params.channel as string | undefined)\n    if (channel === undefined) {\n      return false\n    }\n\n    return channel.startsWith('book')\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = deribitCasing(symbols)\n\n    return [\n      {\n        channel: 'book',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: DeribitBookMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    const deribitBookChange = message.params.data\n    // snapshots do not have prev_change_id set\n    const isSnapshot =\n      (deribitBookChange.type !== undefined && deribitBookChange.type === 'snapshot') ||\n      deribitBookChange.prev_change_id === undefined ||\n      deribitBookChange.prev_change_id === 0\n\n    yield {\n      type: 'book_change',\n      symbol: deribitBookChange.instrument_name.toUpperCase(),\n      exchange: 'deribit',\n      isSnapshot,\n      bids: deribitBookChange.bids.map(mapBookLevel),\n      asks: deribitBookChange.asks.map(mapBookLevel),\n      timestamp: new Date(deribitBookChange.timestamp),\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nexport class DeribitDerivativeTickerMapper implements Mapper<'deribit', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: any) {\n    const channel = message.params && (message.params.channel as string | undefined)\n    if (channel === undefined) {\n      return false\n    }\n\n    return channel.startsWith('ticker') && (message.params.data.greeks === undefined || message.params.data.combo_state === 'active')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = deribitCasing(symbols)\n\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: DeribitTickerMessage, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    const deribitTicker = message.params.data\n    const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(deribitTicker.instrument_name, 'deribit')\n\n    pendingTickerInfo.updateFundingRate(deribitTicker.current_funding)\n    pendingTickerInfo.updateIndexPrice(deribitTicker.index_price)\n    pendingTickerInfo.updateMarkPrice(deribitTicker.mark_price)\n    pendingTickerInfo.updateOpenInterest(deribitTicker.open_interest)\n    pendingTickerInfo.updateLastPrice(deribitTicker.last_price)\n    pendingTickerInfo.updateTimestamp(new Date(deribitTicker.timestamp))\n\n    if (pendingTickerInfo.hasChanged()) {\n      yield pendingTickerInfo.getSnapshot(localTimestamp)\n    }\n  }\n}\n\nexport class DeribitOptionSummaryMapper implements Mapper<'deribit', OptionSummary> {\n  getFilters(symbols?: string[]) {\n    symbols = deribitCasing(symbols)\n\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      } as const\n    ]\n  }\n\n  canHandle(message: any) {\n    const channel = message.params && message.params.channel\n    if (channel === undefined) {\n      return false\n    }\n\n    return (\n      channel.startsWith('ticker') &&\n      (message.params.data.instrument_name.endsWith('-P') || message.params.data.instrument_name.endsWith('-C'))\n    )\n  }\n\n  *map(message: DeribitOptionTickerMessage, localTimestamp: Date) {\n    //MATIC_USDC-9MAR24-1d02-C\n    const optionInfo = message.params.data\n\n    //e.g., BTC-8JUN20-8750-P\n    const symbolParts = optionInfo.instrument_name.split('-')\n\n    const isPut = symbolParts[3] === 'P'\n\n    let strikePriceString = symbolParts[2]\n    if (strikePriceString.includes('d')) {\n      strikePriceString = strikePriceString.replace('d', '.')\n    }\n    const strikePrice = Number(strikePriceString)\n    const expirationDate = new Date(symbolParts[1] + 'Z')\n    expirationDate.setUTCHours(8)\n\n    const optionSummary: OptionSummary = {\n      type: 'option_summary',\n      symbol: optionInfo.instrument_name.toUpperCase(),\n      exchange: 'deribit',\n      optionType: isPut ? 'put' : 'call',\n      strikePrice,\n      expirationDate,\n\n      bestBidPrice: asNumberIfValid(optionInfo.best_bid_price),\n      bestBidAmount: asNumberIfValid(optionInfo.best_bid_amount),\n      bestBidIV: asNumberIfValid(optionInfo.bid_iv),\n\n      bestAskPrice: asNumberIfValid(optionInfo.best_ask_price),\n      bestAskAmount: asNumberIfValid(optionInfo.best_ask_amount),\n      bestAskIV: asNumberIfValid(optionInfo.ask_iv),\n\n      lastPrice: asNumberIfValid(optionInfo.last_price),\n      openInterest: optionInfo.open_interest,\n\n      markPrice: optionInfo.mark_price,\n      markIV: optionInfo.mark_iv,\n\n      delta: optionInfo.greeks.delta,\n      gamma: optionInfo.greeks.gamma,\n      vega: optionInfo.greeks.vega,\n      theta: optionInfo.greeks.theta,\n      rho: optionInfo.greeks.rho,\n\n      underlyingPrice: optionInfo.underlying_price,\n      underlyingIndex: optionInfo.underlying_index,\n\n      timestamp: new Date(optionInfo.timestamp),\n      localTimestamp: localTimestamp\n    }\n\n    yield optionSummary\n  }\n}\n\nexport const deribitLiquidationsMapper: Mapper<'deribit', Liquidation> = {\n  canHandle(message: any) {\n    const channel = message.params !== undefined ? (message.params.channel as string | undefined) : undefined\n    if (channel === undefined) {\n      return false\n    }\n\n    return channel.startsWith('trades')\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = deribitCasing(symbols)\n\n    return [\n      {\n        channel: 'trades',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: DeribitTradesMessage, localTimestamp: Date): IterableIterator<Liquidation> {\n    for (const deribitTrade of message.params.data) {\n      if (deribitTrade.liquidation !== undefined) {\n        let side\n        // \"T\" when liquidity taker side was under liquidation\n        if (deribitTrade.liquidation === 'T') {\n          side = deribitTrade.direction\n        } else {\n          // \"M\" when maker (passive) side of trade was under liquidation\n          side = deribitTrade.direction === 'buy' ? ('sell' as const) : ('buy' as const)\n        }\n        yield {\n          type: 'liquidation',\n          symbol: deribitTrade.instrument_name.toUpperCase(),\n          exchange: 'deribit',\n          id: deribitTrade.trade_id,\n          price: deribitTrade.price,\n          amount: deribitTrade.amount,\n          side,\n          timestamp: new Date(deribitTrade.timestamp),\n          localTimestamp: localTimestamp\n        }\n      }\n    }\n  }\n}\n\nexport const deribitBookTickerMapper: Mapper<'deribit', BookTicker> = {\n  canHandle(message: any) {\n    const channel = message.params !== undefined ? (message.params.channel as string | undefined) : undefined\n    if (channel === undefined) {\n      return false\n    }\n\n    return channel.startsWith('ticker')\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = deribitCasing(symbols)\n\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: DeribitTickerMessage, localTimestamp: Date): IterableIterator<BookTicker> {\n    const deribitTicker = message.params.data\n\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol: deribitTicker.instrument_name.toUpperCase(),\n      exchange: 'deribit',\n\n      askAmount: asNumberIfValid(deribitTicker.best_ask_amount),\n      askPrice: asNumberIfValid(deribitTicker.best_ask_price),\n      bidPrice: asNumberIfValid(deribitTicker.best_bid_price),\n      bidAmount: asNumberIfValid(deribitTicker.best_bid_amount),\n\n      timestamp: new Date(deribitTicker.timestamp),\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\ntype DeribitMessage = {\n  params: {\n    channel: string\n  }\n}\n\ntype DeribitTradesMessage = DeribitMessage & {\n  params: {\n    data: {\n      trade_id: string\n      instrument_name: string\n      timestamp: number\n      direction: 'buy' | 'sell'\n      price: number\n      amount: number\n      trade_seq: number\n      liquidation?: 'M' | 'T' | 'MT'\n    }[]\n  }\n}\n\ntype DeribitBookLevel = ['new' | 'change' | 'delete', number, number]\n\ntype DeribitBookMessage = DeribitMessage & {\n  params: {\n    data: {\n      timestamp: number\n      instrument_name: string\n      prev_change_id?: number\n      bids: DeribitBookLevel[]\n      asks: DeribitBookLevel[]\n      type?: 'snapshot' | 'change'\n    }\n  }\n}\n\ntype DeribitTickerMessage = DeribitMessage & {\n  params: {\n    data: {\n      timestamp: number\n      open_interest: number\n      last_price: number | undefined\n      mark_price: number\n      instrument_name: string\n      index_price: number\n      current_funding?: number\n      funding_8h?: number\n      best_bid_price: number | undefined\n      best_bid_amount: number | undefined\n      best_ask_price: number | undefined\n      best_ask_amount: number | undefined\n    }\n  }\n}\n\ntype DeribitOptionTickerMessage = DeribitTickerMessage & {\n  params: {\n    data: {\n      underlying_price: number\n      underlying_index: string\n      timestamp: number\n      open_interest: number\n      mark_price: number\n      mark_iv: number\n      last_price: number | null\n      greeks: { vega: number; theta: number; rho: number; gamma: number; delta: number }\n      bid_iv: number | undefined\n      ask_iv: number | undefined\n    }\n  }\n}\n"
  },
  {
    "path": "src/mappers/dydx.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookPriceLevel, DerivativeTicker, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\nexport class DydxTradesMapper implements Mapper<'dydx', Trade> {\n  canHandle(message: DyDxTrade) {\n    return message.channel === 'v3_trades' && message.type === 'channel_data'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'v3_trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: DyDxTrade, localTimestamp: Date): IterableIterator<Trade> {\n    for (let trade of message.contents.trades) {\n      yield {\n        type: 'trade',\n        symbol: message.id,\n        exchange: 'dydx',\n        id: undefined,\n        price: Number(trade.price),\n        amount: Number(trade.size),\n        side: trade.side === 'SELL' ? 'sell' : 'buy',\n        timestamp: trade.createdAt ? new Date(trade.createdAt) : localTimestamp,\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nexport class DydxBookChangeMapper implements Mapper<'dydx', BookChange> {\n  private _bidsOffsets: { [key: string]: { [key: string]: number | undefined } } = {}\n  private _asksOffsets: { [key: string]: { [key: string]: number | undefined } } = {}\n\n  canHandle(message: DyDxOrderbookSnapshot | DyDxOrderBookUpdate) {\n    return message.channel === 'v3_orderbook'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'v3_orderbook',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: DyDxOrderbookSnapshot | DyDxOrderBookUpdate, localTimestamp: Date): IterableIterator<BookChange> {\n    if (message.type === 'subscribed') {\n      this._bidsOffsets[message.id] = {}\n      this._asksOffsets[message.id] = {}\n\n      yield {\n        type: 'book_change',\n        symbol: message.id,\n        exchange: 'dydx',\n        isSnapshot: true,\n        bids: message.contents.bids.map((bid) => {\n          this._bidsOffsets[message.id][bid.price] = Number(bid.offset)\n          return {\n            price: Number(bid.price),\n            amount: Number(bid.size)\n          }\n        }),\n\n        asks: message.contents.asks.map((ask) => {\n          this._asksOffsets[message.id][ask.price] = Number(ask.offset)\n          return {\n            price: Number(ask.price),\n            amount: Number(ask.size)\n          }\n        }),\n        timestamp: localTimestamp,\n        localTimestamp\n      }\n    } else {\n      if (!message.contents) {\n        return\n      }\n      // https://docs.dydx.exchange/#orderbook\n      const updateOffset = Number(message.contents.offset)\n\n      const bookChange: BookChange = {\n        type: 'book_change',\n        symbol: message.id,\n        exchange: 'dydx',\n        isSnapshot: false,\n\n        bids: message.contents.bids\n          .map((bid) => {\n            const lastPriceLevelOffset = this._bidsOffsets[message.id] && this._bidsOffsets[message.id][bid[0]]\n            if (lastPriceLevelOffset !== undefined && lastPriceLevelOffset >= updateOffset) {\n              return\n            }\n\n            return {\n              price: Number(bid[0]),\n              amount: Number(bid[1])\n            }\n          })\n          .filter((b) => b !== undefined) as BookPriceLevel[],\n\n        asks: message.contents.asks\n          .map((ask) => {\n            const lastPriceLevelOffset = this._asksOffsets[message.id] && this._asksOffsets[message.id][ask[0]]\n            if (lastPriceLevelOffset !== undefined && lastPriceLevelOffset >= updateOffset) {\n              return\n            }\n\n            return {\n              price: Number(ask[0]),\n              amount: Number(ask[1])\n            }\n          })\n          .filter((b) => b !== undefined) as BookPriceLevel[],\n\n        timestamp: localTimestamp,\n        localTimestamp\n      }\n\n      if (!this._bidsOffsets[message.id]) {\n        this._bidsOffsets[message.id] = {}\n      }\n      for (const bid of message.contents.bids) {\n        this._bidsOffsets[message.id][bid[0]] = updateOffset\n      }\n\n      if (!this._asksOffsets[message.id]) {\n        this._asksOffsets[message.id] = {}\n      }\n      for (const ask of message.contents.asks) {\n        this._asksOffsets[message.id][ask[0]] = updateOffset\n      }\n\n      if (bookChange.bids.length > 0 || bookChange.asks.length > 0) {\n        yield bookChange\n      }\n    }\n  }\n}\n\nexport class DydxDerivativeTickerMapper implements Mapper<'dydx', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: DydxMarketsSnapshot | DyDxMarketsUpdate | DyDxTrade) {\n    return message.channel === 'v3_markets' || (message.channel === 'v3_trades' && message.type === 'channel_data')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'v3_markets',\n        symbols: [] as string[]\n      } as const,\n      {\n        channel: 'v3_trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: DydxMarketsSnapshot | DyDxMarketsUpdate | DyDxTrade, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    if (message.channel === 'v3_trades') {\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(message.id, 'dydx')\n      pendingTickerInfo.updateLastPrice(Number(message.contents.trades[message.contents.trades.length - 1].price))\n\n      return\n    }\n\n    const contents = message.type === 'subscribed' ? message.contents.markets : message.contents\n\n    for (const key in contents) {\n      const marketInfo = contents[key]\n\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(key, 'dydx')\n\n      if (marketInfo.indexPrice !== undefined) {\n        pendingTickerInfo.updateIndexPrice(Number(marketInfo.indexPrice))\n      }\n      if (marketInfo.oraclePrice !== undefined) {\n        pendingTickerInfo.updateMarkPrice(Number(marketInfo.oraclePrice))\n      }\n      if (marketInfo.openInterest !== undefined) {\n        pendingTickerInfo.updateOpenInterest(Number(marketInfo.openInterest))\n      }\n\n      if (marketInfo.nextFundingRate !== undefined) {\n        pendingTickerInfo.updateFundingRate(Number(marketInfo.nextFundingRate))\n      }\n\n      if (marketInfo.nextFundingAt !== undefined) {\n        pendingTickerInfo.updateFundingTimestamp(new Date(marketInfo.nextFundingAt))\n      }\n\n      pendingTickerInfo.updateTimestamp(localTimestamp)\n\n      if (pendingTickerInfo.hasChanged()) {\n        yield pendingTickerInfo.getSnapshot(localTimestamp)\n      }\n    }\n  }\n}\n\ntype DyDxTrade = {\n  type: 'channel_data'\n  connection_id: 'e368fe1e-a007-44bd-9532-8eacc81a8bbc'\n  message_id: 229\n  id: 'BTC-USD'\n  channel: 'v3_trades'\n  contents: {\n    trades: [{ size: '0.075'; side: 'SELL'; price: '57696'; createdAt: '2021-05-01T00:00:34.046Z' | undefined }]\n  }\n}\n\ntype DyDxOrderbookSnapshot = {\n  type: 'subscribed'\n  connection_id: '22be6448-1464-45ff-ae7d-1204eac64d0f'\n  message_id: 1\n  channel: 'v3_orderbook'\n  id: '1INCH-USD'\n  contents: {\n    bids: [{ price: '5'; offset: '118546101'; size: '50' }]\n    asks: [{ price: '7'; offset: '120842096'; size: '20' }]\n  }\n}\n\ntype DyDxOrderBookUpdate = {\n  type: 'channel_data'\n  connection_id: '22be6448-1464-45ff-ae7d-1204eac64d0f'\n  message_id: 161\n  id: '1INCH-USD'\n  channel: 'v3_orderbook'\n  contents: {\n    offset: '125090042'\n    bids: [string, string][]\n    asks: [string, string][]\n  }\n}\n\ntype DydxMarketsSnapshot = {\n  type: 'subscribed'\n  connection_id: '8c11ee31-dbca-49fa-9df0-fc973948b7b5'\n  message_id: 3\n  channel: 'v3_markets'\n  contents: {\n    markets: {\n      [key: string]: {\n        market: 'BTC-USD'\n        status: 'ONLINE'\n        baseAsset: 'BTC'\n        quoteAsset: 'USD'\n        stepSize: '0.0001'\n        tickSize: '1'\n        indexPrice: '57794.7000'\n        oraclePrice: '57880.5200'\n        priceChange24H: '4257.9'\n        nextFundingRate: '0.0000587260'\n        nextFundingAt: '2021-05-01T00:00:00.000Z'\n        minOrderSize: '0.001'\n        type: 'PERPETUAL'\n        initialMarginFraction: '0.04'\n        maintenanceMarginFraction: '0.03'\n        volume24H: '4710467.697100'\n        trades24H: '663'\n        openInterest: '101.2026'\n        incrementalInitialMarginFraction: '0.01'\n        incrementalPositionSize: '0.5'\n        maxPositionSize: '30'\n        baselinePositionSize: '1.0'\n        allTimeLiquidationQuoteVolume: '3001153.615633'\n        dailyLiquidationQuoteVolume: '6047.074828'\n      }\n    }\n  }\n}\n\ntype DyDxMarketsUpdate = {\n  type: 'channel_data'\n  connection_id: '8c11ee31-dbca-49fa-9df0-fc973948b7b5'\n  message_id: 221\n  channel: 'v3_markets'\n  contents: {\n    [key: string]: {\n      market: 'BTC-USD'\n      status: 'ONLINE'\n      baseAsset: 'BTC'\n      quoteAsset: 'USD'\n      stepSize: '0.0001'\n      tickSize: '1'\n      indexPrice: '57794.7000'\n      oraclePrice: '57880.5200'\n      priceChange24H: '4257.9'\n      nextFundingRate: '0.0000587260'\n      nextFundingAt: '2021-05-01T00:00:00.000Z'\n      minOrderSize: '0.001'\n      type: 'PERPETUAL'\n      initialMarginFraction: '0.04'\n      maintenanceMarginFraction: '0.03'\n      volume24H: '4710467.697100'\n      trades24H: '663'\n      openInterest: '101.2026'\n      incrementalInitialMarginFraction: '0.01'\n      incrementalPositionSize: '0.5'\n      maxPositionSize: '30'\n      baselinePositionSize: '1.0'\n      allTimeLiquidationQuoteVolume: '3001153.615633'\n      dailyLiquidationQuoteVolume: '6047.074828'\n    }\n  }\n}\n"
  },
  {
    "path": "src/mappers/dydxv4.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, DerivativeTicker, Liquidation, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\nexport class DydxV4TradesMapper implements Mapper<'dydx-v4', Trade> {\n  canHandle(message: DyDxTrade) {\n    return message.channel === 'v4_trades' && message.type === 'channel_data'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'v4_trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: DyDxTrade, localTimestamp: Date): IterableIterator<Trade> {\n    for (let trade of message.contents.trades) {\n      yield {\n        type: 'trade',\n        symbol: message.id,\n        exchange: 'dydx-v4',\n        id: trade.id,\n        price: Number(trade.price),\n        amount: Number(trade.size),\n        side: trade.side === 'SELL' ? 'sell' : 'buy',\n        timestamp: trade.createdAt ? new Date(trade.createdAt) : localTimestamp,\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nfunction mapSnapshotPriceLevel(level: { price: string; size: string }) {\n  return {\n    price: Number(level.price),\n    amount: Number(level.size)\n  }\n}\n\nfunction mapUpdatePriceLevel(level: [string, string]) {\n  return {\n    price: Number(level[0]),\n    amount: Number(level[1])\n  }\n}\nexport class DydxV4BookChangeMapper implements Mapper<'dydx-v4', BookChange> {\n  canHandle(message: DyDxOrderbookSnapshot | DyDxOrderBookUpdate) {\n    return message.channel === 'v4_orderbook'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'v4_orderbook',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: DyDxOrderbookSnapshot | DyDxOrderBookUpdate, localTimestamp: Date): IterableIterator<BookChange> {\n    if (message.type === 'subscribed') {\n      yield {\n        type: 'book_change',\n        symbol: message.id,\n        exchange: 'dydx-v4',\n        isSnapshot: true,\n        bids: message.contents.bids.map(mapSnapshotPriceLevel),\n        asks: message.contents.asks.map(mapSnapshotPriceLevel),\n        timestamp: localTimestamp,\n        localTimestamp\n      }\n    } else {\n      if (!message.contents) {\n        return\n      }\n\n      const bookChange: BookChange = {\n        type: 'book_change',\n        symbol: message.id,\n        exchange: 'dydx-v4',\n        isSnapshot: false,\n        bids: message.contents.bids !== undefined ? message.contents.bids.map(mapUpdatePriceLevel) : [],\n        asks: message.contents.asks !== undefined ? message.contents.asks.map(mapUpdatePriceLevel) : [],\n        timestamp: localTimestamp,\n        localTimestamp\n      }\n\n      if (bookChange.bids.length > 0 || bookChange.asks.length > 0) {\n        yield bookChange\n      }\n    }\n  }\n}\n\nexport class DydxV4DerivativeTickerMapper implements Mapper<'dydx-v4', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: DydxMarketsSnapshot | DyDxMarketsUpdate | DyDxTrade) {\n    return message.channel === 'v4_markets' || (message.channel === 'v4_trades' && message.type === 'channel_data')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'v4_markets',\n        symbols: [] as string[]\n      } as const,\n      {\n        channel: 'v4_trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: DydxMarketsSnapshot | DyDxMarketsUpdate | DyDxTrade, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    if (message.channel === 'v4_trades') {\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(message.id, 'dydx-v4')\n      pendingTickerInfo.updateLastPrice(Number(message.contents.trades[message.contents.trades.length - 1].price))\n\n      return\n    }\n    if (message.type === 'subscribed' || (message.type === 'channel_data' && message.contents.trading !== undefined)) {\n      const contents = message.type === 'subscribed' ? message.contents.markets : message.contents.trading\n      for (const key in contents) {\n        const marketInfo = (contents as any)[key] as DydxMarketsSnapshotContent | DydxMarketTradeUpdate\n\n        const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(key, 'dydx-v4')\n\n        if (marketInfo.oraclePrice !== undefined) {\n          pendingTickerInfo.updateMarkPrice(Number(marketInfo.oraclePrice))\n        }\n        if (marketInfo.openInterest !== undefined) {\n          pendingTickerInfo.updateOpenInterest(Number(marketInfo.openInterest))\n        }\n\n        if (marketInfo.nextFundingRate !== undefined) {\n          pendingTickerInfo.updateFundingRate(Number(marketInfo.nextFundingRate))\n        }\n\n        pendingTickerInfo.updateTimestamp(localTimestamp)\n\n        if (pendingTickerInfo.hasChanged()) {\n          yield pendingTickerInfo.getSnapshot(localTimestamp)\n        }\n      }\n    }\n\n    if (message.type === 'channel_data' && message.contents.oraclePrices !== undefined) {\n      for (const key in message.contents.oraclePrices) {\n        const oraclePriceInfo = (message.contents.oraclePrices as any)[key] as OraclePriceInfo\n        const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(key, 'dydx-v4')\n        if (oraclePriceInfo.oraclePrice !== undefined) {\n          pendingTickerInfo.updateMarkPrice(Number(oraclePriceInfo.oraclePrice))\n        }\n        pendingTickerInfo.updateTimestamp(localTimestamp)\n\n        if (pendingTickerInfo.hasChanged()) {\n          yield pendingTickerInfo.getSnapshot(localTimestamp)\n        }\n      }\n    }\n  }\n}\n\nexport class DydxV4LiquidationsMapper implements Mapper<'dydx-v4', Liquidation> {\n  canHandle(message: DyDxTrade) {\n    return message.channel === 'v4_trades' && message.type === 'channel_data'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'v4_trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: DyDxTrade, localTimestamp: Date): IterableIterator<Liquidation> {\n    for (let trade of message.contents.trades) {\n      if (trade.type === 'LIQUIDATED') {\n        yield {\n          type: 'liquidation',\n          symbol: message.id,\n          exchange: 'dydx-v4',\n          id: trade.id,\n          price: Number(trade.price),\n          amount: Number(trade.size),\n          side: trade.side === 'SELL' ? 'sell' : 'buy',\n          timestamp: trade.createdAt ? new Date(trade.createdAt) : localTimestamp,\n          localTimestamp: localTimestamp\n        }\n      }\n    }\n  }\n}\n\ntype DyDxTrade = {\n  type: 'channel_data'\n  connection_id: '3a2e4c0c-7579-4bf6-a570-e0979418bbe9'\n  message_id: 15897\n  id: 'BTC-USD'\n  channel: 'v4_trades'\n  version: '2.1.0'\n  contents: {\n    trades: [\n      {\n        id: '0165e6170000000200000002'\n        size: '0.0001'\n        price: '60392'\n        side: 'BUY' | 'SELL'\n        createdAt: '2024-08-23T00:00:57.627Z'\n        type: 'LIMIT' | 'LIQUIDATED'\n      }\n    ]\n  }\n}\n\ntype DyDxOrderbookSnapshot = {\n  type: 'subscribed'\n  connection_id: '67838890-75de-4bf3-a638-d7bcdea5f245'\n  message_id: 7\n  channel: 'v4_orderbook'\n  id: 'GRT-USD'\n  contents: {\n    bids: [{ price: '0.1547'; size: '35520' }]\n    asks: [{ price: '0.155'; size: '3220' }]\n  }\n}\n\ntype DyDxOrderBookUpdate = {\n  type: 'channel_data'\n  connection_id: '00908030-4a70-43aa-9263-8ccdf57b5d40'\n  message_id: 10290\n  id: 'EOS-USD'\n  channel: 'v4_orderbook'\n  version: '1.0.0'\n  contents: { bids: [['0.1003', '2017130']]; asks: undefined | [['0.1003', '2017130']] }\n}\n\ntype DydxMarketsSnapshot = {\n  type: 'subscribed'\n  connection_id: '3a2e4c0c-7579-4bf6-a570-e0979418bbe9'\n  message_id: 17\n  channel: 'v4_markets'\n  contents: {\n    markets: {\n      [key: string]: DydxMarketsSnapshotContent\n    }\n  }\n}\ntype DydxMarketsSnapshotContent = {\n  clobPairId: '0'\n  ticker: 'BTC-USD'\n  status: 'ACTIVE'\n  oraclePrice: '60387.51779'\n  priceChange24H: '-782.58326'\n  volume24H: '247515340.0835'\n  trades24H: 73556\n  nextFundingRate: '0.00001351666666666667'\n  initialMarginFraction: '0.05'\n  maintenanceMarginFraction: '0.03'\n  openInterest: '648.2389'\n  atomicResolution: -10\n  quantumConversionExponent: -9\n  tickSize: '1'\n  stepSize: '0.0001'\n  stepBaseQuantums: 1000000\n  subticksPerTick: 100000\n  marketType: 'CROSS'\n  openInterestLowerCap: '0'\n  openInterestUpperCap: '0'\n  baseOpenInterest: '648.4278'\n}\n\ntype DyDxMarketsUpdate =\n  | {\n      type: 'channel_data'\n      connection_id: '3a2e4c0c-7579-4bf6-a570-e0979418bbe9'\n      message_id: 15871\n      channel: 'v4_markets'\n      version: '1.0.0'\n      contents: {\n        oraclePrices: undefined\n        trading: {\n          'ETH-USD': DydxMarketTradeUpdate\n        }\n      }\n    }\n  | {\n      type: 'channel_data'\n      connection_id: '3a2e4c0c-7579-4bf6-a570-e0979418bbe9'\n      message_id: 50\n      channel: 'v4_markets'\n      version: '1.0.0'\n      contents: {\n        trading: undefined\n        oraclePrices: {\n          'ZERO-USD': OraclePriceInfo\n        }\n      }\n    }\n\ntype OraclePriceInfo = { oraclePrice: string; effectiveAt: string; effectiveAtHeight: string; marketId: number }\n\ntype DydxMarketTradeUpdate = {\n  id?: string\n  clobPairId?: string\n  ticker?: string\n  marketId?: number\n  oraclePrice: undefined\n  baseAsset?: string\n  quoteAsset?: string\n  initialMarginFraction?: string\n  maintenanceMarginFraction?: string\n  basePositionSize?: string\n  incrementalPositionSize?: string\n  maxPositionSize?: string\n  openInterest?: string\n  quantumConversionExponent?: number\n  atomicResolution?: number\n  subticksPerTick?: number\n  stepBaseQuantums?: number\n  priceChange24H?: string\n  volume24H?: string\n  trades24H?: number\n  nextFundingRate?: string\n}\n"
  },
  {
    "path": "src/mappers/ftx.ts",
    "content": "import { asNumberIfValid, parseμs, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Exchange, Liquidation, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\n// https://docs.ftx.com/#websocket-api\n\nexport class FTXTradesMapper implements Mapper<'ftx' | 'ftx-us', Trade> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: FtxTrades | FtxOrderBook) {\n    if (message.data == undefined) {\n      return false\n    }\n\n    return message.channel === 'trades'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(ftxTrades: FtxTrades, localTimestamp: Date): IterableIterator<Trade> {\n    for (const ftxTrade of ftxTrades.data) {\n      const timestamp = new Date(ftxTrade.time)\n      timestamp.μs = parseμs(ftxTrade.time)\n\n      yield {\n        type: 'trade',\n        symbol: ftxTrades.market,\n        exchange: this._exchange,\n        id: ftxTrade.id !== null ? String(ftxTrade.id) : undefined,\n        price: ftxTrade.price,\n        amount: ftxTrade.size,\n        side: ftxTrade.side,\n        timestamp,\n        localTimestamp\n      }\n    }\n  }\n}\n\nexport const mapBookLevel = (level: FtxBookLevel) => {\n  const price = level[0]\n  const amount = level[1]\n\n  return { price, amount }\n}\n\nexport class FTXBookChangeMapper implements Mapper<'ftx' | 'ftx-us', BookChange> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: FtxTrades | FtxOrderBook) {\n    if (message.data == undefined) {\n      return false\n    }\n\n    return message.channel === 'orderbook'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'orderbook',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(ftxOrderBook: FtxOrderBook, localTimestamp: Date): IterableIterator<BookChange> {\n    const isEmptyUpdate = ftxOrderBook.type === 'update' && ftxOrderBook.data.bids.length === 0 && ftxOrderBook.data.asks.length === 0\n    if (isEmptyUpdate) {\n      return\n    }\n\n    const timestamp = new Date(ftxOrderBook.data.time * 1000)\n    timestamp.μs = Math.floor(ftxOrderBook.data.time * 1000000) % 1000\n\n    yield {\n      type: 'book_change',\n      symbol: ftxOrderBook.market,\n      exchange: this._exchange,\n      isSnapshot: ftxOrderBook.type === 'partial',\n      bids: ftxOrderBook.data.bids.map(mapBookLevel),\n      asks: ftxOrderBook.data.asks.map(mapBookLevel),\n      timestamp,\n      localTimestamp\n    }\n  }\n}\n\nexport class FTXDerivativeTickerMapper implements Mapper<'ftx', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: FTXInstrument) {\n    if (message.data == undefined) {\n      return false\n    }\n\n    return message.channel === 'instrument'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'instrument',\n        symbols: symbols !== undefined ? symbols.filter((s) => s.includes('/') === false) : undefined\n      } as const\n    ]\n  }\n\n  *map(message: FTXInstrument, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(message.market, this._exchange)\n    const { stats, info } = message.data\n\n    const currentFundingTimestamp = pendingTickerInfo.getCurrentFundingTimestamp()\n    const updatedFundingTimestamp = stats.nextFundingTime !== undefined ? new Date(stats.nextFundingTime) : undefined\n\n    // due to how instrument info messages are sourced (from REST API) it can sometimes return data that is stale (cached perhaps by the API)\n    // let's skip such messages\n    const isStaleInfo =\n      updatedFundingTimestamp !== undefined &&\n      currentFundingTimestamp !== undefined &&\n      currentFundingTimestamp.valueOf() > updatedFundingTimestamp.valueOf()\n\n    if (isStaleInfo) {\n      return\n    }\n\n    if (updatedFundingTimestamp !== undefined) {\n      pendingTickerInfo.updateFundingTimestamp(updatedFundingTimestamp)\n      pendingTickerInfo.updateFundingRate(stats.nextFundingRate)\n    }\n\n    pendingTickerInfo.updateIndexPrice(info.index)\n    pendingTickerInfo.updateMarkPrice(info.mark)\n    pendingTickerInfo.updateLastPrice(info.last)\n    pendingTickerInfo.updateOpenInterest(stats.openInterest)\n    pendingTickerInfo.updateTimestamp(localTimestamp)\n\n    if (pendingTickerInfo.hasChanged()) {\n      yield pendingTickerInfo.getSnapshot(localTimestamp)\n    }\n  }\n}\n\nexport class FTXLiquidationsMapper implements Mapper<'ftx', Liquidation> {\n  canHandle(message: FtxTrades | FtxOrderBook) {\n    if (message.data == undefined) {\n      return false\n    }\n\n    return message.channel === 'trades'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(ftxTrades: FtxTrades, localTimestamp: Date): IterableIterator<Liquidation> {\n    for (const ftxTrade of ftxTrades.data) {\n      if (ftxTrade.liquidation) {\n        const timestamp = new Date(ftxTrade.time)\n        timestamp.μs = parseμs(ftxTrade.time)\n\n        yield {\n          type: 'liquidation',\n          symbol: ftxTrades.market,\n          exchange: 'ftx',\n          id: ftxTrade.id !== null ? String(ftxTrade.id) : undefined,\n          price: ftxTrade.price,\n          amount: ftxTrade.size,\n          side: ftxTrade.side,\n          timestamp,\n          localTimestamp\n        }\n      }\n    }\n  }\n}\n\nexport class FTXBookTickerMapper implements Mapper<'ftx' | 'ftx-us', BookTicker> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: FTXTicker) {\n    if (message.data == undefined) {\n      return false\n    }\n\n    return message.channel === 'ticker'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'ticker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(ftxTicker: FTXTicker, localTimestamp: Date): IterableIterator<BookTicker> {\n    const timestamp = new Date(ftxTicker.data.time * 1000)\n    timestamp.μs = Math.floor(ftxTicker.data.time * 1000000) % 1000\n\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol: ftxTicker.market,\n      exchange: this._exchange,\n\n      askAmount: asNumberIfValid(ftxTicker.data.askSize),\n      askPrice: asNumberIfValid(ftxTicker.data.ask),\n\n      bidPrice: asNumberIfValid(ftxTicker.data.bid),\n      bidAmount: asNumberIfValid(ftxTicker.data.bidSize),\n      timestamp,\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\ntype FtxTrades = {\n  channel: 'trades'\n  market: string\n  type: 'update'\n  data: {\n    id: number | null\n    price: number\n    size: number\n    side: 'buy' | 'sell'\n    time: string\n    liquidation?: boolean\n  }[]\n}\n\ntype FtxBookLevel = [number, number]\n\ntype FtxOrderBook = {\n  channel: 'orderbook'\n  market: string\n  type: 'update' | 'partial'\n  data: { time: number; bids: FtxBookLevel[]; asks: FtxBookLevel[] }\n}\n\ntype FTXInstrument = {\n  channel: 'instrument'\n  market: string\n  type: 'update'\n  data: {\n    stats: {\n      nextFundingRate?: number\n      nextFundingTime?: string\n      openInterest: number\n    }\n    info: {\n      last: number\n      mark: number\n      index: number\n    }\n  }\n}\n\ntype FTXTicker = {\n  channel: 'ticker'\n  market: string\n  type: 'update'\n  data: { bid: number; ask: number; bidSize: number; askSize: number; last: number; time: number }\n}\n"
  },
  {
    "path": "src/mappers/gateio.ts",
    "content": "import { debug } from '../debug.ts'\nimport { CircularBuffer, fromMicroSecondsToDate, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, Exchange, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\nexport class GateIOV4OrderBookV2ChangeMapper implements Mapper<'gate-io', BookChange> {\n  constructor(protected readonly exchange: Exchange) {}\n\n  canHandle(message: GateV4OrderBookV2Message) {\n    return message.channel === 'spot.obu' && message.event === 'update'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'obu',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: GateV4OrderBookV2Message, localTimestamp: Date) {\n    const result = message.result\n    const symbol = this.extractSymbolFromStream(result.s)\n\n    const isSnapshot = result.full === true\n\n    const bookChange: BookChange = {\n      type: 'book_change',\n      symbol,\n      exchange: this.exchange,\n      isSnapshot,\n      bids: (result.b || []).map(this.mapBookLevel),\n      asks: (result.a || []).map(this.mapBookLevel),\n      timestamp: new Date(result.t),\n      localTimestamp\n    }\n\n    yield bookChange\n  }\n\n  protected mapBookLevel(level: [string, string]) {\n    const price = Number(level[0])\n    const amount = Number(level[1])\n    return { price, amount }\n  }\n\n  private extractSymbolFromStream(streamName: string): string {\n    const lastDotIndex = streamName.lastIndexOf('.')\n\n    return streamName.slice(3, lastDotIndex)\n  }\n}\n//v4\n\nexport class GateIOV4BookChangeMapper implements Mapper<'gate-io', BookChange> {\n  protected readonly symbolToDepthInfoMapping: {\n    [key: string]: LocalDepthInfo\n  } = {}\n\n  constructor(protected readonly exchange: Exchange, protected readonly ignoreBookSnapshotOverlapError: boolean) {}\n\n  canHandle(message: GateV4OrderBookUpdate | Gatev4OrderBookSnapshot) {\n    if (message.channel === undefined) {\n      return false\n    }\n    if (message.event !== 'update' && message.event !== 'snapshot') {\n      return false\n    }\n\n    return message.channel.endsWith('order_book_update')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'order_book_update',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: GateV4OrderBookUpdate | Gatev4OrderBookSnapshot, localTimestamp: Date) {\n    const symbol = message.event === 'snapshot' ? message.symbol : message.result.s\n\n    if (this.symbolToDepthInfoMapping[symbol] === undefined) {\n      this.symbolToDepthInfoMapping[symbol] = {\n        bufferedUpdates: new CircularBuffer<DepthData>(2000)\n      }\n    }\n\n    const symbolDepthInfo = this.symbolToDepthInfoMapping[symbol]\n    const snapshotAlreadyProcessed = symbolDepthInfo.snapshotProcessed\n\n    // first check if received message is snapshot and process it as such if it is\n    if (message.event === 'snapshot') {\n      // if we've already received 'manual' snapshot, ignore if there is another one\n      if (snapshotAlreadyProcessed) {\n        return\n      }\n      // produce snapshot book_change\n      const snapshotData = message.result\n\n      //  mark given symbol depth info that has snapshot processed\n      symbolDepthInfo.lastUpdateId = snapshotData.id\n      symbolDepthInfo.snapshotProcessed = true\n\n      // if there were any depth updates buffered, let's proccess those by adding to or updating the initial snapshot\n      for (const update of symbolDepthInfo.bufferedUpdates.items()) {\n        const bookChange = this.mapBookDepthUpdate(update, localTimestamp)\n        if (bookChange !== undefined) {\n          for (const bid of update.b) {\n            const matchingBid = snapshotData.bids.find((b) => b[0] === bid[0])\n            if (matchingBid !== undefined) {\n              matchingBid[1] = bid[1]\n            } else {\n              snapshotData.bids.push(bid)\n            }\n          }\n\n          for (const ask of update.a) {\n            const matchingAsk = snapshotData.asks.find((a) => a[0] === ask[0])\n            if (matchingAsk !== undefined) {\n              matchingAsk[1] = ask[1]\n            } else {\n              snapshotData.asks.push(ask)\n            }\n          }\n        }\n      }\n\n      // remove all buffered updates\n      symbolDepthInfo.bufferedUpdates.clear()\n\n      const bookChange: BookChange = {\n        type: 'book_change',\n        symbol,\n        exchange: this.exchange,\n        isSnapshot: true,\n        bids: snapshotData.bids.map(this.mapBookLevel),\n        asks: snapshotData.asks.map(this.mapBookLevel),\n        timestamp: new Date(snapshotData.update),\n        localTimestamp\n      }\n\n      yield bookChange\n    } else if (snapshotAlreadyProcessed) {\n      // snapshot was already processed let's map the message as normal book_change\n      const bookChange = this.mapBookDepthUpdate(message.result as DepthData, localTimestamp)\n      if (bookChange !== undefined) {\n        yield bookChange\n      }\n    } else {\n      const depthUpdate = message.result as DepthData\n\n      symbolDepthInfo.bufferedUpdates.append(depthUpdate)\n    }\n  }\n\n  protected mapBookDepthUpdate(depthUpdateData: DepthData, localTimestamp: Date): BookChange | undefined {\n    // we can safely assume here that depthContext and lastUpdateId aren't null here as this is method only works\n    // when we've already processed the snapshot\n    const depthContext = this.symbolToDepthInfoMapping[depthUpdateData.s]!\n    const lastUpdateId = depthContext.lastUpdateId!\n\n    // Drop any event where u is <= lastUpdateId in the snapshot\n    if (depthUpdateData.u <= lastUpdateId) {\n      return\n    }\n\n    // The first processed event should have U <= lastUpdateId+1 AND u >= lastUpdateId+1.\n    if (!depthContext.validatedFirstUpdate) {\n      // if there is new instrument added it can have empty book at first and that's normal\n      const bookSnapshotIsEmpty = lastUpdateId == -1\n\n      if ((depthUpdateData.U <= lastUpdateId + 1 && depthUpdateData.u >= lastUpdateId + 1) || bookSnapshotIsEmpty) {\n        depthContext.validatedFirstUpdate = true\n      } else {\n        const message = `Book depth snapshot has no overlap with first update, update ${JSON.stringify(\n          depthUpdateData\n        )}, lastUpdateId: ${lastUpdateId}, exchange ${this.exchange}`\n\n        if (this.ignoreBookSnapshotOverlapError) {\n          depthContext.validatedFirstUpdate = true\n          debug(message)\n        } else {\n          throw new Error(message)\n        }\n      }\n    }\n\n    return {\n      type: 'book_change',\n      symbol: depthUpdateData.s,\n      exchange: this.exchange,\n      isSnapshot: false,\n\n      bids: depthUpdateData.b.map(this.mapBookLevel),\n      asks: depthUpdateData.a.map(this.mapBookLevel),\n      timestamp: fromMicroSecondsToDate(depthUpdateData.t),\n      localTimestamp: localTimestamp\n    }\n  }\n\n  protected mapBookLevel(level: [string, string]) {\n    const price = Number(level[0])\n    const amount = Number(level[1])\n    return { price, amount }\n  }\n}\n\nexport class GateIOV4BookTickerMapper implements Mapper<'gate-io', BookTicker> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: GateV4BookTicker) {\n    if (message.channel === undefined) {\n      return false\n    }\n    if (message.event !== 'update') {\n      return false\n    }\n\n    return message.channel.endsWith('book_ticker')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'book_ticker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(bookTickerResponse: GateV4BookTicker, localTimestamp: Date) {\n    const gateBookTicker = bookTickerResponse.result\n\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol: gateBookTicker.s,\n      exchange: this._exchange,\n      askAmount: gateBookTicker.A !== undefined ? Number(gateBookTicker.A) : undefined,\n      askPrice: gateBookTicker.a !== undefined ? Number(gateBookTicker.a) : undefined,\n      bidPrice: gateBookTicker.b !== undefined ? Number(gateBookTicker.b) : undefined,\n      bidAmount: gateBookTicker.B !== undefined ? Number(gateBookTicker.B) : undefined,\n      timestamp: gateBookTicker.t !== undefined ? new Date(gateBookTicker.t) : localTimestamp,\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\nexport class GateIOV4TradesMapper implements Mapper<'gate-io', Trade> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: GateV4Trade) {\n    if (message.channel === undefined) {\n      return false\n    }\n    if (message.event !== 'update') {\n      return false\n    }\n\n    return message.channel.endsWith('trades')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(tradesMessage: GateV4Trade, localTimestamp: Date): IterableIterator<Trade> {\n    yield {\n      type: 'trade',\n      symbol: tradesMessage.result.currency_pair,\n      exchange: this._exchange,\n      id: tradesMessage.result.id.toString(),\n      price: Number(tradesMessage.result.price),\n      amount: Number(tradesMessage.result.amount),\n      side: tradesMessage.result.side == 'sell' ? 'sell' : 'buy',\n      timestamp: new Date(Number(tradesMessage.result.create_time_ms)),\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\n// v3 https://www.gate.io/docs/websocket/index.html\n\nexport class GateIOTradesMapper implements Mapper<'gate-io', Trade> {\n  private readonly _seenSymbols = new Set<string>()\n\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: any) {\n    return message.method === 'trades.update'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(tradesMessage: GateIOTrades, localTimestamp: Date): IterableIterator<Trade> {\n    const symbol = tradesMessage.params[0]\n\n    if (!tradesMessage.params[1]) {\n      return\n    }\n\n    // gate io sends trades from newest to oldest for some reason\n    for (const gateIOTrade of tradesMessage.params[1].reverse()) {\n      // always ignore first returned trade as it's a 'stale' trade, which has already been published before disconnect\n      if (this._seenSymbols.has(symbol) === false) {\n        this._seenSymbols.add(symbol)\n        break\n      }\n\n      const timestamp = new Date(gateIOTrade.time * 1000)\n      timestamp.μs = Math.floor(gateIOTrade.time * 1000000) % 1000\n      yield {\n        type: 'trade',\n        symbol,\n        exchange: this._exchange,\n        id: gateIOTrade.id.toString(),\n        price: Number(gateIOTrade.price),\n        amount: Number(gateIOTrade.amount),\n        side: gateIOTrade.type == 'sell' ? 'sell' : 'buy',\n        timestamp,\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nconst mapBookLevel = (level: GateIODepthLevel) => {\n  const price = Number(level[0])\n  const amount = Number(level[1])\n\n  return { price, amount }\n}\n\nexport class GateIOBookChangeMapper implements Mapper<'gate-io', BookChange> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: any) {\n    return message.method === 'depth.update'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'depth',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(depthMessage: GateIODepth, localTimestamp: Date): IterableIterator<BookChange> {\n    const symbol = depthMessage.params[2]\n    const isSnapshot = depthMessage.params[0]\n    const bids = Array.isArray(depthMessage.params[1].bids) ? depthMessage.params[1].bids : []\n    const asks = Array.isArray(depthMessage.params[1].asks) ? depthMessage.params[1].asks : []\n\n    const timestamp = depthMessage.params[1].current !== undefined ? new Date(depthMessage.params[1].current * 1000) : localTimestamp\n\n    yield {\n      type: 'book_change',\n      symbol,\n      exchange: this._exchange,\n      isSnapshot,\n      bids: bids.map(mapBookLevel),\n      asks: asks.map(mapBookLevel),\n      timestamp: timestamp,\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\ntype GateIOTrade = {\n  id: number\n  time: number\n  price: string\n  amount: string\n  type: 'sell' | 'buy'\n}\n\ntype GateIOTrades = {\n  method: 'trades.update'\n  params: [string, GateIOTrade[]]\n}\ntype GateIODepthLevel = [string, string]\n\ntype GateIODepth = {\n  method: 'depth.update'\n  params: [\n    boolean,\n    {\n      bids?: GateIODepthLevel[]\n      asks?: GateIODepthLevel[]\n      current: 1669860180.632\n      update: 1669860180.632\n    },\n    string\n  ]\n}\n\ntype GateV4Trade = {\n  time: 1682689046\n  time_ms: 1682689046133\n  channel: 'spot.trades'\n  event: 'update'\n  result: {\n    id: 5541729596\n    create_time: 1682689046\n    create_time_ms: '1682689046123.0'\n    side: 'sell'\n    currency_pair: 'SUSD_USDT'\n    amount: '8.5234'\n    price: '0.9782'\n  }\n}\n\ntype GateV4BookTicker = {\n  time: 1682689046\n  time_ms: 1682689046142\n  channel: 'spot.book_ticker'\n  event: 'update'\n  result: { t: 1682689046131; u: 517377894; s: 'ETC_ETH'; b: '0.010326'; B: '0.001'; a: '0.010366'; A: '10' }\n}\n\ntype Gatev4OrderBookSnapshot = {\n  channel: 'spot.order_book_update'\n  event: 'snapshot'\n  generated: true\n  symbol: '1ART_USDT'\n  result: {\n    id: 154857784\n    current: 1682689045318\n    update: 1682689045056\n    asks: [string, string][]\n    bids: [string, string][]\n  }\n}\n\ntype GateV4OrderBookUpdate = {\n  time: 1682689045\n  time_ms: 1682689045532\n  channel: 'spot.order_book_update'\n  event: 'update'\n  result: {\n    lastUpdateId: undefined\n    t: 1682689045424\n    e: 'depthUpdate'\n    E: 1682689045\n    s: '1ART_USDT'\n    U: 154857785\n    u: 154857785\n    b: [string, string][]\n    a: [string, string][]\n  }\n}\n\ntype LocalDepthInfo = {\n  bufferedUpdates: CircularBuffer<DepthData>\n  snapshotProcessed?: boolean\n  lastUpdateId?: number\n  validatedFirstUpdate?: boolean\n}\n\ntype DepthData = {\n  lastUpdateId: undefined\n  t: number\n  s: string\n  U: number\n  u: number\n  b: [string, string][]\n  a: [string, string][]\n}\n\ntype GateV4OrderBookV2Message = {\n  channel: 'spot.obu'\n  event: 'update'\n  time_ms: number\n  result: {\n    t: number\n    s: string\n    u: number\n    U?: number\n    full?: boolean\n    b?: [string, string][]\n    a?: [string, string][]\n  }\n}\n"
  },
  {
    "path": "src/mappers/gateiofutures.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, DerivativeTicker, Exchange, Trade, BookTicker } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\n// https://www.gate.io/docs/futures/ws/index.html\n\nexport class GateIOFuturesTradesMapper implements Mapper<'gate-io-futures', Trade> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: any) {\n    return message.channel === 'futures.trades' && message.event === 'update'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(tradesMessage: GateIOFuturesTrades, localTimestamp: Date): IterableIterator<Trade> {\n    for (const trade of tradesMessage.result) {\n      const timestamp = trade.create_time_ms !== undefined ? new Date(trade.create_time_ms) : new Date(trade.create_time * 1000)\n      const size = Number(trade.size)\n\n      yield {\n        type: 'trade',\n        symbol: trade.contract,\n        exchange: this._exchange,\n        id: trade.id.toString(),\n        price: Number(trade.price),\n        amount: Math.abs(size),\n        side: size < 0 ? 'sell' : 'buy',\n        timestamp,\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nconst mapBookLevel = (level: GateIOFuturesSnapshotLevel) => {\n  const price = Number(level.p)\n  const size = Number(level.s)\n\n  return { price, amount: Math.abs(size) }\n}\n\nexport class GateIOFuturesBookChangeMapper implements Mapper<'gate-io-futures', BookChange> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: GateIOFuturesOrderBookSnapshot | GateIOFuturesOrderBookUpdate) {\n    return message.channel === 'futures.order_book' && (message.event === 'all' || message.event === 'update')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'order_book',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(depthMessage: GateIOFuturesOrderBookSnapshot | GateIOFuturesOrderBookUpdate, localTimestamp: Date): IterableIterator<BookChange> {\n    if (depthMessage.event === 'all') {\n      if (depthMessage.result.t === 0) {\n        return\n      }\n      const timestamp =\n        depthMessage.time_ms !== undefined\n          ? new Date(depthMessage.time_ms)\n          : depthMessage.result.t !== undefined\n          ? new Date(depthMessage.result.t)\n          : new Date(depthMessage.time * 1000)\n\n      // snapshot\n      yield {\n        type: 'book_change',\n        symbol: depthMessage.result.contract,\n        exchange: this._exchange,\n        isSnapshot: true,\n        bids: depthMessage.result.bids.map(mapBookLevel),\n        asks: depthMessage.result.asks.map(mapBookLevel),\n        timestamp,\n        localTimestamp: localTimestamp\n      }\n    } else if (depthMessage.result.length > 0) {\n      // update\n      const timestamp = depthMessage.result[0].t !== undefined ? new Date(depthMessage.result[0].t) : new Date(depthMessage.time * 1000)\n\n      yield {\n        type: 'book_change',\n        symbol: depthMessage.result[0].c,\n        exchange: this._exchange,\n        isSnapshot: false,\n        bids: depthMessage.result.filter((l) => Number(l.s) >= 0).map(mapBookLevel),\n        asks: depthMessage.result.filter((l) => Number(l.s) <= 0).map(mapBookLevel),\n        timestamp,\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nexport class GateIOFuturesDerivativeTickerMapper implements Mapper<'gate-io-futures', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: GateIOFuturesTicker) {\n    return message.channel === 'futures.tickers' && message.event === 'update'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'tickers',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: GateIOFuturesTicker, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    const tickers = Array.isArray(message.result) ? message.result : [message.result]\n\n    for (const futuresTicker of tickers) {\n      if (futuresTicker.contract === undefined) {\n        return\n      }\n      const timestamp = message.time_ms !== undefined ? new Date(message.time_ms) : new Date(message.time * 1000)\n\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(futuresTicker.contract, 'gate-io-futures')\n\n      pendingTickerInfo.updateFundingRate(Number(futuresTicker.funding_rate))\n      pendingTickerInfo.updatePredictedFundingRate(Number(futuresTicker.funding_rate_indicative))\n      pendingTickerInfo.updateIndexPrice(Number(futuresTicker.index_price))\n      pendingTickerInfo.updateMarkPrice(Number(futuresTicker.mark_price))\n      pendingTickerInfo.updateLastPrice(Number(futuresTicker.last))\n      pendingTickerInfo.updateTimestamp(timestamp)\n\n      if (futuresTicker.total_size !== undefined) {\n        pendingTickerInfo.updateOpenInterest(Number(futuresTicker.total_size))\n      }\n\n      if (pendingTickerInfo.hasChanged()) {\n        yield pendingTickerInfo.getSnapshot(localTimestamp)\n      }\n    }\n  }\n}\n\nexport class GateIOFuturesBookTickerMapper implements Mapper<'gate-io-futures', BookTicker> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: any) {\n    return message.channel === 'futures.book_ticker' && message.event === 'update'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'book_ticker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(gateIoFuturesBookTickerMessage: GateIOFuturesBookTicker, localTimestamp: Date): IterableIterator<BookTicker> {\n    const gateIoFuturesBookTicker = gateIoFuturesBookTickerMessage.result\n    const askAmount = Number(gateIoFuturesBookTicker.A)\n    const bidAmount = Number(gateIoFuturesBookTicker.B)\n\n    if (gateIoFuturesBookTicker.t === 0) {\n      return\n    }\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol: gateIoFuturesBookTicker.s,\n      exchange: this._exchange,\n      askAmount: askAmount !== 0 ? askAmount : undefined,\n      askPrice: gateIoFuturesBookTicker.a !== '' ? Number(gateIoFuturesBookTicker.a) : undefined,\n      bidPrice: gateIoFuturesBookTicker.b !== '' ? Number(gateIoFuturesBookTicker.b) : undefined,\n      bidAmount: bidAmount !== 0 ? bidAmount : undefined,\n      timestamp: gateIoFuturesBookTicker.t !== undefined ? new Date(gateIoFuturesBookTicker.t) : localTimestamp,\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\ntype GateIOFuturesTrade = {\n  size: number | string\n  id: number\n  create_time: number\n  create_time_ms?: number\n  price: string\n  contract: string\n}\n\ntype GateIOFuturesTrades = {\n  time: number\n  channel: 'futures.trades'\n  event: 'update'\n\n  result: GateIOFuturesTrade[]\n}\n\ntype GateIOFuturesSnapshotLevel = { p: string; s: number | string }\n\ntype GateIOFuturesOrderBookSnapshot = {\n  time: number\n  channel: 'futures.order_book'\n  event: 'all'\n  time_ms: number | undefined\n  result: {\n    t?: number\n    contract: string\n    asks: GateIOFuturesSnapshotLevel[]\n    bids: GateIOFuturesSnapshotLevel[]\n  }\n}\n\ntype GateIOFuturesOrderBookUpdate = {\n  time: number\n  channel: 'futures.order_book'\n  event: 'update'\n  result: {\n    t?: number\n    p: string\n    s: number | string\n    c: string\n  }[]\n}\n\ntype GateIOFuturesTicker = {\n  time: number\n  time_ms?: number\n  channel: 'futures.tickers'\n  event: 'update'\n\n  result:\n    | [\n        {\n          contract: string\n          last: string\n          funding_rate: string\n          mark_price: string\n          index_price: string\n          funding_rate_indicative: string\n          total_size: string | undefined\n        }\n      ]\n    | {\n        contract: string\n        last: string\n        funding_rate: string\n        mark_price: string\n        index_price: string\n        funding_rate_indicative: string\n        total_size: string | undefined\n      }\n}\n\ntype GateIOFuturesBookTicker = {\n  id: null\n  time: 1648771200\n  channel: 'futures.book_ticker'\n  event: 'update'\n  error: null\n  result: { t: number; u: 3502782378; s: 'BTC_USD'; b: string; B: number | string; a: string; A: number | string }\n}\n"
  },
  {
    "path": "src/mappers/gemini.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\n// https://docs.gemini.com/websocket-api/#market-data-version-2\n\nexport const geminiTradesMapper: Mapper<'gemini', Trade> = {\n  canHandle(message: GeminiL2Updates | GeminiTrade) {\n    return message.type === 'trade'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      }\n    ]\n  },\n\n  *map(geminiTrade: GeminiTrade, localTimestamp: Date): IterableIterator<Trade> {\n    yield {\n      type: 'trade',\n      symbol: geminiTrade.symbol,\n      exchange: 'gemini',\n      id: String(geminiTrade.event_id),\n      price: Number(geminiTrade.price),\n      amount: Number(geminiTrade.quantity),\n      side: geminiTrade.side === 'buy' ? 'buy' : geminiTrade.side === 'sell' ? 'sell' : 'unknown',\n      timestamp: new Date(geminiTrade.timestamp),\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nconst mapBookLevel = (level: GeminiBookLevel) => {\n  const price = Number(level[1])\n  const amount = Number(level[2])\n\n  return { price, amount }\n}\n\nexport const geminiBookChangeMapper: Mapper<'gemini', BookChange> = {\n  canHandle(message: GeminiL2Updates | GeminiTrade) {\n    return message.type === 'l2_updates'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'l2_updates',\n        symbols\n      }\n    ]\n  },\n\n  *map(geminiL2Updates: GeminiL2Updates, localTimestamp: Date): IterableIterator<BookChange> {\n    yield {\n      type: 'book_change',\n      symbol: geminiL2Updates.symbol,\n      exchange: 'gemini',\n      isSnapshot: geminiL2Updates.auction_events !== undefined,\n      bids: geminiL2Updates.changes.filter((c) => c[0] === 'buy').map(mapBookLevel),\n      asks: geminiL2Updates.changes.filter((c) => c[0] === 'sell').map(mapBookLevel),\n\n      timestamp: localTimestamp,\n      localTimestamp\n    }\n  }\n}\n\ntype GeminiBookLevel = ['buy' | 'sell', string, string]\n\ntype GeminiL2Updates = {\n  type: 'l2_updates'\n  symbol: string\n  changes: GeminiBookLevel[]\n  auction_events: any[]\n}\n\ntype GeminiTrade = {\n  type: 'trade'\n  symbol: string\n  event_id: number\n  timestamp: number\n  price: string\n  quantity: string\n  side: 'sell' | 'buy'\n}\n"
  },
  {
    "path": "src/mappers/hitbtc.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\n// https://api.hitbtc.com/#socket-market-data\n\nexport const hitBtcTradesMapper: Mapper<'hitbtc', Trade> = {\n  canHandle(message: HitBtcTradesMessage) {\n    return message.method !== undefined && message.method === 'updateTrades'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'updateTrades',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: HitBtcTradesMessage, localTimestamp: Date): IterableIterator<Trade> {\n    for (const trade of message.params.data)\n      yield {\n        type: 'trade',\n        symbol: message.params.symbol,\n        exchange: 'hitbtc',\n        id: String(trade.id),\n        price: Number(trade.price),\n        amount: Number(trade.quantity),\n        side: trade.side,\n        timestamp: new Date(trade.timestamp),\n        localTimestamp: localTimestamp\n      }\n  }\n}\n\nconst mapBookLevel = (level: HitBtcBookLevel) => {\n  const price = Number(level.price)\n  const amount = Number(level.size)\n\n  return { price, amount }\n}\n\nexport const hitBtcBookChangeMapper: Mapper<'hitbtc', BookChange> = {\n  canHandle(message: HitBtcBookMessage) {\n    if (message.method === undefined) {\n      return false\n    }\n\n    return message.method === 'snapshotOrderbook' || message.method === 'updateOrderbook'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'snapshotOrderbook',\n        symbols\n      },\n      {\n        channel: 'updateOrderbook',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: HitBtcBookMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    yield {\n      type: 'book_change',\n      symbol: message.params.symbol,\n      exchange: 'hitbtc',\n      isSnapshot: message.method === 'snapshotOrderbook',\n      bids: message.params.bid.map(mapBookLevel),\n      asks: message.params.ask.map(mapBookLevel),\n\n      timestamp: new Date(message.params.timestamp),\n      localTimestamp\n    }\n  }\n}\n\ntype HitBtcMessage = {\n  method?: string\n}\n\ntype HitBtcTradesMessage = HitBtcMessage & {\n  method: 'updateTrades'\n  params: {\n    data: {\n      id: number\n      price: string\n      quantity: string\n      side: 'buy' | 'sell'\n      timestamp: string\n    }[]\n    symbol: string\n  }\n}\n\ntype HitBtcBookLevel = {\n  price: string\n  size: string\n}\n\ntype HitBtcBookMessage = HitBtcMessage & {\n  method: 'snapshotOrderbook' | 'updateOrderbook'\n  params: {\n    ask: HitBtcBookLevel[]\n    bid: HitBtcBookLevel[]\n    symbol: string\n    timestamp: string\n  }\n}\n"
  },
  {
    "path": "src/mappers/huobi.ts",
    "content": "import { asNumberIfValid, CircularBuffer, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Exchange, FilterForExchange, Liquidation, OptionSummary, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\n// https://huobiapi.github.io/docs/spot/v1/en/#websocket-market-data\n// https://github.com/huobiapi/API_Docs_en/wiki/WS_api_reference_en\n\nexport class HuobiTradesMapper\n  implements Mapper<'huobi' | 'huobi-dm' | 'huobi-dm-swap' | 'huobi-dm-linear-swap' | 'huobi-dm-options', Trade>\n{\n  constructor(private readonly _exchange: Exchange) {}\n  canHandle(message: HuobiDataMessage) {\n    if (message.ch === undefined) {\n      return false\n    }\n    return message.ch.endsWith('.trade.detail')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = normalizeSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: HuobiTradeDataMessage, localTimestamp: Date): IterableIterator<Trade> {\n    const symbol = message.ch.split('.')[1].toUpperCase()\n\n    for (const huobiTrade of message.tick.data) {\n      yield {\n        type: 'trade',\n        symbol,\n        exchange: this._exchange,\n        id: String(huobiTrade.tradeId !== undefined ? huobiTrade.tradeId : huobiTrade.id),\n        price: huobiTrade.price,\n        amount: huobiTrade.amount,\n        side: huobiTrade.direction === 'buy' ? 'buy' : huobiTrade.direction === 'sell' ? 'sell' : 'unknown',\n        timestamp: new Date(huobiTrade.ts),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nexport class HuobiBookChangeMapper\n  implements Mapper<'huobi' | 'huobi-dm' | 'huobi-dm-swap' | 'huobi-dm-linear-swap' | 'huobi-dm-options', BookChange>\n{\n  constructor(protected readonly _exchange: Exchange) {}\n\n  canHandle(message: HuobiDataMessage) {\n    if (message.ch === undefined) {\n      return false\n    }\n\n    return message.ch.includes('.depth.')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = normalizeSymbols(symbols)\n\n    return [\n      {\n        channel: 'depth',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: HuobiDepthDataMessage, localTimestamp: Date) {\n    const symbol = message.ch.split('.')[1].toUpperCase()\n    const isSnapshot = 'event' in message.tick ? message.tick.event === 'snapshot' : 'update' in message ? false : true\n    const data = message.tick\n    const bids = Array.isArray(data.bids) ? data.bids : []\n    const asks = Array.isArray(data.asks) ? data.asks : []\n    if (bids.length === 0 && asks.length === 0) {\n      return\n    }\n\n    yield {\n      type: 'book_change',\n      symbol,\n      exchange: this._exchange,\n      isSnapshot,\n      bids: bids.map(this._mapBookLevel),\n      asks: asks.map(this._mapBookLevel),\n      timestamp: new Date(message.ts),\n      localTimestamp: localTimestamp\n    } as const\n  }\n\n  private _mapBookLevel(level: HuobiBookLevel) {\n    return { price: level[0], amount: level[1] }\n  }\n}\n\nfunction isSnapshot(message: HuobiMBPDataMessage | HuobiMBPSnapshot): message is HuobiMBPSnapshot {\n  return 'rep' in message\n}\n\nexport class HuobiMBPBookChangeMapper implements Mapper<'huobi', BookChange> {\n  protected readonly symbolToMBPInfoMapping: {\n    [key: string]: MBPInfo\n  } = {}\n\n  constructor(protected readonly _exchange: Exchange) {}\n\n  canHandle(message: any) {\n    const channel = message.ch || message.rep\n    if (channel === undefined) {\n      return false\n    }\n\n    return channel.includes('.mbp.')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = normalizeSymbols(symbols)\n\n    return [\n      {\n        channel: 'mbp',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: HuobiMBPDataMessage | HuobiMBPSnapshot, localTimestamp: Date) {\n    const symbol = (isSnapshot(message) ? message.rep : message.ch).split('.')[1].toUpperCase()\n\n    if (this.symbolToMBPInfoMapping[symbol] === undefined) {\n      this.symbolToMBPInfoMapping[symbol] = {\n        bufferedUpdates: new CircularBuffer<HuobiMBPDataMessage>(20)\n      }\n    }\n\n    const mbpInfo = this.symbolToMBPInfoMapping[symbol]\n    const snapshotAlreadyProcessed = mbpInfo.snapshotProcessed\n\n    if (isSnapshot(message)) {\n      if (message.data == null) {\n        return\n      }\n\n      const snapshotBids = message.data.bids.map(this._mapBookLevel)\n      const snapshotAsks = message.data.asks.map(this._mapBookLevel)\n\n      // if there were any depth updates buffered, let's proccess those by adding to or updating the initial snapshot\n      // when prevSeqNum >= snapshot seqNum\n      for (const update of mbpInfo.bufferedUpdates.items()) {\n        if (update.tick.prevSeqNum < message.data.seqNum) {\n          continue\n        }\n\n        const bookChange = this._mapMBPUpdate(update, symbol, localTimestamp)\n        if (bookChange !== undefined) {\n          for (const bid of bookChange.bids) {\n            const matchingBid = snapshotBids.find((b) => b.price === bid.price)\n            if (matchingBid !== undefined) {\n              matchingBid.amount = bid.amount\n            } else {\n              snapshotBids.push(bid)\n            }\n          }\n\n          for (const ask of bookChange.asks) {\n            const matchingAsk = snapshotAsks.find((a) => a.price === ask.price)\n            if (matchingAsk !== undefined) {\n              matchingAsk.amount = ask.amount\n            } else {\n              snapshotAsks.push(ask)\n            }\n          }\n        }\n      }\n\n      mbpInfo.snapshotProcessed = true\n\n      yield {\n        type: 'book_change',\n        symbol,\n        exchange: this._exchange,\n        isSnapshot: true,\n        bids: snapshotBids,\n        asks: snapshotAsks,\n        timestamp: new Date(message.ts),\n        localTimestamp\n      } as const\n    } else {\n      mbpInfo.bufferedUpdates.append(message)\n\n      if (snapshotAlreadyProcessed) {\n        // snapshot was already processed let's map the mbp message as normal book_change\n        const update = this._mapMBPUpdate(message, symbol, localTimestamp)\n        if (update !== undefined) {\n          yield update\n        }\n      }\n    }\n  }\n\n  private _mapMBPUpdate(message: HuobiMBPDataMessage, symbol: string, localTimestamp: Date) {\n    const bids = Array.isArray(message.tick.bids) ? message.tick.bids : []\n    const asks = Array.isArray(message.tick.asks) ? message.tick.asks : []\n\n    if (bids.length === 0 && asks.length === 0) {\n      return\n    }\n\n    return {\n      type: 'book_change',\n      symbol,\n      exchange: this._exchange,\n      isSnapshot: false,\n      bids: bids.map(this._mapBookLevel),\n      asks: asks.map(this._mapBookLevel),\n      timestamp: new Date(message.ts),\n      localTimestamp: localTimestamp\n    } as const\n  }\n\n  private _mapBookLevel(level: HuobiBookLevel) {\n    return { price: level[0], amount: level[1] }\n  }\n}\n\nfunction normalizeSymbols(symbols?: string[]) {\n  if (symbols !== undefined) {\n    return symbols.map((s) => {\n      // huobi-dm and huobi-dm-swap expect symbols to be upper cased\n      if (s.includes('_') || s.includes('-')) {\n        return s.toUpperCase()\n      }\n      // huobi global expects lower cased symbols\n      return s.toLowerCase()\n    })\n  }\n  return\n}\n\nexport class HuobiDerivativeTickerMapper implements Mapper<'huobi-dm' | 'huobi-dm-swap' | 'huobi-dm-linear-swap', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: any) {\n    if (message.ch !== undefined) {\n      return message.ch.includes('.basis.') || message.ch.endsWith('.open_interest')\n    }\n\n    if (message.op === 'notify' && message.topic !== undefined) {\n      return message.topic.endsWith('.funding_rate')\n    }\n\n    return false\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    const filters: FilterForExchange['huobi-dm-swap'][] = [\n      {\n        channel: 'basis',\n        symbols\n      },\n      {\n        channel: 'open_interest',\n        symbols\n      }\n    ]\n\n    if (this._exchange === 'huobi-dm-swap' || this._exchange === 'huobi-dm-linear-swap') {\n      filters.push({\n        channel: 'funding_rate',\n        symbols\n      })\n    }\n\n    return filters\n  }\n\n  *map(\n    message: HuobiBasisDataMessage | HuobiFundingRateNotification | HuobiOpenInterestDataMessage,\n    localTimestamp: Date\n  ): IterableIterator<DerivativeTicker> {\n    if ('op' in message) {\n      // handle funding_rate notification message\n      const fundingInfo = message.data[0]\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(fundingInfo.contract_code, this._exchange)\n\n      pendingTickerInfo.updateFundingRate(Number(fundingInfo.funding_rate))\n      pendingTickerInfo.updateFundingTimestamp(new Date(Number(fundingInfo.settlement_time)))\n      pendingTickerInfo.updatePredictedFundingRate(Number(fundingInfo.estimated_rate))\n      pendingTickerInfo.updateTimestamp(new Date(message.ts))\n\n      if (pendingTickerInfo.hasChanged()) {\n        yield pendingTickerInfo.getSnapshot(localTimestamp)\n      }\n    } else {\n      const symbol = message.ch.split('.')[1]\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(symbol, this._exchange)\n\n      // basis message\n      if ('tick' in message) {\n        pendingTickerInfo.updateIndexPrice(Number(message.tick.index_price))\n        pendingTickerInfo.updateLastPrice(Number(message.tick.contract_price))\n      } else {\n        // open interest message\n        const openInterest = message.data[0]\n        pendingTickerInfo.updateOpenInterest(Number(openInterest.volume))\n      }\n\n      pendingTickerInfo.updateTimestamp(new Date(message.ts))\n\n      if (pendingTickerInfo.hasChanged()) {\n        yield pendingTickerInfo.getSnapshot(localTimestamp)\n      }\n    }\n  }\n}\n\nexport class HuobiLiquidationsMapper implements Mapper<'huobi-dm' | 'huobi-dm-swap' | 'huobi-dm-linear-swap', Liquidation> {\n  private readonly _contractCodeToSymbolMap: Map<string, string> = new Map()\n  private readonly _contractTypesSuffixes = { this_week: 'CW', next_week: 'NW', quarter: 'CQ', next_quarter: 'NQ' }\n\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: HuobiLiquidationOrder | HuobiContractInfo) {\n    if (message.op !== 'notify') {\n      return false\n    }\n\n    if (this._exchange === 'huobi-dm' && message.topic.endsWith('.contract_info')) {\n      this._updateContractCodeToSymbolMap(message as HuobiContractInfo)\n    }\n\n    return message.topic.endsWith('.liquidation_orders')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    if (this._exchange === 'huobi-dm') {\n      // huobi-dm for liquidations requires prividing different symbols which are indexes names for example 'BTC' or 'ETH'\n      // not futures names like 'BTC_NW'\n      // see https://huobiapi.github.io/docs/dm/v1/en/#subscribe-liquidation-order-data-no-authentication-sub\n\n      if (symbols !== undefined) {\n        symbols = symbols.map((s) => s.split('_')[0])\n      }\n\n      // we also need to subscribe to contract_info which will provide us information that will allow us to map\n      // liquidation message symbol and contract code to symbols we expect (BTC_NW etc)\n\n      return [\n        {\n          channel: 'liquidation_orders',\n          symbols\n        } as const,\n        {\n          channel: 'contract_info',\n          symbols\n        } as const\n      ]\n    } else {\n      // huobi dm swap liquidations messages provide correct symbol & contract code\n      return [\n        {\n          channel: 'liquidation_orders',\n          symbols\n        } as const\n      ]\n    }\n  }\n\n  private _updateContractCodeToSymbolMap(message: HuobiContractInfo) {\n    for (const item of message.data) {\n      this._contractCodeToSymbolMap.set(item.contract_code, `${item.symbol}_${this._contractTypesSuffixes[item.contract_type]}`)\n    }\n  }\n\n  *map(message: HuobiLiquidationOrder, localTimestamp: Date): IterableIterator<Liquidation> {\n    for (const huobiLiquidation of message.data) {\n      let symbol = huobiLiquidation.contract_code\n      // huobi-dm returns index name as a symbol, not future alias, so we need to map it here\n      if (this._exchange === 'huobi-dm') {\n        const futureAliasSymbol = this._contractCodeToSymbolMap.get(huobiLiquidation.contract_code)\n        if (futureAliasSymbol === undefined) {\n          continue\n        }\n\n        symbol = futureAliasSymbol\n      }\n\n      yield {\n        type: 'liquidation',\n        symbol,\n        exchange: this._exchange,\n        id: undefined,\n        price: huobiLiquidation.price,\n        amount: huobiLiquidation.volume,\n        side: huobiLiquidation.direction === 'buy' ? 'buy' : huobiLiquidation.direction === 'sell' ? 'sell' : 'unknown',\n        timestamp: new Date(huobiLiquidation.created_at),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nexport class HuobiOptionsSummaryMapper implements Mapper<'huobi-dm-options', OptionSummary> {\n  private readonly _indexPrices = new Map<string, number>()\n  private readonly _openInterest = new Map<string, number>()\n\n  canHandle(message: HuobiOpenInterestDataMessage | HuobiOptionsIndexMessage | HuobiOptionsMarketIndexMessage) {\n    if (message.ch === undefined) {\n      return false\n    }\n\n    return message.ch.endsWith('.open_interest') || message.ch.endsWith('.option_index') || message.ch.endsWith('.option_market_index')\n  }\n\n  getFilters(symbols?: string[]) {\n    const indexes =\n      symbols !== undefined\n        ? symbols.map((s) => {\n            const symbolParts = s.split('-')\n            return `${symbolParts[0]}-${symbolParts[1]}`\n          })\n        : undefined\n\n    return [\n      {\n        channel: `open_interest`,\n        symbols\n      } as const,\n      {\n        channel: `option_index`,\n        symbols: indexes\n      } as const,\n      {\n        channel: 'option_market_index',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(\n    message: HuobiOpenInterestDataMessage | HuobiOptionsIndexMessage | HuobiOptionsMarketIndexMessage,\n    localTimestamp: Date\n  ): IterableIterator<OptionSummary> | undefined {\n    if (message.ch.endsWith('.option_index')) {\n      const indexUpdateMessage = message as HuobiOptionsIndexMessage\n      this._indexPrices.set(indexUpdateMessage.data.symbol, indexUpdateMessage.data.index_price)\n\n      return\n    }\n\n    if (message.ch.endsWith('.open_interest')) {\n      const openInterestMessage = message as HuobiOptionsOpenInterestMessage\n      for (const ioMessage of openInterestMessage.data) {\n        this._openInterest.set(ioMessage.contract_code, ioMessage.volume)\n      }\n\n      return\n    }\n\n    const marketIndexMessage = message as HuobiOptionsMarketIndexMessage\n\n    const symbolParts = marketIndexMessage.data.contract_code.split('-')\n\n    const expirationDate = new Date(`20${symbolParts[2].slice(0, 2)}-${symbolParts[2].slice(2, 4)}-${symbolParts[2].slice(4, 6)}Z`)\n    expirationDate.setUTCHours(8)\n\n    const underlying = `${symbolParts[0]}-${symbolParts[1]}`\n\n    const lastUnderlyingPrice = this._indexPrices.get(underlying)\n    const openInterest = this._openInterest.get(marketIndexMessage.data.contract_code)\n\n    const optionSummary: OptionSummary = {\n      type: 'option_summary',\n      symbol: marketIndexMessage.data.contract_code,\n      exchange: 'huobi-dm-options',\n      optionType: marketIndexMessage.data.option_right_type === 'P' ? 'put' : 'call',\n      strikePrice: Number(symbolParts[4]),\n      expirationDate,\n\n      bestBidPrice: asNumberIfValid(marketIndexMessage.data.bid_one),\n\n      bestBidAmount: undefined,\n      bestBidIV: asNumberIfValid(marketIndexMessage.data.iv_bid_one),\n\n      bestAskPrice: asNumberIfValid(marketIndexMessage.data.ask_one),\n      bestAskAmount: undefined,\n      bestAskIV: asNumberIfValid(marketIndexMessage.data.iv_ask_one),\n\n      lastPrice: asNumberIfValid(marketIndexMessage.data.last_price),\n\n      openInterest,\n\n      markPrice: marketIndexMessage.data.mark_price > 0 ? asNumberIfValid(marketIndexMessage.data.mark_price) : undefined,\n      markIV: asNumberIfValid(marketIndexMessage.data.iv_mark_price),\n\n      delta: asNumberIfValid(marketIndexMessage.data.delta),\n      gamma: asNumberIfValid(marketIndexMessage.data.gamma),\n      vega: asNumberIfValid(marketIndexMessage.data.vega),\n      theta: asNumberIfValid(marketIndexMessage.data.theta),\n      rho: undefined,\n\n      underlyingPrice: lastUnderlyingPrice,\n      underlyingIndex: underlying,\n\n      timestamp: new Date(marketIndexMessage.ts),\n      localTimestamp: localTimestamp\n    }\n\n    yield optionSummary\n  }\n}\n\nexport class HuobiBookTickerMapper implements Mapper<'huobi' | 'huobi-dm' | 'huobi-dm-swap' | 'huobi-dm-linear-swap', BookTicker> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: HuobiDataMessage) {\n    if (message.ch === undefined) {\n      return false\n    }\n    return message.ch.endsWith('.bbo')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = normalizeSymbols(symbols)\n\n    return [\n      {\n        channel: 'bbo',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: HuobiBBOMessage, localTimestamp: Date): IterableIterator<BookTicker> {\n    const symbol = message.ch.split('.')[1].toUpperCase()\n\n    if ('quoteTime' in message.tick) {\n      if (message.tick.quoteTime === 0) {\n        return\n      }\n      yield {\n        type: 'book_ticker',\n        symbol,\n        exchange: this._exchange,\n\n        askAmount: asNumberIfValid(message.tick.askSize),\n        askPrice: asNumberIfValid(message.tick.ask),\n\n        bidPrice: asNumberIfValid(message.tick.bid),\n        bidAmount: asNumberIfValid(message.tick.bidSize),\n        timestamp: new Date(message.tick.quoteTime),\n        localTimestamp: localTimestamp\n      }\n    } else {\n      yield {\n        type: 'book_ticker',\n        symbol,\n        exchange: this._exchange,\n\n        askAmount: message.tick.ask !== undefined && message.tick.ask !== null ? asNumberIfValid(message.tick.ask[1]) : undefined,\n        askPrice: message.tick.ask !== undefined && message.tick.ask !== null ? asNumberIfValid(message.tick.ask[0]) : undefined,\n\n        bidPrice: message.tick.bid !== undefined && message.tick.bid !== null ? asNumberIfValid(message.tick.bid[0]) : undefined,\n        bidAmount: message.tick.bid !== undefined && message.tick.bid !== null ? asNumberIfValid(message.tick.bid[1]) : undefined,\n        timestamp: new Date(message.tick.ts),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\ntype HuobiDataMessage = {\n  ch: string\n}\n\ntype HuobiTradeDataMessage = HuobiDataMessage & {\n  tick: {\n    data: {\n      id: number\n      tradeId?: number\n      price: number\n      amount: number\n      direction: 'buy' | 'sell'\n      ts: number\n    }[]\n  }\n}\n\ntype HuobiBookLevel = [number, number]\n\ntype HuobiDepthDataMessage = HuobiDataMessage &\n  (\n    | {\n        update?: boolean\n        ts: number\n        tick: {\n          bids: HuobiBookLevel[] | null\n          asks: HuobiBookLevel[] | null\n        }\n      }\n    | {\n        ts: number\n        tick: {\n          bids?: HuobiBookLevel[] | null\n          asks?: HuobiBookLevel[] | null\n          event: 'snapshot' | 'update'\n        }\n      }\n  )\n\ntype HuobiBasisDataMessage = HuobiDataMessage & {\n  ts: number\n  tick: {\n    index_price: string\n    contract_price: string\n  }\n}\n\ntype HuobiFundingRateNotification = {\n  op: 'notify'\n  topic: string\n  ts: number\n  data: {\n    settlement_time: string\n    funding_rate: string\n    estimated_rate: string\n    contract_code: string\n  }[]\n}\n\ntype HuobiOpenInterestDataMessage = HuobiDataMessage & {\n  ts: number\n  data: {\n    volume: number\n  }[]\n}\n\ntype HuobiMBPDataMessage = HuobiDataMessage & {\n  ts: number\n  tick: {\n    bids?: HuobiBookLevel[] | null\n    asks?: HuobiBookLevel[] | null\n    seqNum: number\n    prevSeqNum: number\n  }\n}\n\ntype HuobiMBPSnapshot = {\n  ts: number\n  rep: string\n  data?: {\n    bids: HuobiBookLevel[]\n    asks: HuobiBookLevel[]\n    seqNum: number\n  }\n}\n\ntype MBPInfo = {\n  bufferedUpdates: CircularBuffer<HuobiMBPDataMessage>\n  snapshotProcessed?: boolean\n}\n\ntype HuobiLiquidationOrder = {\n  op: 'notify'\n  topic: string\n  ts: number\n  data: {\n    symbol: string\n    contract_code: string\n    direction: 'buy' | 'sell'\n    offset: string\n    volume: number\n    price: number\n    created_at: number\n  }[]\n}\n\ntype HuobiContractInfo = {\n  op: 'notify'\n  topic: string\n  ts: number\n  data: {\n    symbol: string\n    contract_code: string\n    contract_type: 'this_week' | 'next_week' | 'quarter' | 'next_quarter'\n  }[]\n}\n\ntype HuobiOptionsOpenInterestMessage = {\n  ch: 'market.BTC-USDT-210521-C-42000.open_interest'\n  generated: true\n  data: [\n    {\n      volume: 684.0\n      amount: 0.684\n      symbol: 'BTC'\n      contract_type: 'this_week'\n      contract_code: 'BTC-USDT-210521-C-42000'\n      trade_partition: 'USDT'\n      trade_amount: 0.792\n      trade_volume: 792\n      trade_turnover: 3237.37806\n    }\n  ]\n  ts: 1621296002336\n}\n\ntype HuobiOptionsIndexMessage = {\n  ch: 'market.BTC-USDT.option_index'\n  generated: true\n  data: { symbol: 'BTC-USDT'; index_price: 43501.21; index_ts: 1621295997270 }\n  ts: 1621296002825\n}\n\ntype HuobiOptionsMarketIndexMessage = {\n  ch: 'market.BTC-USDT-210521-P-42000.option_market_index'\n  generated: true\n  data: {\n    contract_code: 'BTC-USDT-210521-P-42000'\n    symbol: 'BTC'\n    iv_last_price: 1.62902357\n    iv_ask_one: 1.64869787\n    iv_bid_one: 1.13185884\n    iv_mark_price: 1.39190675\n    delta: -0.3704996546766173\n    gamma: 0.00006528\n    theta: -327.85540508\n    vega: 15.70293917\n    ask_one: 2000\n    bid_one: 1189.49\n    last_price: 1968.83\n    mark_price: 1594.739777491571343067\n    trade_partition: 'USDT'\n    contract_type: 'this_week'\n    option_right_type: 'P'\n  }\n  ts: 1621296002820\n}\n\ntype HuobiBBOMessage =\n  | {\n      ch: 'market.BTC-USDT.bbo'\n      ts: 1630454400495\n      tick: {\n        mrid: 64797873746\n        id: 1630454400\n        bid: [47176.5, 1] | undefined\n        ask: [47176.6, 9249] | undefined\n        ts: 1630454400495\n        version: 64797873746\n        ch: 'market.BTC-USDT.bbo'\n      }\n    }\n  | {\n      ch: 'market.btcusdt.bbo'\n      ts: 1575158404058\n      tick: {\n        seqId: 103273695595\n        ask: 7543.59\n        askSize: 2.323241\n        bid: 7541.16\n        bidSize: 0.002329\n        quoteTime: number\n        symbol: 'btcusdt'\n      }\n    }\n"
  },
  {
    "path": "src/mappers/hyperliquid.ts",
    "content": "import { BookChange, BookTicker, DerivativeTicker, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\nconst KILO_SYMBOLS = ['kPEPE', 'kSHIB', 'kBONK', 'kFLOKI', 'kLUNC', 'kDOGS', 'kNEIRO']\n\nfunction getApiSymbolId(symbol: string) {\n  const potentialKSymbol = symbol.charAt(0).toLowerCase() + symbol.slice(1)\n  if (KILO_SYMBOLS.includes(potentialKSymbol)) {\n    return potentialKSymbol\n  }\n\n  if (symbol.includes(':')) {\n    const [prefix, suffix] = symbol.split(':')\n    return prefix.toLowerCase() + ':' + suffix\n  }\n\n  return symbol\n}\nfunction getSymbols(symbols?: string[]) {\n  if (symbols !== undefined) {\n    return symbols.map(getApiSymbolId)\n  }\n  return\n}\nexport class HyperliquidTradesMapper implements Mapper<'hyperliquid', Trade> {\n  private readonly _seenSymbols = new Set<string>()\n\n  canHandle(message: HyperliquidTradeMessage) {\n    return message.channel === 'trades'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = getSymbols(symbols)\n\n    return [\n      {\n        channel: 'trades',\n        symbols\n      }\n    ]\n  }\n\n  *map(message: HyperliquidTradeMessage, localTimestamp: Date): IterableIterator<Trade> {\n    for (const hyperliquidTrade of message.data) {\n      if (this._seenSymbols.has(hyperliquidTrade.coin) === false) {\n        this._seenSymbols.add(hyperliquidTrade.coin)\n        break\n      }\n      yield {\n        type: 'trade',\n        symbol: hyperliquidTrade.coin.toUpperCase(),\n        exchange: 'hyperliquid',\n        id: hyperliquidTrade.tid.toString(),\n        price: Number(hyperliquidTrade.px),\n        amount: Number(hyperliquidTrade.sz),\n        side: hyperliquidTrade.side === 'B' ? 'buy' : 'sell',\n        timestamp: new Date(hyperliquidTrade.time),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nfunction mapHyperliquidLevel(level: HyperliquidWsLevel) {\n  return {\n    price: Number(level.px),\n    amount: Number(level.sz)\n  }\n}\nexport class HyperliquidBookChangeMapper implements Mapper<'hyperliquid', BookChange> {\n  canHandle(message: HyperliquidWsBookMessage) {\n    return message.channel === 'l2Book'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = getSymbols(symbols)\n\n    return [\n      {\n        channel: 'l2Book',\n        symbols\n      }\n    ]\n  }\n\n  *map(message: HyperliquidWsBookMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    yield {\n      type: 'book_change',\n      symbol: message.data.coin.toUpperCase(),\n      exchange: 'hyperliquid',\n      isSnapshot: true,\n      bids: (message.data.levels[0] ? message.data.levels[0] : []).map(mapHyperliquidLevel),\n      asks: (message.data.levels[1] ? message.data.levels[1] : []).map(mapHyperliquidLevel),\n      timestamp: new Date(message.data.time),\n      localTimestamp\n    }\n  }\n}\n\nexport class HyperliquidBookTickerMapper implements Mapper<'hyperliquid', BookTicker> {\n  canHandle(message: HyperliquidBboMessage) {\n    return message.channel === 'bbo'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = getSymbols(symbols)\n\n    return [\n      {\n        channel: 'bbo',\n        symbols\n      }\n    ]\n  }\n\n  *map(message: HyperliquidBboMessage, localTimestamp: Date): IterableIterator<BookTicker> {\n    const bbo = message.data.bbo\n    const bestBid = bbo[0]\n    const bestAsk = bbo[1]\n\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol: message.data.coin.toUpperCase(),\n      exchange: 'hyperliquid',\n      bidPrice: bestBid ? Number(bestBid.px) : undefined,\n      bidAmount: bestBid ? Number(bestBid.sz) : undefined,\n      askPrice: bestAsk ? Number(bestAsk.px) : undefined,\n      askAmount: bestAsk ? Number(bestAsk.sz) : undefined,\n      timestamp: new Date(message.data.time),\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\nexport class HyperliquidDerivativeTickerMapper implements Mapper<'hyperliquid', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: HyperliquidContextMessage) {\n    return message.channel === 'activeAssetCtx'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = getSymbols(symbols)\n\n    return [\n      {\n        channel: 'activeAssetCtx',\n        symbols\n      }\n    ]\n  }\n\n  *map(message: HyperliquidContextMessage, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    const symbol = message.data.coin.toUpperCase()\n\n    const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(symbol, 'hyperliquid')\n\n    if (message.data.ctx.funding !== undefined) {\n      pendingTickerInfo.updateFundingRate(Number(message.data.ctx.funding))\n    }\n\n    if (message.data.ctx.markPx !== undefined) {\n      pendingTickerInfo.updateMarkPrice(Number(message.data.ctx.markPx))\n    }\n\n    if (message.data.ctx.openInterest !== undefined) {\n      pendingTickerInfo.updateOpenInterest(Number(message.data.ctx.openInterest))\n    }\n\n    if (message.data.ctx.oraclePx !== undefined) {\n      pendingTickerInfo.updateIndexPrice(Number(message.data.ctx.oraclePx))\n    }\n\n    if (pendingTickerInfo.hasChanged()) {\n      pendingTickerInfo.updateTimestamp(localTimestamp)\n      yield pendingTickerInfo.getSnapshot(localTimestamp)\n    }\n  }\n}\n\ntype HyperliquidTradeMessage = {\n  channel: 'trades'\n  data: [\n    {\n      coin: string\n      side: string\n      px: string\n      sz: string\n      hash: string\n      time: number\n      tid: number // ID unique across all assets\n    }\n  ]\n}\n\ntype HyperliquidWsBookMessage = {\n  channel: 'l2Book'\n  data: {\n    coin: 'ATOM'\n    time: 1730160007687\n    levels: [HyperliquidWsLevel[], HyperliquidWsLevel[]]\n  }\n}\n\ntype HyperliquidWsLevel = {\n  px: string // price\n  sz: string // size\n  n: number // number of orders\n}\n\ntype HyperliquidBboMessage = {\n  channel: 'bbo'\n  data: {\n    coin: string\n    time: number\n    bbo: [HyperliquidWsLevel, HyperliquidWsLevel]\n  }\n}\n\ntype HyperliquidContextMessage = {\n  channel: 'activeAssetCtx'\n  data: {\n    coin: 'RENDER'\n    ctx: {\n      funding: '0.0000125'\n      openInterest: '231067.2'\n      prevDayPx: '4.8744'\n      dayNtlVlm: '387891.57092'\n      premium: '0.0'\n      oraclePx: '4.9185'\n      markPx: '4.919'\n      midPx: '4.9183'\n      impactPxs: ['4.9176', '4.9191']\n    }\n  }\n}\n"
  },
  {
    "path": "src/mappers/index.ts",
    "content": "import { ONE_SEC_IN_MS } from '../handy.ts'\nimport { BookChange, DerivativeTicker, Liquidation, OptionSummary, BookTicker, Trade } from '../types.ts'\nimport { AscendexBookChangeMapper, AscendexDerivativeTickerMapper, AscendexBookTickerMapper, AscendexTradesMapper } from './ascendex.ts'\nimport {\n  BinanceBookChangeMapper,\n  BinanceFuturesBookChangeMapper,\n  BinanceFuturesDerivativeTickerMapper,\n  BinanceLiquidationsMapper,\n  BinanceBookTickerMapper,\n  BinanceTradesMapper\n} from './binance.ts'\nimport { binanceDexBookChangeMapper, binanceDexBookTickerMapper, binanceDexTradesMapper } from './binancedex.ts'\nimport {\n  BinanceEuropeanOptionsBookChangeMapper,\n  BinanceEuropeanOptionsBookChangeMapperV2,\n  BinanceEuropeanOptionsBookTickerMapper,\n  BinanceEuropeanOptionsTradesMapper,\n  BinanceEuropeanOptionsTradesMapperV2,\n  BinanceEuropeanOptionSummaryMapper,\n  BinanceEuropeanOptionSummaryMapperV2\n} from './binanceeuropeanoptions.ts'\nimport {\n  BitfinexBookChangeMapper,\n  BitfinexDerivativeTickerMapper,\n  BitfinexLiquidationsMapper,\n  BitfinexBookTickerMapper,\n  BitfinexTradesMapper\n} from './bitfinex.ts'\nimport { BitflyerBookChangeMapper, bitflyerBookTickerMapper, bitflyerTradesMapper } from './bitflyer.ts'\nimport { BitgetBookChangeMapper, BitgetBookTickerMapper, BitgetDerivativeTickerMapper, BitgetTradesMapper } from './bitget.ts'\nimport {\n  BitmexBookChangeMapper,\n  BitmexDerivativeTickerMapper,\n  bitmexLiquidationsMapper,\n  bitmexBookTickerMapper,\n  bitmexTradesMapper\n} from './bitmex.ts'\nimport { BitnomialBookChangMapper, bitnomialTradesMapper } from './bitnomial.ts'\nimport { BitstampBookChangeMapper, bitstampTradesMapper } from './bitstamp.ts'\nimport { BlockchainComBookChangeMapper, BlockchainComTradesMapper } from './blockchaincom.ts'\nimport {\n  BybitBookChangeMapper,\n  BybitDerivativeTickerMapper,\n  BybitLiquidationsMapper,\n  BybitTradesMapper,\n  BybitV5AllLiquidationsMapper,\n  BybitV5BookChangeMapper,\n  BybitV5BookTickerMapper,\n  BybitV5DerivativeTickerMapper,\n  BybitV5LiquidationsMapper,\n  BybitV5OptionSummaryMapper,\n  BybitV5TradesMapper\n} from './bybit.ts'\nimport { BybitSpotBookChangeMapper, BybitSpotBookTickerMapper, BybitSpotTradesMapper } from './bybitspot.ts'\nimport { CoinbaseBookChangMapper, coinbaseBookTickerMapper, coinbaseTradesMapper } from './coinbase.ts'\nimport {\n  CoinbaseInternationalBookChangMapper,\n  coinbaseInternationalBookTickerMapper,\n  CoinbaseInternationalDerivativeTickerMapper,\n  coinbaseInternationalTradesMapper\n} from './coinbaseinternational.ts'\nimport { coinflexBookChangeMapper, CoinflexDerivativeTickerMapper, coinflexTradesMapper } from './coinflex.ts'\nimport {\n  CryptoComBookChangeMapper,\n  CryptoComBookTickerMapper,\n  CryptoComDerivativeTickerMapper,\n  CryptoComTradesMapper\n} from './cryptocom.ts'\nimport {\n  cryptofacilitiesBookChangeMapper,\n  CryptofacilitiesDerivativeTickerMapper,\n  cryptofacilitiesLiquidationsMapper,\n  cryptofacilitiesBookTickerMapper,\n  cryptofacilitiesTradesMapper\n} from './cryptofacilities.ts'\nimport { DeltaBookChangeMapper, DeltaBookTickerMapper, DeltaDerivativeTickerMapper, DeltaTradesMapper } from './delta.ts'\nimport {\n  deribitBookChangeMapper,\n  DeribitDerivativeTickerMapper,\n  deribitLiquidationsMapper,\n  DeribitOptionSummaryMapper,\n  deribitBookTickerMapper,\n  deribitTradesMapper\n} from './deribit.ts'\nimport { DydxBookChangeMapper, DydxDerivativeTickerMapper, DydxTradesMapper } from './dydx.ts'\nimport { DydxV4BookChangeMapper, DydxV4DerivativeTickerMapper, DydxV4LiquidationsMapper, DydxV4TradesMapper } from './dydxv4.ts'\nimport { FTXBookChangeMapper, FTXDerivativeTickerMapper, FTXLiquidationsMapper, FTXBookTickerMapper, FTXTradesMapper } from './ftx.ts'\nimport {\n  GateIOBookChangeMapper,\n  GateIOTradesMapper,\n  GateIOV4BookChangeMapper,\n  GateIOV4BookTickerMapper,\n  GateIOV4OrderBookV2ChangeMapper,\n  GateIOV4TradesMapper\n} from './gateio.ts'\nimport {\n  GateIOFuturesBookChangeMapper,\n  GateIOFuturesBookTickerMapper,\n  GateIOFuturesDerivativeTickerMapper,\n  GateIOFuturesTradesMapper\n} from './gateiofutures.ts'\nimport { geminiBookChangeMapper, geminiTradesMapper } from './gemini.ts'\nimport { hitBtcBookChangeMapper, hitBtcTradesMapper } from './hitbtc.ts'\nimport {\n  HuobiBookChangeMapper,\n  HuobiDerivativeTickerMapper,\n  HuobiLiquidationsMapper,\n  HuobiMBPBookChangeMapper,\n  HuobiOptionsSummaryMapper,\n  HuobiBookTickerMapper,\n  HuobiTradesMapper\n} from './huobi.ts'\nimport {\n  HyperliquidBookChangeMapper,\n  HyperliquidBookTickerMapper,\n  HyperliquidDerivativeTickerMapper,\n  HyperliquidTradesMapper\n} from './hyperliquid.ts'\nimport { krakenBookChangeMapper, krakenBookTickerMapper, krakenTradesMapper } from './kraken.ts'\nimport { KucoinBookChangeMapper, KucoinBookTickerMapper, KucoinTradesMapper } from './kucoin.ts'\nimport {\n  KucoinFuturesBookChangeMapper,\n  KucoinFuturesBookTickerMapper,\n  KucoinFuturesDerivativeTickerMapper,\n  KucoinFuturesTradesMapper\n} from './kucoinfutures.ts'\nimport { Mapper } from './mapper.ts'\nimport {\n  OkexBookChangeMapper,\n  OkexBookTickerMapper,\n  OkexDerivativeTickerMapper,\n  OkexLiquidationsMapper,\n  OkexOptionSummaryMapper,\n  OkexTradesMapper,\n  OkexV5BookChangeMapper,\n  OkexV5BookTickerMapper,\n  OkexV5DerivativeTickerMapper,\n  OkexV5LiquidationsMapper,\n  OkexV5OptionSummaryMapper,\n  OkexV5TradesMapper\n} from './okex.ts'\nimport { OkexSpreadsBookChangeMapper, OkexSpreadsBookTickerMapper, OkexSpreadsTradesMapper } from './okexspreads.ts'\nimport { phemexBookChangeMapper, PhemexDerivativeTickerMapper, phemexTradesMapper } from './phemex.ts'\nimport { PoloniexBookChangeMapper, PoloniexTradesMapper, PoloniexV2BookChangeMapper, PoloniexV2TradesMapper } from './poloniex.ts'\nimport { SerumBookChangeMapper, SerumBookTickerMapper, SerumTradesMapper } from './serum.ts'\nimport { UpbitBookChangeMapper, UpbitTradesMapper } from './upbit.ts'\nimport { WooxBookChangeMapper, WooxBookTickerMapper, WooxDerivativeTickerMapper, wooxTradesMapper } from './woox.ts'\n\nexport * from './mapper.ts'\n\nconst THREE_MINUTES_IN_MS = 3 * 60 * ONE_SEC_IN_MS\n\nconst isRealTime = (date: Date) => {\n  if (process.env.__NO_REAL_TIME__) {\n    return false\n  }\n  return date.valueOf() + THREE_MINUTES_IN_MS > new Date().valueOf()\n}\n\nconst OKEX_V5_API_SWITCH_DATE = new Date('2021-12-23T00:00:00.000Z')\nconst OKEX_V5_TBT_BOOK_TICKER_RELEASE_DATE = new Date('2022-05-06T00:00:00.000Z')\nconst shouldUseOkexV5Mappers = (localTimestamp: Date) => {\n  return isRealTime(localTimestamp) || localTimestamp.valueOf() >= OKEX_V5_API_SWITCH_DATE.valueOf()\n}\n\nconst canUseOkexTbtBookTicker = (localTimestamp: Date) => {\n  return isRealTime(localTimestamp) || localTimestamp.valueOf() >= OKEX_V5_TBT_BOOK_TICKER_RELEASE_DATE.valueOf()\n}\n\nconst POLONIEX_V2_API_SWITCH_DATE = new Date('2022-08-02T00:00:00.000Z')\n\nconst shouldUsePoloniexV2Mappers = (localTimestamp: Date) => {\n  return isRealTime(localTimestamp) || localTimestamp.valueOf() >= POLONIEX_V2_API_SWITCH_DATE.valueOf()\n}\n\n// see https://status.tardis.dev/incidents/ryjyv8tgdgkj\nconst shouldUseOKXPublicBooksChannel = (localTimestamp: Date) => {\n  return (\n    localTimestamp.valueOf() >= new Date('2023-02-25T00:00:00.000Z').valueOf() &&\n    localTimestamp.valueOf() < new Date('2023-03-09T00:00:00.000Z').valueOf()\n  )\n}\n\nconst shouldIgnoreBookSnapshotOverlap = (date: Date) => {\n  if (process.env.IGNORE_BOOK_SNAPSHOT_OVERLAP_ERROR) {\n    return true\n  }\n\n  return isRealTime(date) === false\n}\n\nconst BYBIT_V5_API_SWITCH_DATE = new Date('2023-04-05T00:00:00.000Z')\n\nconst BYBIT_V5_API_ALL_LIQUIDATION_SUPPORT_DATE = new Date('2025-02-26T00:00:00.000Z')\n\nconst shouldUseBybitV5Mappers = (localTimestamp: Date) => {\n  return isRealTime(localTimestamp) || localTimestamp.valueOf() >= BYBIT_V5_API_SWITCH_DATE.valueOf()\n}\n\nconst shouldUseBybitAllLiquidationFeed = (localTimestamp: Date) => {\n  return isRealTime(localTimestamp) || localTimestamp.valueOf() >= BYBIT_V5_API_ALL_LIQUIDATION_SUPPORT_DATE.valueOf()\n}\n\nconst OKCOIN_V5_API_SWITCH_DATE = new Date('2023-04-27T00:00:00.000Z')\nconst shouldUseOkcoinV5Mappers = (localTimestamp: Date) => {\n  return isRealTime(localTimestamp) || localTimestamp.valueOf() >= OKCOIN_V5_API_SWITCH_DATE.valueOf()\n}\n\nconst GATE_IO_V4_API_SWITCH_DATE = new Date('2023-04-29T00:00:00.000Z')\nconst GATE_IO_V4_ORDER_BOOK_V2_SWITCH_DATE = new Date('2025-08-01T00:00:00.000Z')\n\nconst shouldUseGateIOV4Mappers = (localTimestamp: Date) => {\n  return isRealTime(localTimestamp) || localTimestamp.valueOf() >= GATE_IO_V4_API_SWITCH_DATE.valueOf()\n}\n\nconst shouldUseGateIOV4OrderBookV2Mappers = (localTimestamp: Date) => {\n  return isRealTime(localTimestamp) || localTimestamp.valueOf() >= GATE_IO_V4_ORDER_BOOK_V2_SWITCH_DATE.valueOf()\n}\n\nconst shouldUseCFRelativeFunding = (localTimestamp: Date) => {\n  return isRealTime(localTimestamp) || localTimestamp.valueOf() >= new Date('2022-09-29T00:00:00.000Z').valueOf()\n}\n\nconst shouldUseOKXTradesAllChannel = (localTimestamp: Date) => {\n  if (process.env.OKX_USE_TRADES_CHANNEL) {\n    return false\n  }\n\n  return isRealTime(localTimestamp) || localTimestamp.valueOf() >= new Date('2023-10-19T00:00:00.000Z').valueOf()\n}\n\nconst BINANCE_EUROPEAN_OPTIONS_V2_API_SWITCH_DATE = new Date('2025-12-17T00:00:00.000Z')\n\nconst shouldUseBinanceEuropeanOptionsV2Mappers = (localTimestamp: Date) => {\n  return isRealTime(localTimestamp) || localTimestamp.valueOf() >= BINANCE_EUROPEAN_OPTIONS_V2_API_SWITCH_DATE.valueOf()\n}\n\nconst tradesMappers = {\n  bitmex: () => bitmexTradesMapper,\n  binance: () => new BinanceTradesMapper('binance'),\n  'binance-us': () => new BinanceTradesMapper('binance-us'),\n  'binance-jersey': () => new BinanceTradesMapper('binance-jersey'),\n  'binance-futures': () => new BinanceTradesMapper('binance-futures'),\n  'binance-delivery': () => new BinanceTradesMapper('binance-delivery'),\n  'binance-dex': () => binanceDexTradesMapper,\n  bitfinex: () => new BitfinexTradesMapper('bitfinex'),\n  'bitfinex-derivatives': () => new BitfinexTradesMapper('bitfinex-derivatives'),\n  bitflyer: () => bitflyerTradesMapper,\n  bitstamp: () => bitstampTradesMapper,\n  coinbase: () => coinbaseTradesMapper,\n  cryptofacilities: () => cryptofacilitiesTradesMapper,\n  deribit: () => deribitTradesMapper,\n  ftx: () => new FTXTradesMapper('ftx'),\n  'ftx-us': () => new FTXTradesMapper('ftx-us'),\n  gemini: () => geminiTradesMapper,\n  kraken: () => krakenTradesMapper,\n  okex: (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5TradesMapper('okex', shouldUseOKXTradesAllChannel(localTimestamp))\n      : new OkexTradesMapper('okex', 'spot'),\n\n  'okex-futures': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5TradesMapper('okex-futures', shouldUseOKXTradesAllChannel(localTimestamp))\n      : new OkexTradesMapper('okex-futures', 'futures'),\n\n  'okex-swap': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5TradesMapper('okex-swap', shouldUseOKXTradesAllChannel(localTimestamp))\n      : new OkexTradesMapper('okex-swap', 'swap'),\n\n  'okex-options': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5TradesMapper('okex-options', shouldUseOKXTradesAllChannel(localTimestamp))\n      : new OkexTradesMapper('okex-options', 'option'),\n\n  huobi: () => new HuobiTradesMapper('huobi'),\n  'huobi-dm': () => new HuobiTradesMapper('huobi-dm'),\n  'huobi-dm-swap': () => new HuobiTradesMapper('huobi-dm-swap'),\n  'huobi-dm-linear-swap': () => new HuobiTradesMapper('huobi-dm-linear-swap'),\n  'huobi-dm-options': () => new HuobiTradesMapper('huobi-dm-options'),\n  bybit: (localTimestamp: Date) =>\n    shouldUseBybitV5Mappers(localTimestamp) ? new BybitV5TradesMapper('bybit') : new BybitTradesMapper('bybit'),\n  okcoin: (localTimestamp: Date) =>\n    shouldUseOkcoinV5Mappers(localTimestamp) ? new OkexV5TradesMapper('okcoin', false) : new OkexTradesMapper('okcoin', 'spot'),\n  hitbtc: () => hitBtcTradesMapper,\n  phemex: () => phemexTradesMapper,\n  delta: (localTimestamp: Date) => new DeltaTradesMapper(localTimestamp.valueOf() >= new Date('2020-10-14').valueOf()),\n  'gate-io': (localTimestamp: Date) =>\n    shouldUseGateIOV4Mappers(localTimestamp) ? new GateIOV4TradesMapper('gate-io') : new GateIOTradesMapper('gate-io'),\n  'gate-io-futures': () => new GateIOFuturesTradesMapper('gate-io-futures'),\n  poloniex: (localTimestamp: Date) =>\n    shouldUsePoloniexV2Mappers(localTimestamp) ? new PoloniexV2TradesMapper() : new PoloniexTradesMapper(),\n  coinflex: () => coinflexTradesMapper,\n  upbit: () => new UpbitTradesMapper(),\n  ascendex: () => new AscendexTradesMapper(),\n  dydx: () => new DydxTradesMapper(),\n  'dydx-v4': () => new DydxV4TradesMapper(),\n  serum: () => new SerumTradesMapper('serum'),\n  'star-atlas': () => new SerumTradesMapper('star-atlas'),\n  mango: () => new SerumTradesMapper('mango'),\n  'bybit-spot': (localTimestamp: Date) =>\n    shouldUseBybitV5Mappers(localTimestamp) ? new BybitV5TradesMapper('bybit-spot') : new BybitSpotTradesMapper('bybit-spot'),\n  'crypto-com': () => new CryptoComTradesMapper('crypto-com'),\n  kucoin: () => new KucoinTradesMapper('kucoin'),\n  'kucoin-futures': () => new KucoinFuturesTradesMapper(),\n  bitnomial: () => bitnomialTradesMapper,\n  'woo-x': () => wooxTradesMapper,\n  'blockchain-com': () => new BlockchainComTradesMapper(),\n  'bybit-options': () => new BybitV5TradesMapper('bybit-options'),\n  'binance-european-options': (localTimestamp: Date) =>\n    shouldUseBinanceEuropeanOptionsV2Mappers(localTimestamp)\n      ? new BinanceEuropeanOptionsTradesMapperV2()\n      : new BinanceEuropeanOptionsTradesMapper(),\n  'okex-spreads': () => new OkexSpreadsTradesMapper(),\n  bitget: () => new BitgetTradesMapper('bitget'),\n  'bitget-futures': () => new BitgetTradesMapper('bitget-futures'),\n  'coinbase-international': () => coinbaseInternationalTradesMapper,\n  hyperliquid: () => new HyperliquidTradesMapper()\n}\n\nconst bookChangeMappers = {\n  bitmex: () => new BitmexBookChangeMapper(),\n  binance: (localTimestamp: Date) => new BinanceBookChangeMapper('binance', shouldIgnoreBookSnapshotOverlap(localTimestamp)),\n  'binance-us': (localTimestamp: Date) => new BinanceBookChangeMapper('binance-us', shouldIgnoreBookSnapshotOverlap(localTimestamp)),\n  'binance-jersey': (localTimestamp: Date) =>\n    new BinanceBookChangeMapper('binance-jersey', shouldIgnoreBookSnapshotOverlap(localTimestamp)),\n  'binance-futures': (localTimestamp: Date) =>\n    new BinanceFuturesBookChangeMapper('binance-futures', shouldIgnoreBookSnapshotOverlap(localTimestamp)),\n  'binance-delivery': (localTimestamp: Date) =>\n    new BinanceFuturesBookChangeMapper('binance-delivery', shouldIgnoreBookSnapshotOverlap(localTimestamp)),\n  'binance-dex': () => binanceDexBookChangeMapper,\n  bitfinex: () => new BitfinexBookChangeMapper('bitfinex'),\n  'bitfinex-derivatives': () => new BitfinexBookChangeMapper('bitfinex-derivatives'),\n  bitflyer: () => new BitflyerBookChangeMapper(),\n  bitstamp: () => new BitstampBookChangeMapper(),\n  coinbase: () => new CoinbaseBookChangMapper(),\n  cryptofacilities: () => cryptofacilitiesBookChangeMapper,\n  deribit: () => deribitBookChangeMapper,\n  ftx: () => new FTXBookChangeMapper('ftx'),\n  'ftx-us': () => new FTXBookChangeMapper('ftx-us'),\n  gemini: () => geminiBookChangeMapper,\n  kraken: () => krakenBookChangeMapper,\n  okex: (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5BookChangeMapper('okex', isRealTime(localTimestamp) || shouldUseOKXPublicBooksChannel(localTimestamp))\n      : new OkexBookChangeMapper('okex', 'spot', localTimestamp.valueOf() >= new Date('2020-04-10').valueOf()),\n  'okex-futures': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5BookChangeMapper('okex-futures', isRealTime(localTimestamp) || shouldUseOKXPublicBooksChannel(localTimestamp))\n      : new OkexBookChangeMapper('okex-futures', 'futures', localTimestamp.valueOf() >= new Date('2019-12-05').valueOf()),\n\n  'okex-swap': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5BookChangeMapper('okex-swap', isRealTime(localTimestamp) || shouldUseOKXPublicBooksChannel(localTimestamp))\n      : new OkexBookChangeMapper('okex-swap', 'swap', localTimestamp.valueOf() >= new Date('2020-02-08').valueOf()),\n  'okex-options': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5BookChangeMapper('okex-options', isRealTime(localTimestamp) || shouldUseOKXPublicBooksChannel(localTimestamp))\n      : new OkexBookChangeMapper('okex-options', 'option', localTimestamp.valueOf() >= new Date('2020-02-08').valueOf()),\n\n  huobi: (localTimestamp: Date) =>\n    localTimestamp.valueOf() >= new Date('2020-07-03').valueOf()\n      ? new HuobiMBPBookChangeMapper('huobi')\n      : new HuobiBookChangeMapper('huobi'),\n\n  'huobi-dm': () => new HuobiBookChangeMapper('huobi-dm'),\n  'huobi-dm-swap': () => new HuobiBookChangeMapper('huobi-dm-swap'),\n  'huobi-dm-linear-swap': () => new HuobiBookChangeMapper('huobi-dm-linear-swap'),\n  'huobi-dm-options': () => new HuobiBookChangeMapper('huobi-dm-options'),\n  'bybit-spot': (localTimestamp: Date) =>\n    shouldUseBybitV5Mappers(localTimestamp) ? new BybitV5BookChangeMapper('bybit-spot', 50) : new BybitSpotBookChangeMapper('bybit-spot'),\n  bybit: (localTimestamp: Date) =>\n    shouldUseBybitV5Mappers(localTimestamp) ? new BybitV5BookChangeMapper('bybit', 50) : new BybitBookChangeMapper('bybit', false),\n  okcoin: (localTimestamp: Date) =>\n    shouldUseOkcoinV5Mappers(localTimestamp)\n      ? new OkexV5BookChangeMapper('okcoin', true)\n      : new OkexBookChangeMapper('okcoin', 'spot', localTimestamp.valueOf() >= new Date('2020-02-13').valueOf()),\n  hitbtc: () => hitBtcBookChangeMapper,\n  phemex: () => phemexBookChangeMapper,\n  delta: (localTimestamp: Date) => new DeltaBookChangeMapper(localTimestamp.valueOf() >= new Date('2023-04-01').valueOf()),\n  'gate-io': (localTimestamp: Date) =>\n    shouldUseGateIOV4OrderBookV2Mappers(localTimestamp)\n      ? new GateIOV4OrderBookV2ChangeMapper('gate-io')\n      : shouldUseGateIOV4Mappers(localTimestamp)\n      ? new GateIOV4BookChangeMapper('gate-io', isRealTime(localTimestamp) == false)\n      : new GateIOBookChangeMapper('gate-io'),\n  'gate-io-futures': () => new GateIOFuturesBookChangeMapper('gate-io-futures'),\n  poloniex: (localTimestamp: Date) =>\n    shouldUsePoloniexV2Mappers(localTimestamp) ? new PoloniexV2BookChangeMapper() : new PoloniexBookChangeMapper(),\n  coinflex: () => coinflexBookChangeMapper,\n  upbit: () => new UpbitBookChangeMapper(),\n  ascendex: () => new AscendexBookChangeMapper(),\n  dydx: () => new DydxBookChangeMapper(),\n  'dydx-v4': () => new DydxV4BookChangeMapper(),\n  serum: () => new SerumBookChangeMapper('serum'),\n  'star-atlas': () => new SerumBookChangeMapper('star-atlas'),\n  mango: () => new SerumBookChangeMapper('mango'),\n  'crypto-com': () => new CryptoComBookChangeMapper('crypto-com'),\n  kucoin: (localTimestamp: Date) => new KucoinBookChangeMapper('kucoin', isRealTime(localTimestamp) === false),\n  'kucoin-futures': (localTimestamp: Date) => new KucoinFuturesBookChangeMapper(isRealTime(localTimestamp) === false),\n  bitnomial: () => new BitnomialBookChangMapper(),\n  'woo-x': () => new WooxBookChangeMapper(),\n  'blockchain-com': () => new BlockchainComBookChangeMapper(),\n  'bybit-options': () => new BybitV5BookChangeMapper('bybit-options', 25),\n  'binance-european-options': (localTimestamp: Date) =>\n    shouldUseBinanceEuropeanOptionsV2Mappers(localTimestamp)\n      ? new BinanceEuropeanOptionsBookChangeMapperV2()\n      : new BinanceEuropeanOptionsBookChangeMapper(),\n  'okex-spreads': () => new OkexSpreadsBookChangeMapper(),\n  bitget: () => new BitgetBookChangeMapper('bitget'),\n  'bitget-futures': () => new BitgetBookChangeMapper('bitget-futures'),\n  'coinbase-international': () => new CoinbaseInternationalBookChangMapper(),\n  hyperliquid: () => new HyperliquidBookChangeMapper()\n}\n\nconst derivativeTickersMappers = {\n  bitmex: () => new BitmexDerivativeTickerMapper(),\n  'binance-futures': () => new BinanceFuturesDerivativeTickerMapper('binance-futures'),\n  'binance-delivery': () => new BinanceFuturesDerivativeTickerMapper('binance-delivery'),\n  'bitfinex-derivatives': () => new BitfinexDerivativeTickerMapper(),\n  cryptofacilities: (localTimestamp: Date) => new CryptofacilitiesDerivativeTickerMapper(shouldUseCFRelativeFunding(localTimestamp)),\n  deribit: () => new DeribitDerivativeTickerMapper(),\n  'okex-futures': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5DerivativeTickerMapper('okex-futures')\n      : new OkexDerivativeTickerMapper('okex-futures'),\n\n  'okex-swap': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp) ? new OkexV5DerivativeTickerMapper('okex-swap') : new OkexDerivativeTickerMapper('okex-swap'),\n\n  bybit: (localTimestamp: Date) =>\n    shouldUseBybitV5Mappers(localTimestamp) ? new BybitV5DerivativeTickerMapper() : new BybitDerivativeTickerMapper(),\n  phemex: () => new PhemexDerivativeTickerMapper(),\n  ftx: () => new FTXDerivativeTickerMapper('ftx'),\n  delta: (localTimestamp: Date) => new DeltaDerivativeTickerMapper(localTimestamp.valueOf() >= new Date('2020-10-14').valueOf()),\n  'huobi-dm': () => new HuobiDerivativeTickerMapper('huobi-dm'),\n  'huobi-dm-swap': () => new HuobiDerivativeTickerMapper('huobi-dm-swap'),\n  'huobi-dm-linear-swap': () => new HuobiDerivativeTickerMapper('huobi-dm-linear-swap'),\n  'gate-io-futures': () => new GateIOFuturesDerivativeTickerMapper(),\n  coinflex: () => new CoinflexDerivativeTickerMapper(),\n  ascendex: () => new AscendexDerivativeTickerMapper(),\n  dydx: () => new DydxDerivativeTickerMapper(),\n  'dydx-v4': () => new DydxV4DerivativeTickerMapper(),\n  'crypto-com': () => new CryptoComDerivativeTickerMapper('crypto-com'),\n  'woo-x': () => new WooxDerivativeTickerMapper(),\n  'kucoin-futures': () => new KucoinFuturesDerivativeTickerMapper(),\n  'bitget-futures': () => new BitgetDerivativeTickerMapper(),\n  'coinbase-international': () => new CoinbaseInternationalDerivativeTickerMapper(),\n  hyperliquid: () => new HyperliquidDerivativeTickerMapper()\n}\n\nconst optionsSummaryMappers = {\n  deribit: () => new DeribitOptionSummaryMapper(),\n  'okex-options': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp) ? new OkexV5OptionSummaryMapper() : new OkexOptionSummaryMapper(),\n  'huobi-dm-options': () => new HuobiOptionsSummaryMapper(),\n  'bybit-options': () => new BybitV5OptionSummaryMapper(),\n  'binance-european-options': (localTimestamp: Date) =>\n    shouldUseBinanceEuropeanOptionsV2Mappers(localTimestamp)\n      ? new BinanceEuropeanOptionSummaryMapperV2()\n      : new BinanceEuropeanOptionSummaryMapper()\n}\n\nconst liquidationsMappers = {\n  ftx: () => new FTXLiquidationsMapper(),\n  bitmex: () => bitmexLiquidationsMapper,\n  deribit: () => deribitLiquidationsMapper,\n  'binance-futures': () => new BinanceLiquidationsMapper('binance-futures'),\n  'binance-delivery': () => new BinanceLiquidationsMapper('binance-delivery'),\n  'bitfinex-derivatives': () => new BitfinexLiquidationsMapper('bitfinex-derivatives'),\n  cryptofacilities: () => cryptofacilitiesLiquidationsMapper,\n  'huobi-dm': () => new HuobiLiquidationsMapper('huobi-dm'),\n  'dydx-v4': () => new DydxV4LiquidationsMapper(),\n  'huobi-dm-swap': () => new HuobiLiquidationsMapper('huobi-dm-swap'),\n  'huobi-dm-linear-swap': () => new HuobiLiquidationsMapper('huobi-dm-linear-swap'),\n  bybit: (localTimestamp: Date) =>\n    shouldUseBybitV5Mappers(localTimestamp)\n      ? shouldUseBybitAllLiquidationFeed(localTimestamp)\n        ? new BybitV5AllLiquidationsMapper('bybit')\n        : new BybitV5LiquidationsMapper('bybit')\n      : new BybitLiquidationsMapper('bybit'),\n  'okex-futures': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5LiquidationsMapper('okex-futures')\n      : new OkexLiquidationsMapper('okex-futures', 'futures'),\n  'okex-swap': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp) ? new OkexV5LiquidationsMapper('okex-swap') : new OkexLiquidationsMapper('okex-swap', 'swap')\n}\n\nconst bookTickersMappers = {\n  binance: () => new BinanceBookTickerMapper('binance'),\n  'binance-futures': () => new BinanceBookTickerMapper('binance-futures'),\n  'binance-delivery': () => new BinanceBookTickerMapper('binance-delivery'),\n  'binance-us': () => new BinanceBookTickerMapper('binance-us'),\n  ascendex: () => new AscendexBookTickerMapper(),\n  'binance-dex': () => binanceDexBookTickerMapper,\n  bitfinex: () => new BitfinexBookTickerMapper('bitfinex'),\n  'bitfinex-derivatives': () => new BitfinexBookTickerMapper('bitfinex-derivatives'),\n  bitflyer: () => bitflyerBookTickerMapper,\n  bitmex: () => bitmexBookTickerMapper,\n  coinbase: () => coinbaseBookTickerMapper,\n  cryptofacilities: () => cryptofacilitiesBookTickerMapper,\n  deribit: () => deribitBookTickerMapper,\n  ftx: () => new FTXBookTickerMapper('ftx'),\n  'ftx-us': () => new FTXBookTickerMapper('ftx-us'),\n  huobi: () => new HuobiBookTickerMapper('huobi'),\n  'huobi-dm': () => new HuobiBookTickerMapper('huobi-dm'),\n  'huobi-dm-swap': () => new HuobiBookTickerMapper('huobi-dm-swap'),\n  'huobi-dm-linear-swap': () => new HuobiBookTickerMapper('huobi-dm-linear-swap'),\n  kraken: () => krakenBookTickerMapper,\n  okex: (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5BookTickerMapper('okex', canUseOkexTbtBookTicker(localTimestamp))\n      : new OkexBookTickerMapper('okex', 'spot'),\n\n  'okex-futures': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5BookTickerMapper('okex-futures', canUseOkexTbtBookTicker(localTimestamp))\n      : new OkexBookTickerMapper('okex-futures', 'futures'),\n\n  'okex-swap': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5BookTickerMapper('okex-swap', canUseOkexTbtBookTicker(localTimestamp))\n      : new OkexBookTickerMapper('okex-swap', 'swap'),\n\n  'okex-options': (localTimestamp: Date) =>\n    shouldUseOkexV5Mappers(localTimestamp)\n      ? new OkexV5BookTickerMapper('okex-options', canUseOkexTbtBookTicker(localTimestamp))\n      : new OkexBookTickerMapper('okex-options', 'option'),\n\n  okcoin: (localTimestamp: Date) =>\n    shouldUseOkcoinV5Mappers(localTimestamp) ? new OkexV5BookTickerMapper('okcoin', true) : new OkexBookTickerMapper('okcoin', 'spot'),\n  serum: () => new SerumBookTickerMapper('serum'),\n  'star-atlas': () => new SerumBookTickerMapper('star-atlas'),\n  mango: () => new SerumBookTickerMapper('mango'),\n  'gate-io-futures': () => new GateIOFuturesBookTickerMapper('gate-io-futures'),\n  'bybit-spot': (localTimestamp: Date) =>\n    shouldUseBybitV5Mappers(localTimestamp) ? new BybitV5BookTickerMapper('bybit-spot') : new BybitSpotBookTickerMapper('bybit-spot'),\n  'crypto-com': () => new CryptoComBookTickerMapper('crypto-com'),\n  kucoin: () => new KucoinBookTickerMapper('kucoin'),\n  'woo-x': () => new WooxBookTickerMapper(),\n  delta: () => new DeltaBookTickerMapper(),\n  bybit: () => new BybitV5BookTickerMapper('bybit'),\n  'gate-io': () => new GateIOV4BookTickerMapper('gate-io'),\n  'okex-spreads': () => new OkexSpreadsBookTickerMapper(),\n  'kucoin-futures': () => new KucoinFuturesBookTickerMapper(),\n  bitget: () => new BitgetBookTickerMapper('bitget'),\n  'bitget-futures': () => new BitgetBookTickerMapper('bitget-futures'),\n  'coinbase-international': () => coinbaseInternationalBookTickerMapper,\n  hyperliquid: () => new HyperliquidBookTickerMapper(),\n  'binance-european-options': () => new BinanceEuropeanOptionsBookTickerMapper()\n}\n\nexport const normalizeTrades = <T extends keyof typeof tradesMappers>(exchange: T, localTimestamp: Date): Mapper<T, Trade> => {\n  const createTradesMapper = tradesMappers[exchange]\n\n  if (createTradesMapper === undefined) {\n    throw new Error(`normalizeTrades: ${exchange} not supported`)\n  }\n\n  return createTradesMapper(localTimestamp) as Mapper<T, Trade>\n}\n\nexport const normalizeBookChanges = <T extends keyof typeof bookChangeMappers>(\n  exchange: T,\n  localTimestamp: Date\n): Mapper<T, BookChange> => {\n  const createBookChangesMapper = bookChangeMappers[exchange]\n\n  if (createBookChangesMapper === undefined) {\n    throw new Error(`normalizeBookChanges: ${exchange} not supported`)\n  }\n\n  return createBookChangesMapper(localTimestamp) as Mapper<T, BookChange>\n}\n\nexport const normalizeDerivativeTickers = <T extends keyof typeof derivativeTickersMappers>(\n  exchange: T,\n  localTimestamp: Date\n): Mapper<T, DerivativeTicker> => {\n  const createDerivativeTickerMapper = derivativeTickersMappers[exchange]\n\n  if (createDerivativeTickerMapper === undefined) {\n    throw new Error(`normalizeDerivativeTickers: ${exchange} not supported`)\n  }\n\n  return createDerivativeTickerMapper(localTimestamp) as any\n}\n\nexport const normalizeOptionsSummary = <T extends keyof typeof optionsSummaryMappers>(\n  exchange: T,\n  localTimestamp: Date\n): Mapper<T, OptionSummary> => {\n  const createOptionSummaryMapper = optionsSummaryMappers[exchange]\n\n  if (createOptionSummaryMapper === undefined) {\n    throw new Error(`normalizeOptionsSummary: ${exchange} not supported`)\n  }\n\n  return createOptionSummaryMapper(localTimestamp) as any\n}\n\nexport const normalizeLiquidations = <T extends keyof typeof liquidationsMappers>(\n  exchange: T,\n  localTimestamp: Date\n): Mapper<T, Liquidation> => {\n  const createLiquidationsMapper = liquidationsMappers[exchange]\n\n  if (createLiquidationsMapper === undefined) {\n    throw new Error(`normalizeLiquidations: ${exchange} not supported`)\n  }\n\n  return createLiquidationsMapper(localTimestamp) as any\n}\n\nexport const normalizeBookTickers = <T extends keyof typeof bookTickersMappers>(\n  exchange: T,\n  localTimestamp: Date\n): Mapper<T, BookTicker> => {\n  const createTickerMapper = bookTickersMappers[exchange]\n\n  if (createTickerMapper === undefined) {\n    throw new Error(`normalizeBookTickers: ${exchange} not supported`)\n  }\n\n  return createTickerMapper(localTimestamp) as any\n}\n"
  },
  {
    "path": "src/mappers/kraken.ts",
    "content": "import { asNumberIfValid, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\n// https://www.kraken.com/features/websocket-api\n\nexport const krakenTradesMapper: Mapper<'kraken', Trade> = {\n  canHandle(message: KrakenTrades) {\n    if (!Array.isArray(message)) {\n      return false\n    }\n\n    const channel = message[message.length - 2] as string\n    return channel === 'trade'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: KrakenTrades, localTimestamp: Date): IterableIterator<Trade> {\n    const [_, trades, __, symbol] = message\n\n    for (const [price, amount, time, side] of trades) {\n      const timeExchange = Number(time)\n      const timestamp = new Date(timeExchange * 1000)\n      timestamp.μs = Math.floor(timeExchange * 1000000) % 1000\n\n      yield {\n        type: 'trade',\n        symbol,\n        exchange: 'kraken',\n        id: undefined,\n        price: Number(price),\n        amount: Number(amount),\n        side: side === 'b' ? 'buy' : 'sell',\n        timestamp,\n        localTimestamp\n      }\n    }\n  }\n}\n\nconst mapBookLevel = (level: KrakenBookLevel) => {\n  const [price, amount] = level\n\n  return { price: Number(price), amount: Number(amount) }\n}\n\nconst getLatestTimestamp = (bids: KrakenBookLevel[], asks: KrakenBookLevel[]): Date => {\n  const timestampsSorted = [...bids.map((b) => Number(b[2])), ...asks.map((b) => Number(b[2]))].sort()\n  const lastBookUpdateTime = timestampsSorted[timestampsSorted.length - 1]\n\n  const timestamp = new Date(lastBookUpdateTime * 1000)\n  timestamp.μs = Math.floor(lastBookUpdateTime * 1000000) % 1000\n\n  return timestamp\n}\n\nexport const krakenBookChangeMapper: Mapper<'kraken', BookChange> = {\n  canHandle(message: KrakenBookSnapshot | KrakenBookUpdate) {\n    if (!Array.isArray(message)) {\n      return false\n    }\n\n    const channel = message[message.length - 2] as string\n    return channel.startsWith('book')\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'book',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: KrakenBookSnapshot | KrakenBookUpdate, localTimestamp: Date): IterableIterator<BookChange> {\n    if ('as' in message[1]) {\n      // we've got snapshot message\n      const [_, { as, bs }, __, symbol] = message\n\n      yield {\n        type: 'book_change',\n        symbol: symbol,\n        exchange: 'kraken',\n        isSnapshot: true,\n\n        bids: bs.map(mapBookLevel),\n        asks: as.map(mapBookLevel),\n        timestamp: getLatestTimestamp(as, bs),\n        localTimestamp: localTimestamp\n      }\n    } else {\n      // we've got update message\n      const symbol = message[message.length - 1] as string\n      const asks = 'a' in message[1] ? message[1].a : []\n      const bids = 'b' in message[1] ? message[1].b : typeof message[2] !== 'string' && 'b' in message[2] ? message[2].b : []\n\n      yield {\n        type: 'book_change',\n        symbol,\n        exchange: 'kraken',\n        isSnapshot: false,\n\n        bids: bids.map(mapBookLevel),\n        asks: asks.map(mapBookLevel),\n        timestamp: getLatestTimestamp(asks, bids),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nexport const krakenBookTickerMapper: Mapper<'kraken', BookTicker> = {\n  canHandle(message: KrakenSpread) {\n    if (!Array.isArray(message)) {\n      return false\n    }\n\n    const channel = message[message.length - 2] as string\n    return channel === 'spread'\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'spread',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: KrakenSpread, localTimestamp: Date): IterableIterator<BookTicker> {\n    const [bid, ask, time, bidVolume, askVolume] = message[1]\n    const timeExchange = Number(time)\n\n    if (timeExchange === 0) {\n      return\n    }\n    const timestamp = new Date(timeExchange * 1000)\n    timestamp.μs = Math.floor(timeExchange * 1000000) % 1000\n\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol: message[3],\n      exchange: 'kraken',\n\n      askAmount: asNumberIfValid(askVolume),\n      askPrice: asNumberIfValid(ask),\n\n      bidPrice: asNumberIfValid(bid),\n      bidAmount: asNumberIfValid(bidVolume),\n      timestamp,\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\ntype KrakenTrades = [number, [string, string, string, 's' | 'b', string, string][], string, string]\ntype KrakenBookLevel = [string, string, string]\ntype KrakenBookSnapshot = [\n  number,\n  {\n    as: KrakenBookLevel[]\n    bs: KrakenBookLevel[]\n  },\n  string,\n  string\n]\n\ntype KrakenBookUpdate =\n  | [\n      number,\n\n      (\n        | {\n            a: KrakenBookLevel[]\n          }\n        | {\n            b: KrakenBookLevel[]\n          }\n      ),\n      string,\n      string\n    ]\n  | [\n      number,\n\n      {\n        a: KrakenBookLevel[]\n      },\n      {\n        b: KrakenBookLevel[]\n      },\n      string,\n      string\n    ]\n\ntype KrakenSpread = [\n  325,\n  [bid: '43770.20000', ask: '43770.30000', timestamp: '1633053779.916349', bidVolume: '0.00917717', askVolume: '0.31670440'],\n  'spread',\n  'XBT/USD'\n]\n"
  },
  {
    "path": "src/mappers/kucoin.ts",
    "content": "import { debug } from '../debug.ts'\nimport { CircularBuffer, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, Exchange, BookTicker, Trade, BookPriceLevel } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\nexport class KucoinTradesMapper implements Mapper<'kucoin', Trade> {\n  constructor(private readonly _exchange: Exchange) {}\n  canHandle(message: KucoinTradeMessage) {\n    return message.type === 'message' && message.topic.startsWith('/market/match')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'market/match',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: KucoinTradeMessage, localTimestamp: Date): IterableIterator<Trade> {\n    const kucoinTrade = message.data\n\n    const timestamp = new Date(Number(kucoinTrade.time.slice(0, 13)))\n\n    timestamp.μs = Number(kucoinTrade.time.slice(13, 16))\n\n    yield {\n      type: 'trade',\n      symbol: kucoinTrade.symbol,\n      exchange: this._exchange,\n      id: kucoinTrade.tradeId,\n      price: Number(kucoinTrade.price),\n      amount: Number(kucoinTrade.size),\n      side: kucoinTrade.side === 'sell' ? 'sell' : 'buy',\n      timestamp,\n      localTimestamp\n    }\n  }\n}\n\nexport class KucoinBookChangeMapper implements Mapper<'kucoin', BookChange> {\n  protected readonly symbolToDepthInfoMapping: {\n    [key: string]: LocalDepthInfo\n  } = {}\n\n  constructor(protected readonly _exchange: Exchange, private readonly ignoreBookSnapshotOverlapError: boolean) {}\n\n  canHandle(message: KucoinLevel2SnapshotMessage | KucoinLevel2UpdateMessage) {\n    return message.type === 'message' && message.topic.startsWith('/market/level2')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'market/level2',\n        symbols\n      } as const,\n      {\n        channel: 'market/level2Snapshot',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: KucoinLevel2SnapshotMessage | KucoinLevel2UpdateMessage, localTimestamp: Date) {\n    const symbol = message.topic.split(':')[1]\n\n    if (this.symbolToDepthInfoMapping[symbol] === undefined) {\n      this.symbolToDepthInfoMapping[symbol] = {\n        bufferedUpdates: new CircularBuffer<KucoinLevel2UpdateMessage>(2000)\n      }\n    }\n\n    const symbolDepthInfo = this.symbolToDepthInfoMapping[symbol]\n    const snapshotAlreadyProcessed = symbolDepthInfo.snapshotProcessed\n\n    // first check if received message is snapshot and process it as such if it is\n    if (message.subject === 'trade.l2Snapshot') {\n      // if we've already received 'manual' snapshot, ignore if there is another one\n      if (snapshotAlreadyProcessed) {\n        return\n      }\n      // produce snapshot book_change\n      const kucoinSnapshotData = message.data\n      if (!kucoinSnapshotData.asks) {\n        kucoinSnapshotData.asks = []\n      }\n      if (!kucoinSnapshotData.bids) {\n        kucoinSnapshotData.bids = []\n      }\n\n      //  mark given symbol depth info that has snapshot processed\n      symbolDepthInfo.lastUpdateId = Number(kucoinSnapshotData.sequence)\n      symbolDepthInfo.snapshotProcessed = true\n\n      // if there were any depth updates buffered, let's proccess those by adding to or updating the initial snapshot\n      for (const update of symbolDepthInfo.bufferedUpdates.items()) {\n        const bookChange = this.mapBookDepthUpdate(update, localTimestamp)\n        if (bookChange !== undefined) {\n          for (const bid of update.data.changes.bids) {\n            if (bid[0] == '0') {\n              continue\n            }\n            const matchingBid = kucoinSnapshotData.bids.find((b) => b[0] === bid[0])\n            if (matchingBid !== undefined) {\n              matchingBid[1] = bid[1]\n            } else {\n              kucoinSnapshotData.bids.push([bid[0], bid[1]])\n            }\n          }\n\n          for (const ask of update.data.changes.asks) {\n            if (ask[0] == '0') {\n              continue\n            }\n\n            const matchingAsk = kucoinSnapshotData.asks.find((a) => a[0] === ask[0])\n            if (matchingAsk !== undefined) {\n              matchingAsk[1] = ask[1]\n            } else {\n              kucoinSnapshotData.asks.push([ask[0], ask[1]])\n            }\n          }\n        }\n      }\n\n      // remove all buffered updates\n      symbolDepthInfo.bufferedUpdates.clear()\n\n      const bookChange: BookChange = {\n        type: 'book_change',\n        symbol,\n        exchange: this._exchange,\n        isSnapshot: true,\n        bids: kucoinSnapshotData.bids.map(this.mapBookLevel),\n        asks: kucoinSnapshotData.asks.map(this.mapBookLevel),\n        timestamp: localTimestamp,\n        localTimestamp\n      }\n\n      yield bookChange\n    } else if (snapshotAlreadyProcessed) {\n      // snapshot was already processed let's map the message as normal book_change\n      const bookChange = this.mapBookDepthUpdate(message, localTimestamp)\n      if (bookChange !== undefined) {\n        yield bookChange\n      }\n    } else {\n      symbolDepthInfo.bufferedUpdates.append(message)\n    }\n  }\n\n  protected mapBookDepthUpdate(l2UpdateMessage: KucoinLevel2UpdateMessage, localTimestamp: Date): BookChange | undefined {\n    // we can safely assume here that depthContext and lastUpdateId aren't null here as this is method only works\n    // when we've already processed the snapshot\n    const depthContext = this.symbolToDepthInfoMapping[l2UpdateMessage.data.symbol]!\n    const lastUpdateId = depthContext.lastUpdateId!\n\n    // Drop any event where sequenceEnd is <= lastUpdateId in the snapshot\n    if (l2UpdateMessage.data.sequenceEnd <= lastUpdateId) {\n      return\n    }\n\n    // The first processed event should have sequenceStart <= lastUpdateId+1 AND sequenceEnd >= lastUpdateId+1.\n    if (!depthContext.validatedFirstUpdate) {\n      // if there is new instrument added it can have empty book at first and that's normal\n      const bookSnapshotIsEmpty = lastUpdateId == -1 || lastUpdateId == 0\n\n      if (\n        (l2UpdateMessage.data.sequenceStart <= lastUpdateId + 1 && l2UpdateMessage.data.sequenceEnd >= lastUpdateId + 1) ||\n        bookSnapshotIsEmpty\n      ) {\n        depthContext.validatedFirstUpdate = true\n      } else {\n        const message = `Book depth snapshot has no overlap with first update, update ${JSON.stringify(\n          l2UpdateMessage\n        )}, lastUpdateId: ${lastUpdateId}, exchange ${this._exchange}`\n        if (this.ignoreBookSnapshotOverlapError) {\n          depthContext.validatedFirstUpdate = true\n          debug(message)\n        } else {\n          throw new Error(message)\n        }\n      }\n    }\n    const bids = l2UpdateMessage.data.changes.bids.map(this.mapBookLevel).filter(this.nonZeroLevels)\n    const asks = l2UpdateMessage.data.changes.asks.map(this.mapBookLevel).filter(this.nonZeroLevels)\n\n    if (bids.length === 0 && asks.length === 0) {\n      return\n    }\n\n    const timestamp = l2UpdateMessage.data.time !== undefined ? new Date(l2UpdateMessage.data.time) : localTimestamp\n    return {\n      type: 'book_change',\n      symbol: l2UpdateMessage.data.symbol,\n      exchange: this._exchange,\n      isSnapshot: false,\n      bids,\n      asks,\n      timestamp: timestamp,\n      localTimestamp: localTimestamp\n    }\n  }\n\n  private mapBookLevel(level: [string, string, string?]) {\n    const price = Number(level[0])\n    const amount = Number(level[1])\n    return { price, amount }\n  }\n\n  private nonZeroLevels(level: BookPriceLevel) {\n    return level.price > 0\n  }\n}\n\nexport class KucoinBookTickerMapper implements Mapper<'kucoin', BookTicker> {\n  constructor(protected readonly _exchange: Exchange) {}\n\n  canHandle(message: KucoinTickerMessage) {\n    return message.type === 'message' && message.topic.startsWith('/market/ticker')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'market/ticker',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: KucoinTickerMessage, localTimestamp: Date) {\n    const symbol = message.topic.split(':')[1]\n\n    const bookTicker: BookTicker = {\n      type: 'book_ticker',\n      symbol,\n      exchange: this._exchange,\n      askAmount: message.data.bestAskSize !== undefined && message.data.bestAskSize !== null ? Number(message.data.bestAskSize) : undefined,\n      askPrice: message.data.bestAsk !== undefined && message.data.bestAsk !== null ? Number(message.data.bestAsk) : undefined,\n      bidPrice: message.data.bestBid !== undefined && message.data.bestBid !== null ? Number(message.data.bestBid) : undefined,\n      bidAmount: message.data.bestBidSize !== undefined && message.data.bestBidSize !== null ? Number(message.data.bestBidSize) : undefined,\n      timestamp: new Date(message.data.time),\n      localTimestamp: localTimestamp\n    }\n\n    yield bookTicker\n  }\n}\n\ntype KucoinTickerMessage = {\n  type: 'message'\n  topic: '/market/ticker:ADA-USDT'\n  subject: 'trade.ticker'\n  data: {\n    bestAsk: '0.549931'\n    bestAskSize: '966.4756'\n    bestBid: '0.549824'\n    bestBidSize: '1050'\n    price: '0.549825'\n    sequence: '1623526404099'\n    size: '1'\n    time: 1660608019871\n  }\n}\n\ntype KucoinTradeMessage = {\n  type: 'message'\n  topic: '/market/match:BTC-USDT'\n  subject: 'trade.l3match'\n  data: {\n    symbol: 'BTC-USDT'\n    side: 'sell'\n    type: 'match'\n    makerOrderId: '62fadde41add68000167fb58'\n    sequence: '1636276321894'\n    size: '0.00001255'\n    price: '24093.9'\n    takerOrderId: '62faddfff0476c0001c86c71'\n    time: '1660608000026914990'\n    tradeId: '62fade002e113d292303a18b'\n  }\n}\n\ntype LocalDepthInfo = {\n  bufferedUpdates: CircularBuffer<KucoinLevel2UpdateMessage>\n  snapshotProcessed?: boolean\n  lastUpdateId?: number\n  validatedFirstUpdate?: boolean\n}\n\ntype KucoinLevel2SnapshotMessage = {\n  type: 'message'\n  generated: true\n  topic: '/market/level2Snapshot:BTC-USDT'\n  subject: 'trade.l2Snapshot'\n  code: '200000'\n  data: {\n    time: 1660608003710\n    sequence: '1636276324355'\n    bids: [string, string][] | null\n    asks: [string, string][] | null\n  }\n}\n\ntype KucoinLevel2UpdateMessage =\n  | {\n      type: 'message'\n      topic: '/market/level2:BTC-USDT'\n      subject: 'trade.l2update'\n      data: {\n        sequenceStart: 1636276324710\n        symbol: 'BTC-USDT'\n        changes: { asks: [string, string, string][]; bids: [string, string, string][] }\n        sequenceEnd: 1636276324710\n        time: undefined\n      }\n    }\n  | {\n      type: 'message'\n      topic: '/market/level2:BTC-USDT'\n      subject: 'trade.l2update'\n      data: {\n        changes: { asks: []; bids: [['27309.8', '0.35127929', '8005280396']] }\n        sequenceEnd: 8005280396\n        sequenceStart: 8005280396\n        symbol: 'BTC-USDT'\n        time: 1685578980002\n      }\n    }\n"
  },
  {
    "path": "src/mappers/kucoinfutures.ts",
    "content": "import { debug } from '../debug.ts'\nimport { asNumberIfValid, CircularBuffer, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\nexport class KucoinFuturesTradesMapper implements Mapper<'kucoin-futures', Trade> {\n  canHandle(message: KucoinFuturesTradeMessage) {\n    return message.type === 'message' && message.topic.startsWith('/contractMarket/execution')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'contractMarket/execution',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: KucoinFuturesTradeMessage, localTimestamp: Date): IterableIterator<Trade> {\n    const kucoinTrade = message.data\n\n    const timestamp = new Date(kucoinTrade.ts / 1000000)\n\n    yield {\n      type: 'trade',\n      symbol: kucoinTrade.symbol,\n      exchange: 'kucoin-futures',\n      id: kucoinTrade.tradeId,\n      price: Number(kucoinTrade.price),\n      amount: Number(kucoinTrade.size),\n      side: kucoinTrade.side === 'sell' ? 'sell' : 'buy',\n      timestamp,\n      localTimestamp\n    }\n  }\n}\n\nexport class KucoinFuturesBookChangeMapper implements Mapper<'kucoin-futures', BookChange> {\n  protected readonly symbolToDepthInfoMapping: {\n    [key: string]: LocalDepthInfo\n  } = {}\n\n  constructor(private readonly ignoreBookSnapshotOverlapError: boolean) {}\n\n  canHandle(message: KucoinFuturesLevel2SnapshotMessage | KucoinFuturesLevel2UpdateMessage) {\n    return message.type === 'message' && message.topic.startsWith('/contractMarket/level2')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'contractMarket/level2',\n        symbols\n      } as const,\n      {\n        channel: 'contractMarket/level2Snapshot',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: KucoinFuturesLevel2SnapshotMessage | KucoinFuturesLevel2UpdateMessage, localTimestamp: Date) {\n    const symbol = message.topic.split(':')[1]\n\n    if (this.symbolToDepthInfoMapping[symbol] === undefined) {\n      this.symbolToDepthInfoMapping[symbol] = {\n        bufferedUpdates: new CircularBuffer<KucoinFuturesLevel2UpdateMessage>(2000)\n      }\n    }\n\n    const symbolDepthInfo = this.symbolToDepthInfoMapping[symbol]\n    const snapshotAlreadyProcessed = symbolDepthInfo.snapshotProcessed\n\n    // first check if received message is snapshot and process it as such if it is\n    if (message.subject === 'level2Snapshot') {\n      // if we've already received 'manual' snapshot, ignore if there is another one\n      if (snapshotAlreadyProcessed) {\n        return\n      }\n      // produce snapshot book_change\n      const kucoinSnapshotData = message.data\n\n      if (!message.data) {\n        return\n      }\n\n      if (!kucoinSnapshotData.asks) {\n        kucoinSnapshotData.asks = []\n      }\n      if (!kucoinSnapshotData.bids) {\n        kucoinSnapshotData.bids = []\n      }\n\n      //  mark given symbol depth info that has snapshot processed\n      symbolDepthInfo.lastUpdateId = Number(kucoinSnapshotData.sequence)\n      symbolDepthInfo.snapshotProcessed = true\n\n      // if there were any depth updates buffered, let's process those by adding to or updating the initial snapshot\n      for (const update of symbolDepthInfo.bufferedUpdates.items()) {\n        const bookChange = this.mapBookDepthUpdate(update, localTimestamp)\n\n        if (bookChange !== undefined) {\n          const mappedChange = this.mapChange(update.data.change)\n          if (mappedChange.price == 0) {\n            continue\n          }\n\n          const matchingSide = mappedChange.isBid ? kucoinSnapshotData.bids : kucoinSnapshotData.asks\n          const matchingLevel = matchingSide.find((b) => b[0] === mappedChange.price)\n\n          if (matchingLevel !== undefined) {\n            // remove empty level from snapshot\n            if (mappedChange.amount === 0) {\n              const index = matchingSide.findIndex((b) => b[0] === mappedChange.price)\n              if (index > -1) {\n                matchingSide.splice(index, 1)\n              }\n            } else {\n              matchingLevel[1] = mappedChange.amount\n            }\n          } else if (mappedChange.amount != 0) {\n            matchingSide.push([mappedChange.price, mappedChange.amount])\n          }\n        }\n      }\n\n      // remove all buffered updates\n      symbolDepthInfo.bufferedUpdates.clear()\n\n      const bookChange: BookChange = {\n        type: 'book_change',\n        symbol,\n        exchange: 'kucoin-futures',\n        isSnapshot: true,\n        bids: kucoinSnapshotData.bids.map(this.mapBookLevel),\n        asks: kucoinSnapshotData.asks.map(this.mapBookLevel),\n        timestamp: localTimestamp,\n        localTimestamp\n      }\n\n      yield bookChange\n    } else if (snapshotAlreadyProcessed) {\n      // snapshot was already processed let's map the message as normal book_change\n      const bookChange = this.mapBookDepthUpdate(message, localTimestamp)\n      if (bookChange !== undefined) {\n        yield bookChange\n      }\n    } else {\n      symbolDepthInfo.bufferedUpdates.append(message)\n    }\n  }\n\n  protected mapBookDepthUpdate(l2UpdateMessage: KucoinFuturesLevel2UpdateMessage, localTimestamp: Date): BookChange | undefined {\n    // we can safely assume here that depthContext and lastUpdateId aren't null here as this is method only works\n    // when we've already processed the snapshot\n    const symbol = l2UpdateMessage.topic.split(':')[1]\n    const depthContext = this.symbolToDepthInfoMapping[symbol]!\n    const lastUpdateId = depthContext.lastUpdateId!\n\n    // Drop any event where sequence is <= lastUpdateId in the snapshot\n    if (l2UpdateMessage.data.sequence <= lastUpdateId) {\n      return\n    }\n\n    // The first processed event should have sequence>lastUpdateId\n    if (!depthContext.validatedFirstUpdate) {\n      // if there is new instrument added it can have empty book at first and that's normal\n      const bookSnapshotIsEmpty = lastUpdateId == -1 || lastUpdateId == 0\n\n      if (l2UpdateMessage.data.sequence === lastUpdateId + 1 || bookSnapshotIsEmpty) {\n        depthContext.validatedFirstUpdate = true\n      } else {\n        const message = `Book depth snapshot has no overlap with first update, update ${JSON.stringify(\n          l2UpdateMessage\n        )}, lastUpdateId: ${lastUpdateId}, exchange kucoin-futures`\n        if (this.ignoreBookSnapshotOverlapError) {\n          depthContext.validatedFirstUpdate = true\n          debug(message)\n        } else {\n          throw new Error(message)\n        }\n      }\n    }\n\n    const change = this.mapChange(l2UpdateMessage.data.change)\n\n    return {\n      type: 'book_change',\n      symbol: symbol,\n      exchange: 'kucoin-futures',\n      isSnapshot: false,\n      bids: change.isBid\n        ? [\n            {\n              price: change.price,\n              amount: change.amount\n            }\n          ]\n        : [],\n      asks:\n        change.isBid === false\n          ? [\n              {\n                price: change.price,\n                amount: change.amount\n              }\n            ]\n          : [],\n      timestamp: new Date(l2UpdateMessage.data.timestamp),\n      localTimestamp: localTimestamp\n    }\n  }\n\n  private mapBookLevel(level: [number, number]) {\n    return { price: level[0], amount: level[1] }\n  }\n\n  private mapChange(change: string) {\n    const parts = change.split(',')\n    const isBid = parts[1] === 'buy'\n    const price = Number(parts[0])\n    const amount = Number(parts[2])\n\n    return { isBid, price, amount }\n  }\n}\n\nexport class KucoinFuturesBookTickerMapper implements Mapper<'kucoin-futures', BookTicker> {\n  canHandle(message: KucoinFuturesTickerMessage) {\n    return message.type === 'message' && message.topic.startsWith('/contractMarket/tickerV2')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'contractMarket/tickerV2',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: KucoinFuturesTickerMessage, localTimestamp: Date) {\n    const symbol = message.topic.split(':')[1]\n\n    const bookTicker: BookTicker = {\n      type: 'book_ticker',\n      symbol,\n      exchange: 'kucoin-futures',\n      askAmount: message.data.bestAskSize !== undefined && message.data.bestAskSize !== null ? message.data.bestAskSize : undefined,\n      askPrice:\n        message.data.bestAskPrice !== undefined && message.data.bestAskPrice !== null ? Number(message.data.bestAskPrice) : undefined,\n\n      bidPrice:\n        message.data.bestBidPrice !== undefined && message.data.bestBidPrice !== null ? Number(message.data.bestBidPrice) : undefined,\n\n      bidAmount: message.data.bestBidSize !== undefined && message.data.bestBidSize !== null ? message.data.bestBidSize : undefined,\n      timestamp: new Date(message.data.ts / 1000000),\n      localTimestamp: localTimestamp\n    }\n\n    yield bookTicker\n  }\n}\n\nexport class KucoinFuturesDerivativeTickerMapper implements Mapper<'kucoin-futures', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n  private readonly _lastPrices = new Map<string, number>()\n  private readonly _openInterests = new Map<string, number>()\n\n  canHandle(message: KucoinFuturesTickerMessage) {\n    return (\n      message.type === 'message' &&\n      (message.topic.startsWith('/contract/instrument') ||\n        message.topic.startsWith('/contractMarket/execution') ||\n        message.topic.startsWith('/contract/details'))\n    )\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'contract/instrument',\n        symbols\n      } as const,\n      {\n        channel: 'contractMarket/execution',\n        symbols\n      } as const,\n      {\n        channel: 'contract/details',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: KucoinFuturesInstrumentMessage | KucoinFuturesTradeMessage, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    const symbol = message.topic.split(':')[1]\n\n    const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(symbol, 'kucoin-futures')\n\n    if (message.subject === 'match') {\n      this._lastPrices.set(symbol, Number(message.data.price))\n      return\n    }\n\n    if (message.subject === 'contractDetails') {\n      const openInterestValue = asNumberIfValid(message.data.openInterest)\n      if (openInterestValue === undefined) {\n        return\n      }\n\n      this._openInterests.set(symbol, openInterestValue)\n      return\n    }\n    const lastPrice = this._lastPrices.get(symbol)\n    const openInterest = this._openInterests.get(symbol)\n\n    if (message.subject === 'mark.index.price') {\n      pendingTickerInfo.updateIndexPrice(message.data.indexPrice)\n      pendingTickerInfo.updateMarkPrice(message.data.markPrice)\n    }\n\n    if (message.subject === 'funding.rate') {\n      pendingTickerInfo.updateTimestamp(new Date(message.data.timestamp))\n      pendingTickerInfo.updateFundingRate(message.data.fundingRate)\n    }\n\n    if (lastPrice !== undefined) {\n      pendingTickerInfo.updateLastPrice(lastPrice)\n    }\n\n    if (openInterest !== undefined) {\n      pendingTickerInfo.updateOpenInterest(openInterest)\n    }\n\n    if (pendingTickerInfo.hasChanged()) {\n      yield pendingTickerInfo.getSnapshot(localTimestamp)\n    }\n  }\n}\n\ntype KucoinFuturesTradeMessage = {\n  topic: '/contractMarket/execution:COMPUSDTM'\n  type: 'message'\n  subject: 'match'\n  sn: 1694749771273\n  data: {\n    symbol: 'COMPUSDTM'\n    sequence: 1694749771273\n    makerUserId: '64b1a612d570b900017b7281'\n    side: 'buy' | 'sell'\n    size: 102\n    price: '57.75'\n    takerOrderId: '137974138051522560'\n    takerUserId: '61945720862a310001d6581e'\n    makerOrderId: '137974082376310784'\n    tradeId: '1694749771273'\n    ts: 1705708799996000000\n  }\n}\n\ntype LocalDepthInfo = {\n  bufferedUpdates: CircularBuffer<KucoinFuturesLevel2UpdateMessage>\n  snapshotProcessed?: boolean\n  lastUpdateId?: number\n  validatedFirstUpdate?: boolean\n}\n\ntype KucoinFuturesLevel2SnapshotMessage = {\n  type: 'message'\n  generated: true\n  topic: '/contractMarket/level2Snapshot:C98USDTM'\n  subject: 'level2Snapshot'\n  code: '200000'\n  data: {\n    sequence: 1694868048360\n    symbol: 'C98USDTM'\n    bids: [number, number][]\n    asks: [number, number][]\n    ts: 1705881597161000000\n  }\n}\n\ntype KucoinFuturesLevel2UpdateMessage = {\n  topic: '/contractMarket/level2:C98USDTM'\n  type: 'message'\n  subject: 'level2'\n  sn: 1694868048361\n  data: { sequence: 1694868048361; change: '0.2353,buy,146'; timestamp: 1705881600096 }\n}\n\ntype KucoinFuturesTickerMessage = {\n  topic: '/contractMarket/tickerV2:BCHUSDTM'\n  type: 'message'\n  subject: 'tickerV2'\n  sn: 1695158749093\n  data: {\n    symbol: 'BCHUSDTM'\n    sequence: 1695158749093\n    bestBidSize: 480\n    bestBidPrice: '236.76'\n    bestAskPrice: '236.77'\n    bestAskSize: 126\n    ts: 1705708800078000000\n  }\n}\n\ntype KucoinFuturesInstrumentMessage =\n  | {\n      topic: '/contract/instrument:ENSUSDTM'\n      type: 'message'\n      subject: 'funding.rate'\n      data: { granularity: 60000; fundingRate: 0.000053; timestamp: 1705708800000 }\n    }\n  | {\n      topic: '/contract/instrument:XAIUSDTM'\n      type: 'message'\n      subject: 'mark.index.price'\n      data: { markPrice: 0.80694; indexPrice: 0.80695; granularity: 1000; timestamp: 1705881600000 }\n    }\n  | {\n      topic: '/contract/instrument:BAKEUSDTM'\n      type: 'message'\n      subject: 'funding.rate'\n      data: { granularity: 28800000; fundingRate: 0.000105; timestamp: 1705982400000 }\n    }\n  | {\n      topic: '/contract/details:XBTUSDTM'\n      type: 'message'\n      subject: 'contractDetails'\n      generated: true\n      data: {\n        symbol: 'XBTUSDTM'\n        rootSymbol: 'USDT'\n        type: 'FFWCSX'\n        firstOpenDate: 1585555200000\n        baseCurrency: 'XBT'\n        quoteCurrency: 'USDT'\n        settleCurrency: 'USDT'\n        maxOrderQty: 1000000\n        maxPrice: 1000000.0\n        lotSize: 1\n        tickSize: 0.1\n        indexPriceTickSize: 0.01\n        multiplier: 0.001\n        initialMargin: 0.008\n        maintainMargin: 0.004\n        maxRiskLimit: 25000\n        minRiskLimit: 25000\n        riskStep: 12500\n        makerFeeRate: 2.0e-4\n        takerFeeRate: 6.0e-4\n        takerFixFee: 0.0\n        makerFixFee: 0.0\n        isDeleverage: true\n        isQuanto: true\n        isInverse: false\n        markMethod: 'FairPrice'\n        fairMethod: 'FundingRate'\n        fundingBaseSymbol: '.XBTINT8H'\n        fundingQuoteSymbol: '.USDTINT8H'\n        fundingRateSymbol: '.XBTUSDTMFPI8H'\n        indexSymbol: '.KXBTUSDT'\n        settlementSymbol: ''\n        status: 'Open'\n        fundingFeeRate: 3.8e-5\n        predictedFundingFeeRate: 9.6e-5\n        fundingRateGranularity: 28800000\n        openInterest: '9295921'\n        turnoverOf24h: 5.94135187191124e8\n        volumeOf24h: 15131.243\n        markPrice: 39995.94\n        indexPrice: 39999.2\n        lastTradePrice: 39996.6\n        nextFundingRateTime: 10561278\n        maxLeverage: 125\n        sourceExchanges: ['okex', 'binance', 'kucoin', 'bybit', 'bitget', 'bitmart', 'gateio']\n        premiumsSymbol1M: '.XBTUSDTMPI'\n        premiumsSymbol8H: '.XBTUSDTMPI8H'\n        fundingBaseSymbol1M: '.XBTINT'\n        fundingQuoteSymbol1M: '.USDTINT'\n        lowPrice: 38560.0\n        highPrice: 40253.0\n        priceChgPct: 0.0132\n        priceChg: 523.4\n      }\n    }\n"
  },
  {
    "path": "src/mappers/mapper.ts",
    "content": "import { DerivativeTicker, Exchange, FilterForExchange, NormalizedData } from '../types.ts'\n\nexport type Mapper<T extends Exchange, U extends NormalizedData> = {\n  canHandle: (message: any) => boolean\n\n  map(message: any, localTimestamp: Date): IterableIterator<U> | undefined\n\n  getFilters: (symbols?: string[]) => FilterForExchange[T][]\n}\n\nexport type MapperFactory<T extends Exchange, U extends NormalizedData> = (exchange: T, localTimestamp: Date) => Mapper<T, U>\n\ntype Writeable<T> = { -readonly [P in keyof T]: T[P] }\n\nconst isNullOrUndefined = (input: number | Date | undefined | null): input is null | undefined => input === undefined || input === null\n\nexport class PendingTickerInfoHelper {\n  private readonly _pendingTickers: Map<string, PendingDerivativeTickerInfo> = new Map()\n\n  public getPendingTickerInfo(symbol: string, exchange: Exchange) {\n    let pendingTickerInfo = this._pendingTickers.get(symbol)\n    if (pendingTickerInfo === undefined) {\n      pendingTickerInfo = new PendingDerivativeTickerInfo(symbol, exchange)\n      this._pendingTickers.set(symbol, pendingTickerInfo)\n    }\n\n    return pendingTickerInfo\n  }\n  public hasPendingTickerInfo(symbol: string) {\n    return this._pendingTickers.has(symbol)\n  }\n}\n\nclass PendingDerivativeTickerInfo {\n  private _pendingTicker: Writeable<DerivativeTicker>\n  private _hasChanged: boolean\n\n  constructor(symbol: string, exchange: Exchange) {\n    this._pendingTicker = {\n      type: 'derivative_ticker',\n      symbol,\n      exchange,\n      lastPrice: undefined,\n      openInterest: undefined,\n      fundingRate: undefined,\n      fundingTimestamp: undefined,\n      predictedFundingRate: undefined,\n      indexPrice: undefined,\n      markPrice: undefined,\n      timestamp: undefined as any,\n      localTimestamp: new Date()\n    }\n\n    this._hasChanged = false\n  }\n\n  public getCurrentFundingTimestamp() {\n    return this._pendingTicker.fundingTimestamp\n  }\n\n  public updateOpenInterest(openInterest: number | undefined | null) {\n    if (isNullOrUndefined(openInterest)) {\n      return\n    }\n\n    if (this._pendingTicker.openInterest !== openInterest) {\n      this._pendingTicker.openInterest = openInterest\n      this._hasChanged = true\n    }\n  }\n\n  public updateMarkPrice(markPrice: number | undefined | null) {\n    if (isNullOrUndefined(markPrice)) {\n      return\n    }\n\n    if (this._pendingTicker.markPrice !== markPrice) {\n      this._pendingTicker.markPrice = markPrice\n      this._hasChanged = true\n    }\n  }\n\n  public updateFundingRate(fundingRate: number | undefined | null) {\n    if (isNullOrUndefined(fundingRate)) {\n      return\n    }\n\n    if (this._pendingTicker.fundingRate !== fundingRate) {\n      this._pendingTicker.fundingRate = fundingRate\n      this._hasChanged = true\n    }\n  }\n\n  public updatePredictedFundingRate(predictedFundingRate: number | undefined | null) {\n    if (isNullOrUndefined(predictedFundingRate)) {\n      return\n    }\n\n    if (this._pendingTicker.predictedFundingRate !== predictedFundingRate) {\n      this._pendingTicker.predictedFundingRate = predictedFundingRate\n      this._hasChanged = true\n    }\n  }\n\n  public updateFundingTimestamp(fundingTimestamp: Date | undefined | null) {\n    if (isNullOrUndefined(fundingTimestamp)) {\n      return\n    }\n\n    if (\n      this._pendingTicker.fundingTimestamp === undefined ||\n      this._pendingTicker.fundingTimestamp.valueOf() !== fundingTimestamp.valueOf()\n    ) {\n      this._pendingTicker.fundingTimestamp = fundingTimestamp\n      this._hasChanged = true\n    }\n  }\n\n  public updateIndexPrice(indexPrice: number | undefined | null) {\n    if (isNullOrUndefined(indexPrice)) {\n      return\n    }\n\n    if (this._pendingTicker.indexPrice !== indexPrice) {\n      this._pendingTicker.indexPrice = indexPrice\n      this._hasChanged = true\n    }\n  }\n\n  public updateLastPrice(lastPrice: number | undefined | null) {\n    if (isNullOrUndefined(lastPrice)) {\n      return\n    }\n\n    if (this._pendingTicker.lastPrice !== lastPrice) {\n      this._pendingTicker.lastPrice = lastPrice\n      this._hasChanged = true\n    }\n  }\n\n  public updateTimestamp(timestamp: Date) {\n    if (this._pendingTicker.timestamp === undefined || this._pendingTicker.timestamp.valueOf() <= timestamp.valueOf()) {\n      this._pendingTicker.timestamp = timestamp\n    }\n  }\n\n  public hasChanged() {\n    return this._hasChanged\n  }\n\n  public getSnapshot(localTimestamp: Date): DerivativeTicker {\n    this._hasChanged = false\n    this._pendingTicker.localTimestamp = localTimestamp\n\n    if (this._pendingTicker.timestamp === undefined) {\n      this._pendingTicker.timestamp = localTimestamp\n    }\n\n    return { ...this._pendingTicker }\n  }\n}\n"
  },
  {
    "path": "src/mappers/okex.ts",
    "content": "import { asNumberIfValid, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Exchange, Liquidation, OptionSummary, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\n// V5 Okex API mappers\n// https://www.okex.com/docs-v5/en/#websocket-api-public-channel-trades-channel\n\nexport class OkexV5TradesMapper implements Mapper<OKEX_EXCHANGES, Trade> {\n  constructor(private readonly _exchange: Exchange, private readonly _useTradesAll: boolean) {}\n\n  canHandle(message: any) {\n    if (message.event !== undefined || message.arg === undefined) {\n      return false\n    }\n    return message.arg.channel === 'trades' || message.arg.channel === 'trades-all'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    if (this._useTradesAll) {\n      return [\n        {\n          channel: `trades-all` as const,\n          symbols\n        }\n      ]\n    }\n\n    return [\n      {\n        channel: `trades` as const,\n        symbols\n      }\n    ]\n  }\n\n  *map(okexTradesMessage: OkexV5TradeMessage | OkexV5TradesAllMessage, localTimestamp: Date): IterableIterator<Trade> {\n    for (const okexTrade of okexTradesMessage.data) {\n      yield {\n        type: 'trade',\n        symbol: okexTrade.instId,\n        exchange: this._exchange,\n        id: okexTrade.tradeId,\n        price: Number(okexTrade.px),\n        amount: Number(okexTrade.sz),\n        side: okexTrade.side === 'buy' ? 'buy' : 'sell',\n        timestamp: new Date(Number(okexTrade.ts)),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nconst mapV5BookLevel = (level: OkexV5BookLevel) => {\n  const price = Number(level[0])\n  const amount = Number(level[1])\n\n  return { price, amount }\n}\n\nexport class OkexV5BookChangeMapper implements Mapper<OKEX_EXCHANGES, BookChange> {\n  private _channelName: string\n\n  constructor(private readonly _exchange: Exchange, usePublicBooksChannel: boolean) {\n    this._channelName = this._getBooksChannelName(usePublicBooksChannel)\n  }\n\n  canHandle(message: any) {\n    if (message.event !== undefined || message.arg === undefined) {\n      return false\n    }\n\n    return message.arg.channel === this._channelName\n  }\n\n  private _hasCredentials = process.env.OKX_API_KEY !== undefined\n  private _hasVip5Access = process.env.OKX_API_VIP_5 !== undefined\n  private _hasColoAccess = process.env.OKX_API_COLO !== undefined\n\n  private _getBooksChannelName(usePublicBooksChannel: boolean) {\n    if (usePublicBooksChannel === false) {\n      // historical data always uses books-l2-tbt\n      return 'books-l2-tbt'\n    }\n\n    if (this._hasCredentials && this._hasVip5Access) {\n      return 'books-l2-tbt'\n    }\n\n    if (this._hasColoAccess) {\n      return 'books-l2-tbt'\n    }\n\n    if (this._hasCredentials) {\n      return 'books50-l2-tbt'\n    }\n\n    return 'books'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: this._channelName as any,\n        symbols\n      }\n    ]\n  }\n\n  *map(okexDepthDataMessage: OkexV5BookMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    for (const message of okexDepthDataMessage.data) {\n      if (okexDepthDataMessage.action === 'update' && message.bids.length === 0 && message.asks.length === 0) {\n        continue\n      }\n\n      const timestamp = new Date(Number(message.ts))\n\n      if (timestamp.valueOf() === 0) {\n        continue\n      }\n\n      yield {\n        type: 'book_change',\n        symbol: okexDepthDataMessage.arg.instId,\n        exchange: this._exchange,\n        isSnapshot: okexDepthDataMessage.action === 'snapshot',\n        bids: message.bids.map(mapV5BookLevel),\n        asks: message.asks.map(mapV5BookLevel),\n        timestamp,\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nexport class OkexV5BookTickerMapper implements Mapper<OKEX_EXCHANGES, BookTicker> {\n  constructor(private readonly _exchange: Exchange, private readonly _useTbtTickerChannel: boolean) {}\n\n  canHandle(message: any) {\n    if (message.event !== undefined || message.arg === undefined) {\n      return false\n    }\n\n    if (this._useTbtTickerChannel) {\n      return message.arg.channel === 'bbo-tbt'\n    }\n\n    return message.arg.channel === 'tickers'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    if (this._useTbtTickerChannel) {\n      return [\n        {\n          channel: `bbo-tbt` as const,\n          symbols\n        }\n      ]\n    }\n    return [\n      {\n        channel: `tickers` as const,\n        symbols\n      }\n    ]\n  }\n\n  map(message: OkexV5TickerMessage | OkexBBOTbtData, localTimestamp: Date): IterableIterator<BookTicker> {\n    if (message.arg.channel === 'bbo-tbt') {\n      return this._mapFromTbtTicker(message as OkexBBOTbtData, localTimestamp)\n    } else {\n      return this._mapFromTicker(message as OkexV5TickerMessage, localTimestamp)\n    }\n  }\n\n  private *_mapFromTbtTicker(message: OkexBBOTbtData, localTimestamp: Date): IterableIterator<BookTicker> {\n    if (!message.data) {\n      return\n    }\n\n    for (const tbtTicker of message.data) {\n      const bestAsk = tbtTicker.asks !== undefined && tbtTicker.asks[0] ? mapBookLevel(tbtTicker.asks[0]) : undefined\n      const bestBid = tbtTicker.bids !== undefined && tbtTicker.bids[0] ? mapBookLevel(tbtTicker.bids[0]) : undefined\n\n      const ticker: BookTicker = {\n        type: 'book_ticker',\n        symbol: message.arg.instId,\n        exchange: this._exchange,\n\n        askAmount: bestAsk?.amount,\n        askPrice: bestAsk?.price,\n\n        bidPrice: bestBid?.price,\n        bidAmount: bestBid?.amount,\n        timestamp: new Date(Number(tbtTicker.ts)),\n        localTimestamp: localTimestamp\n      }\n\n      yield ticker\n    }\n  }\n\n  private *_mapFromTicker(message: OkexV5TickerMessage, localTimestamp: Date): IterableIterator<BookTicker> {\n    for (const okexTicker of message.data) {\n      const ticker: BookTicker = {\n        type: 'book_ticker',\n        symbol: okexTicker.instId,\n        exchange: this._exchange,\n\n        askAmount: asNumberIfValid(okexTicker.askSz),\n        askPrice: asNumberIfValid(okexTicker.askPx),\n\n        bidPrice: asNumberIfValid(okexTicker.bidPx),\n        bidAmount: asNumberIfValid(okexTicker.bidSz),\n        timestamp: new Date(Number(okexTicker.ts)),\n        localTimestamp: localTimestamp\n      }\n\n      yield ticker\n    }\n  }\n}\n\nexport class OkexV5DerivativeTickerMapper implements Mapper<'okex-futures' | 'okex-swap', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n  private readonly _indexPrices = new Map<string, number>()\n\n  private _futuresChannels = ['tickers', 'open-interest', 'mark-price', 'index-tickers'] as const\n\n  private _swapChannels = ['tickers', 'open-interest', 'mark-price', 'index-tickers', 'funding-rate'] as const\n\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: any) {\n    const channels = this._exchange === 'okex-futures' ? this._futuresChannels : this._swapChannels\n\n    if (message.event !== undefined || message.arg === undefined) {\n      return false\n    }\n\n    return channels.includes(message.arg.channel)\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    const channels = this._exchange === 'okex-futures' ? this._futuresChannels : this._swapChannels\n    return channels.map((channel) => {\n      if (channel === 'index-tickers') {\n        const indexes =\n          symbols !== undefined\n            ? symbols.map((s) => {\n                const symbolParts = s.split('-')\n                const quotePart = symbolParts[1] === 'USDC' ? 'USD' : symbolParts[1]\n                return `${symbolParts[0]}-${quotePart}`\n              })\n            : undefined\n\n        return {\n          channel,\n          symbols: indexes\n        }\n      }\n\n      return {\n        channel,\n        symbols\n      }\n    })\n  }\n\n  *map(\n    message: OkexV5TickerMessage | OkexV5OpenInterestMessage | OkexV5MarkPriceMessage | OkexV5IndexTickerMessage | OkexV5FundingRateMessage,\n    localTimestamp: Date\n  ): IterableIterator<DerivativeTicker> {\n    if (message.arg.channel === 'index-tickers') {\n      for (const dataMessage of message.data) {\n        const indexTickerMessage = dataMessage as OkexV5IndexTickerMessage['data'][0]\n\n        const lastIndexPrice = Number(indexTickerMessage.idxPx)\n        if (lastIndexPrice > 0) {\n          this._indexPrices.set(indexTickerMessage.instId, lastIndexPrice)\n        }\n      }\n\n      return\n    }\n\n    for (const dataMessage of message.data) {\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(dataMessage.instId, this._exchange)\n      const symbolParts = dataMessage.instId.split('-')\n      const quotePart = symbolParts[1] === 'USDC' ? 'USD' : symbolParts[1]\n\n      const indexSymbol = `${symbolParts[0]}-${quotePart}`\n\n      const indexPrice = this._indexPrices.get(indexSymbol)\n\n      if (indexPrice !== undefined) {\n        pendingTickerInfo.updateIndexPrice(indexPrice)\n      }\n\n      if (message.arg.channel === 'mark-price') {\n        const markPriceMessage = dataMessage as OkexV5MarkPriceMessage['data'][0]\n\n        const markPrice = Number(markPriceMessage.markPx)\n        if (markPrice > 0) {\n          pendingTickerInfo.updateMarkPrice(markPrice)\n          pendingTickerInfo.updateTimestamp(new Date(Number(markPriceMessage.ts)))\n        }\n      }\n\n      if (message.arg.channel === 'open-interest') {\n        const openInterestMessage = dataMessage as OkexV5OpenInterestMessage['data'][0]\n\n        const openInterest = Number(openInterestMessage.oi)\n        if (openInterest > 0) {\n          pendingTickerInfo.updateOpenInterest(openInterest)\n          pendingTickerInfo.updateTimestamp(new Date(Number(openInterestMessage.ts)))\n        }\n      }\n\n      if (message.arg.channel === 'funding-rate') {\n        const fundingRateMessage = dataMessage as OkexV5FundingRateMessage['data'][0]\n\n        if (fundingRateMessage.fundingRate !== undefined) {\n          pendingTickerInfo.updateFundingRate(Number(fundingRateMessage.fundingRate))\n        }\n        if (fundingRateMessage.fundingTime !== undefined) {\n          pendingTickerInfo.updateFundingTimestamp(new Date(Number(fundingRateMessage.fundingTime)))\n        }\n\n        if (fundingRateMessage.nextFundingRate !== undefined && fundingRateMessage.nextFundingRate !== '') {\n          pendingTickerInfo.updatePredictedFundingRate(Number(fundingRateMessage.nextFundingRate))\n        }\n      }\n\n      if (message.arg.channel === 'tickers') {\n        const tickerMessage = dataMessage as OkexV5TickerMessage['data'][0]\n\n        const lastPrice = Number(tickerMessage.last)\n\n        if (lastPrice > 0) {\n          pendingTickerInfo.updateLastPrice(lastPrice)\n          pendingTickerInfo.updateTimestamp(new Date(Number(tickerMessage.ts)))\n        }\n      }\n\n      if (pendingTickerInfo.hasChanged()) {\n        yield pendingTickerInfo.getSnapshot(localTimestamp)\n      }\n    }\n  }\n}\n\nexport class OkexV5LiquidationsMapper implements Mapper<OKEX_EXCHANGES, Liquidation> {\n  private _isFirstMessage = true\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: any) {\n    if (message.event !== undefined || message.arg === undefined) {\n      return false\n    }\n    return message.arg.channel === 'liquidations' || message.arg.channel === 'liquidation-orders'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'liquidations',\n        symbols\n      } as any,\n      {\n        channel: 'liquidation-orders',\n        symbols\n      } as any\n    ]\n  }\n\n  *map(\n    okexLiquidationMessage: OkexV5LiquidationMessage | OkexV5LiquidationOrderMessage,\n    localTimestamp: Date\n  ): IterableIterator<Liquidation> {\n    if (okexLiquidationMessage.arg.channel === 'liquidation-orders') {\n      if (this._isFirstMessage) {\n        this._isFirstMessage = false\n        return\n      }\n\n      for (const okexLiquidation of (okexLiquidationMessage as OkexV5LiquidationOrderMessage).data) {\n        for (const detail of okexLiquidation.details) {\n          const liquidation: Liquidation = {\n            type: 'liquidation',\n            symbol: okexLiquidation.instId,\n            exchange: this._exchange,\n            id: undefined,\n            price: Number(detail.bkPx),\n            amount: Number(detail.sz),\n            side: detail.side === 'buy' ? 'buy' : 'sell',\n            timestamp: new Date(Number(detail.ts)),\n            localTimestamp: localTimestamp\n          }\n          yield liquidation\n        }\n      }\n    } else {\n      for (const okexLiquidation of (okexLiquidationMessage as OkexV5LiquidationMessage).data) {\n        const liquidation: Liquidation = {\n          type: 'liquidation',\n          symbol: okexLiquidationMessage.arg.instId,\n          exchange: this._exchange,\n          id: undefined,\n          price: Number(okexLiquidation.bkPx),\n          amount: Number(okexLiquidation.sz),\n          side: okexLiquidation.side === 'buy' ? 'buy' : 'sell',\n          timestamp: new Date(Number(okexLiquidation.ts)),\n          localTimestamp: localTimestamp\n        }\n        yield liquidation\n      }\n    }\n  }\n}\n\nexport class OkexV5OptionSummaryMapper implements Mapper<'okex-options', OptionSummary> {\n  private readonly _indexPrices = new Map<string, number>()\n  private readonly _openInterests = new Map<string, number>()\n  private readonly _markPrices = new Map<string, number>()\n\n  private readonly _tickers = new Map<string, OkexV5TickerMessage['data'][0]>()\n  private readonly expiration_regex = /(\\d{2})(\\d{2})(\\d{2})/\n\n  canHandle(message: any) {\n    if (message.event !== undefined || message.arg === undefined) {\n      return false\n    }\n    return (\n      message.arg.channel === 'opt-summary' ||\n      message.arg.channel === 'index-tickers' ||\n      message.arg.channel === 'tickers' ||\n      message.arg.channel === 'open-interest' ||\n      message.arg.channel === 'mark-price'\n    )\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    const indexes =\n      symbols !== undefined\n        ? symbols.map((s) => {\n            const symbolParts = s.split('-')\n            return `${symbolParts[0]}-${symbolParts[1]}`\n          })\n        : undefined\n\n    return [\n      {\n        channel: `opt-summary`,\n        symbols: [] as string[]\n      } as const,\n      {\n        channel: `index-tickers`,\n        symbols: indexes\n      } as const,\n      {\n        channel: `tickers`,\n        symbols: symbols\n      } as const,\n      {\n        channel: `open-interest`,\n        symbols: symbols\n      } as const,\n      {\n        channel: `mark-price`,\n        symbols: symbols\n      } as const\n    ]\n  }\n\n  *map(\n    message: OkexV5SummaryMessage | OkexV5IndexTickerMessage | OkexV5TickerMessage | OkexV5OpenInterestMessage | OkexV5MarkPriceMessage,\n    localTimestamp: Date\n  ): IterableIterator<OptionSummary> | undefined {\n    if (message.arg.channel === 'index-tickers') {\n      for (const dataMessage of message.data) {\n        const indexTickerMessage = dataMessage as OkexV5IndexTickerMessage['data'][0]\n\n        const lastIndexPrice = asNumberIfValid(indexTickerMessage.idxPx)\n        if (lastIndexPrice !== undefined) {\n          this._indexPrices.set(indexTickerMessage.instId, lastIndexPrice)\n        }\n      }\n      return\n    }\n\n    if (message.arg.channel === 'open-interest') {\n      for (const dataMessage of message.data) {\n        const openInterestMessage = dataMessage as OkexV5OpenInterestMessage['data'][0]\n\n        const openInterestValue = asNumberIfValid(openInterestMessage.oi)\n        if (openInterestValue !== undefined) {\n          this._openInterests.set(openInterestMessage.instId, openInterestValue)\n        }\n      }\n      return\n    }\n\n    if (message.arg.channel === 'mark-price') {\n      for (const dataMessage of message.data) {\n        const markPriceMessage = dataMessage as OkexV5MarkPriceMessage['data'][0]\n\n        const markPrice = asNumberIfValid(markPriceMessage.markPx)\n        if (markPrice !== undefined) {\n          this._markPrices.set(markPriceMessage.instId, markPrice)\n        }\n      }\n      return\n    }\n\n    if (message.arg.channel === 'tickers') {\n      for (const dataMessage of message.data) {\n        const tickerMessage = dataMessage as OkexV5TickerMessage['data'][0]\n\n        this._tickers.set(tickerMessage.instId, tickerMessage)\n      }\n      return\n    }\n\n    if (message.arg.channel === 'opt-summary') {\n      for (const dataMessage of message.data) {\n        const summary = dataMessage as OkexV5SummaryMessage['data'][0]\n\n        const symbolParts = summary.instId.split('-')\n        const isPut = symbolParts[4] === 'P'\n        const strikePrice = Number(symbolParts[3])\n\n        var dateArray = this.expiration_regex.exec(symbolParts[2])!\n\n        const expirationDate = new Date(Date.UTC(+('20' + dateArray[1]), +dateArray[2] - 1, +dateArray[3], 8, 0, 0, 0))\n        const lastUnderlyingPrice = this._indexPrices.get(summary.uly)\n\n        const lastOpenInterest = this._openInterests.get(summary.instId)\n\n        const lastMarkPrice = this._markPrices.get(summary.instId)\n\n        const lastTickerInfo = this._tickers.get(summary.instId)\n\n        const optionSummary: OptionSummary = {\n          type: 'option_summary',\n          symbol: summary.instId,\n          exchange: 'okex-options',\n          optionType: isPut ? 'put' : 'call',\n          strikePrice,\n          expirationDate,\n\n          bestBidPrice: lastTickerInfo !== undefined ? asNumberIfValid(lastTickerInfo.bidPx) : undefined,\n          bestBidAmount: lastTickerInfo !== undefined ? asNumberIfValid(lastTickerInfo.bidSz) : undefined,\n          bestBidIV: asNumberIfValid(summary.bidVol),\n\n          bestAskPrice: lastTickerInfo !== undefined ? asNumberIfValid(lastTickerInfo.askPx) : undefined,\n          bestAskAmount: lastTickerInfo !== undefined ? asNumberIfValid(lastTickerInfo.askSz) : undefined,\n          bestAskIV: asNumberIfValid(summary.askVol),\n\n          lastPrice: lastTickerInfo !== undefined ? asNumberIfValid(lastTickerInfo.last) : undefined,\n          openInterest: lastOpenInterest,\n\n          markPrice: lastMarkPrice,\n          markIV: asNumberIfValid(summary.markVol),\n\n          delta: asNumberIfValid(summary.delta),\n          gamma: asNumberIfValid(summary.gamma),\n          vega: asNumberIfValid(summary.vega),\n          theta: asNumberIfValid(summary.theta),\n          rho: undefined,\n\n          underlyingPrice: lastUnderlyingPrice,\n          underlyingIndex: summary.uly,\n\n          timestamp: new Date(Number(summary.ts)),\n          localTimestamp: localTimestamp\n        }\n\n        yield optionSummary\n      }\n    }\n  }\n}\n\ntype OkexV5TradeMessage = {\n  arg: { channel: 'trades'; instId: 'CRV-USDT' }\n  data: [{ instId: 'CRV-USDT'; tradeId: '21300150'; px: '3.973'; sz: '13.491146'; side: 'buy'; ts: '1639999319938' }]\n}\n\ntype OkexV5TradesAllMessage = {\n  arg: { channel: 'trades-all'; instId: string }\n  data: [{ instId: 'WAXP-USDT'; tradeId: '2251300'; px: '0.05566'; sz: '838.714488'; side: 'sell'; ts: '1697760000083' }]\n}\n\ntype OkexV5BookLevel = [string, string, string, string]\n\ntype OkexV5BookMessage =\n  | {\n      arg: { channel: 'books-l2-tbt'; instId: string }\n      action: 'snapshot'\n      data: [\n        {\n          asks: OkexV5BookLevel[]\n          bids: OkexV5BookLevel[]\n          ts: string\n        }\n      ]\n    }\n  | {\n      arg: { channel: 'books-l2-tbt'; instId: string }\n      action: 'update'\n      data: [{ asks: OkexV5BookLevel[]; bids: OkexV5BookLevel[]; ts: string }]\n    }\n\ntype OkexV5TickerMessage = {\n  arg: { channel: 'tickers'; instId: string }\n  data: [\n    {\n      instType: 'SPOT'\n      instId: 'ACT-USDT'\n      last: '0.00718'\n      lastSz: '8052.117146'\n      askPx: '0.0072'\n      askSz: '54969.407534'\n      bidPx: '0.00713'\n      bidSz: '4092.326'\n      open24h: '0.00717'\n      high24h: '0.00722'\n      low24h: '0.00696'\n      sodUtc0: '0.00714'\n      sodUtc8: '0.00721'\n      volCcy24h: '278377.765301'\n      vol24h: '39168761.49997'\n      ts: '1639999318686'\n    }\n  ]\n}\n\ntype OkexV5OpenInterestMessage = {\n  arg: { channel: 'open-interest'; instId: string }\n  data: [{ instId: 'FIL-USDT-220325'; instType: 'FUTURES'; oi: '236870'; oiCcy: '23687'; ts: '1640131202886' }]\n}\n\ntype OkexV5MarkPriceMessage = {\n  arg: { channel: 'mark-price'; instId: string }\n  data: [{ instId: 'FIL-USDT-220325'; instType: 'FUTURES'; markPx: '36.232'; ts: '1640131204676' }]\n}\n\ntype OkexV5IndexTickerMessage = {\n  arg: { channel: 'index-tickers'; instId: string }\n  data: [\n    {\n      instId: 'FIL-USDT'\n      idxPx: '35.583'\n      open24h: '34.558'\n      high24h: '35.862'\n      low24h: '34.529'\n      sodUtc0: '35.309'\n      sodUtc8: '34.83'\n      ts: '1640140200581'\n    }\n  ]\n}\n\ntype OkexV5FundingRateMessage = {\n  arg: { channel: 'funding-rate'; instId: string }\n  data: [{ fundingRate: '0.00048105' | undefined; fundingTime: '1640131200000'; instId: string; instType: 'SWAP'; nextFundingRate: '' }]\n}\n\ntype OkexV5LiquidationMessage = {\n  arg: { channel: 'liquidations'; instId: 'BTC-USDT-211231'; generated: true }\n  data: [{ bkLoss: '0'; bkPx: '49674.2'; ccy: ''; posSide: 'short'; side: 'buy'; sz: '40'; ts: '1640140211925' }]\n}\n\ntype OkexV5LiquidationOrderMessage = {\n  arg: { channel: 'liquidation-orders'; instType: 'FUTURES' }\n  data: [\n    {\n      details: [{ bkLoss: '0'; bkPx: '0.55205'; ccy: ''; posSide: 'short'; side: 'buy'; sz: '39'; ts: '1680173247614' }]\n      instFamily: 'XRP-USD'\n      instId: 'XRP-USD-230929'\n      instType: 'FUTURES'\n      uly: 'XRP-USD'\n    }\n  ]\n}\n\ntype OkexV5SummaryMessage = {\n  arg: { channel: 'opt-summary'; uly: 'ETH-USD' }\n  data: [\n    {\n      instType: 'OPTION'\n      instId: 'ETH-USD-211222-4000-C'\n      uly: 'ETH-USD'\n      delta: '0.1975745164'\n      gamma: '4.7290833601'\n      vega: '0.0002005415'\n      theta: '-0.004262964'\n      lever: '162.472613953'\n      markVol: '0.7794507758'\n      bidVol: '0.7421960156'\n      askVol: '0.8203208593'\n      realVol: ''\n      deltaBS: '0.2038286081'\n      gammaBS: '0.0013437829'\n      thetaBS: '-16.4798150221'\n      vegaBS: '0.7647227087'\n      ts: '1640001659301'\n    }\n  ]\n}\n\n//---\n//V3 Okex API mappers\n// https://www.okex.com/docs/en/#ws_swap-README\n\nexport class OkexTradesMapper implements Mapper<OKEX_EXCHANGES, Trade> {\n  constructor(private readonly _exchange: Exchange, private readonly _market: OKEX_MARKETS) {}\n\n  canHandle(message: OkexDataMessage) {\n    return message.table === `${this._market}/trade`\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: `${this._market}/trade` as const,\n        symbols\n      }\n    ]\n  }\n\n  *map(okexTradesMessage: OKexTradesDataMessage, localTimestamp: Date): IterableIterator<Trade> {\n    for (const okexTrade of okexTradesMessage.data) {\n      const symbol = okexTrade.instrument_id\n\n      yield {\n        type: 'trade',\n        symbol,\n        exchange: this._exchange,\n        id: typeof okexTrade.trade_id === 'string' ? okexTrade.trade_id : undefined,\n        price: Number(okexTrade.price),\n        amount: okexTrade.qty !== undefined ? Number(okexTrade.qty) : Number(okexTrade.size),\n        side: okexTrade.side,\n        timestamp: new Date(okexTrade.timestamp),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nconst mapBookLevel = (level: OkexBookLevel) => {\n  const price = Number(level[0])\n  const amount = Number(level[1])\n\n  return { price, amount }\n}\n\nexport class OkexBookChangeMapper implements Mapper<OKEX_EXCHANGES, BookChange> {\n  constructor(\n    private readonly _exchange: Exchange,\n    private readonly _market: OKEX_MARKETS,\n    private readonly _canUseTickByTickChannel: boolean\n  ) {}\n\n  canHandle(message: OkexDataMessage) {\n    const channelSuffix = this._canUseTickByTickChannel ? 'depth_l2_tbt' : 'depth'\n\n    return message.table === `${this._market}/${channelSuffix}`\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    if (this._canUseTickByTickChannel) {\n      return [\n        {\n          channel: `${this._market}/depth_l2_tbt` as const,\n          symbols\n        }\n      ]\n    }\n\n    // subscribe to both book channels and in canHandle decide which one to use\n    // as one can subscribe to date range period that overlaps both when only depth channel has been available\n    // and when both were available (both depth and depth_l2_tbt)\n    return [\n      {\n        channel: `${this._market}/depth_l2_tbt`,\n        symbols\n      } as const,\n      {\n        channel: `${this._market}/depth`,\n        symbols\n      } as const\n    ]\n  }\n\n  *map(okexDepthDataMessage: OkexDepthDataMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    for (const message of okexDepthDataMessage.data) {\n      if (message.bids.length === 0 && message.asks.length === 0 && okexDepthDataMessage.action !== 'partial') {\n        continue\n      }\n\n      const timestamp = new Date(message.timestamp)\n\n      if (timestamp.valueOf() === 0) {\n        continue\n      }\n\n      yield {\n        type: 'book_change',\n        symbol: message.instrument_id,\n        exchange: this._exchange,\n        isSnapshot: okexDepthDataMessage.action === 'partial',\n        bids: message.bids.map(mapBookLevel),\n        asks: message.asks.map(mapBookLevel),\n        timestamp,\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nexport class OkexDerivativeTickerMapper implements Mapper<'okex-futures' | 'okex-swap', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n  private _futuresChannels = ['futures/ticker', 'futures/mark_price']\n  private _swapChannels = ['swap/ticker', 'swap/mark_price', 'swap/funding_rate']\n\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: OkexDataMessage) {\n    const channels = this._exchange === 'okex-futures' ? this._futuresChannels : this._swapChannels\n\n    return channels.includes(message.table)\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    const channels = this._exchange === 'okex-futures' ? this._futuresChannels : this._swapChannels\n    return channels.map((channel) => {\n      return {\n        channel,\n        symbols\n      } as any\n    })\n  }\n\n  *map(\n    message: OkexTickersMessage | OkexFundingRateMessage | OkexMarkPriceMessage,\n    localTimestamp: Date\n  ): IterableIterator<DerivativeTicker> {\n    for (const okexMessage of message.data) {\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(okexMessage.instrument_id, this._exchange)\n      if ('funding_rate' in okexMessage) {\n        pendingTickerInfo.updateFundingRate(Number(okexMessage.funding_rate))\n        pendingTickerInfo.updateFundingTimestamp(new Date(okexMessage.funding_time))\n        if (okexMessage.estimated_rate !== undefined) {\n          pendingTickerInfo.updatePredictedFundingRate(Number(okexMessage.estimated_rate))\n        }\n      }\n\n      if ('mark_price' in okexMessage) {\n        pendingTickerInfo.updateMarkPrice(Number(okexMessage.mark_price))\n      }\n      if ('open_interest' in okexMessage) {\n        const openInterest = Number(okexMessage.open_interest)\n        if (openInterest > 0) {\n          pendingTickerInfo.updateOpenInterest(Number(okexMessage.open_interest))\n        }\n      }\n      if ('last' in okexMessage) {\n        pendingTickerInfo.updateLastPrice(Number(okexMessage.last))\n      }\n\n      if (okexMessage.timestamp !== undefined) {\n        pendingTickerInfo.updateTimestamp(new Date(okexMessage.timestamp))\n      }\n\n      if (pendingTickerInfo.hasChanged()) {\n        yield pendingTickerInfo.getSnapshot(localTimestamp)\n      }\n    }\n  }\n}\n\nexport class OkexOptionSummaryMapper implements Mapper<'okex-options', OptionSummary> {\n  private readonly _indexPrices = new Map<string, number>()\n  private readonly expiration_regex = /(\\d{2})(\\d{2})(\\d{2})/\n\n  canHandle(message: OkexDataMessage) {\n    return message.table === 'index/ticker' || message.table === 'option/summary'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    const indexes =\n      symbols !== undefined\n        ? symbols.map((s) => {\n            const symbolParts = s.split('-')\n            return `${symbolParts[0]}-${symbolParts[1]}`\n          })\n        : undefined\n\n    return [\n      {\n        channel: `option/summary`,\n        symbols\n      } as const,\n      {\n        channel: `index/ticker`,\n        symbols: indexes\n      } as const\n    ]\n  }\n\n  *map(message: OkexOptionSummaryData | OkexIndexData, localTimestamp: Date): IterableIterator<OptionSummary> | undefined {\n    if (message.table === 'index/ticker') {\n      for (const index of message.data) {\n        const lastIndexPrice = Number(index.last)\n        if (lastIndexPrice > 0) {\n          this._indexPrices.set(index.instrument_id, lastIndexPrice)\n        }\n      }\n      return\n    }\n\n    for (const summary of message.data) {\n      const symbolParts = summary.instrument_id.split('-')\n      const isPut = symbolParts[4] === 'P'\n      const strikePrice = Number(symbolParts[3])\n\n      var dateArray = this.expiration_regex.exec(symbolParts[2])!\n\n      const expirationDate = new Date(Date.UTC(+('20' + dateArray[1]), +dateArray[2] - 1, +dateArray[3], 8, 0, 0, 0))\n      const lastUnderlyingPrice = this._indexPrices.get(summary.underlying)\n\n      const optionSummary: OptionSummary = {\n        type: 'option_summary',\n        symbol: summary.instrument_id,\n        exchange: 'okex-options',\n        optionType: isPut ? 'put' : 'call',\n        strikePrice,\n        expirationDate,\n\n        bestBidPrice: asNumberIfValid(summary.best_bid),\n        bestBidAmount: asNumberIfValid(summary.best_bid_size),\n        bestBidIV: asNumberIfValid(summary.bid_vol),\n\n        bestAskPrice: asNumberIfValid(summary.best_ask),\n        bestAskAmount: asNumberIfValid(summary.best_ask_size),\n        bestAskIV: asNumberIfValid(summary.ask_vol),\n\n        lastPrice: asNumberIfValid(summary.last),\n        openInterest: asNumberIfValid(summary.open_interest),\n\n        markPrice: asNumberIfValid(summary.mark_price),\n        markIV: asNumberIfValid(summary.mark_vol),\n\n        delta: asNumberIfValid(summary.delta),\n        gamma: asNumberIfValid(summary.gamma),\n        vega: asNumberIfValid(summary.vega),\n        theta: asNumberIfValid(summary.theta),\n        rho: undefined,\n\n        underlyingPrice: lastUnderlyingPrice,\n        underlyingIndex: summary.underlying,\n\n        timestamp: new Date(summary.timestamp),\n        localTimestamp: localTimestamp\n      }\n\n      yield optionSummary\n    }\n  }\n}\n\nexport class OkexLiquidationsMapper implements Mapper<OKEX_EXCHANGES, Liquidation> {\n  constructor(private readonly _exchange: Exchange, private readonly _market: OKEX_MARKETS) {}\n\n  canHandle(message: OkexDataMessage) {\n    return message.table === `${this._market}/liquidation`\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: `${this._market}/liquidation`,\n        symbols\n      } as any\n    ]\n  }\n\n  *map(okexLiquidationDataMessage: OkexLiqudationDataMessage, localTimestamp: Date): IterableIterator<Liquidation> {\n    for (const okexLiquidation of okexLiquidationDataMessage.data) {\n      const liquidation: Liquidation = {\n        type: 'liquidation',\n        symbol: okexLiquidation.instrument_id,\n        exchange: this._exchange,\n        id: undefined,\n        price: Number(okexLiquidation.price),\n        amount: Number(okexLiquidation.size),\n        side: okexLiquidation.type === '3' ? 'sell' : 'buy',\n        timestamp: new Date(okexLiquidation.created_at),\n        localTimestamp: localTimestamp\n      }\n      yield liquidation\n    }\n  }\n}\n\nexport class OkexBookTickerMapper implements Mapper<OKEX_EXCHANGES, BookTicker> {\n  constructor(private readonly _exchange: Exchange, private readonly _market: OKEX_MARKETS) {}\n\n  canHandle(message: OkexDataMessage) {\n    return message.table === `${this._market}/ticker`\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: `${this._market}/ticker`,\n        symbols\n      } as any\n    ]\n  }\n\n  *map(message: OkexTickersMessage, localTimestamp: Date): IterableIterator<BookTicker> {\n    for (const okexTicker of message.data) {\n      const ticker: BookTicker = {\n        type: 'book_ticker',\n        symbol: okexTicker.instrument_id,\n        exchange: this._exchange,\n\n        askAmount: asNumberIfValid(okexTicker.best_ask_size),\n        askPrice: asNumberIfValid(okexTicker.best_ask),\n\n        bidPrice: asNumberIfValid(okexTicker.best_bid),\n        bidAmount: asNumberIfValid(okexTicker.best_bid_size),\n        timestamp: new Date(okexTicker.timestamp),\n        localTimestamp: localTimestamp\n      }\n\n      yield ticker\n    }\n  }\n}\n\ntype OkexDataMessage = {\n  table: string\n}\n\ntype OKexTradesDataMessage = {\n  data: {\n    side: 'buy' | 'sell'\n    trade_id: string | number\n    price: string | number\n    qty?: string | number\n    size?: string | number\n    instrument_id: string\n    timestamp: string\n  }[]\n}\n\ntype OkexLiqudationDataMessage = {\n  data: {\n    loss: string\n    size: string\n    price: string\n    created_at: string\n    type: string\n    instrument_id: string\n  }[]\n}\n\ntype OkexTickersMessage = {\n  data: {\n    last: string | number\n    best_bid: string | number\n    best_ask: string | number\n    open_interest: string | undefined\n    instrument_id: string\n    timestamp: string\n    best_bid_size: string | undefined\n    best_ask_size: string | undefined\n  }[]\n}\n\ntype OkexFundingRateMessage = {\n  data: {\n    funding_rate: string\n    funding_time: string\n    estimated_rate?: string\n    instrument_id: string\n    timestamp: undefined\n  }[]\n}\n\ntype OkexMarkPriceMessage = {\n  data: {\n    instrument_id: string\n    mark_price: string\n    timestamp: string\n  }[]\n}\n\ntype OkexDepthDataMessage = {\n  action: 'partial' | 'update'\n  data: {\n    instrument_id: string\n    asks: OkexBookLevel[]\n    bids: OkexBookLevel[]\n    timestamp: string\n  }[]\n}\n\ntype OkexBookLevel = [number | string, number | string, number | string, number | string]\n\ntype OKEX_EXCHANGES = 'okex' | 'okcoin' | 'okex-futures' | 'okex-swap' | 'okex-options'\n\ntype OKEX_MARKETS = 'spot' | 'swap' | 'futures' | 'option'\n\ntype OkexIndexData = {\n  table: 'index/ticker'\n  data: [\n    {\n      last: number\n      instrument_id: string\n    }\n  ]\n}\n\ntype OkexOptionSummaryData = {\n  table: 'option/summary'\n  data: [\n    {\n      instrument_id: string\n      underlying: string\n      best_ask: string\n      best_bid: string\n      best_ask_size: string\n      best_bid_size: string\n      change_rate: string\n      delta: string\n      gamma: string\n      bid_vol: string\n      ask_vol: string\n      mark_vol: string\n      last: string\n      leverage: string\n      mark_price: string\n      theta: string\n      vega: string\n      open_interest: string\n      timestamp: string\n    }\n  ]\n}\n\ntype OkexBBOTbtData = {\n  arg: { channel: 'bbo-tbt'; instId: 'WAVES-USDT-SWAP' }\n  data: [{ asks: [['16.083', '65', '0', '1']]; bids: [['16.082', '143', '0', '4']]; ts: '1651750920000' }]\n}\n"
  },
  {
    "path": "src/mappers/okexspreads.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\nexport class OkexSpreadsTradesMapper implements Mapper<'okex-spreads', Trade> {\n  canHandle(message: any) {\n    if (message.event !== undefined || message.arg === undefined) {\n      return false\n    }\n    return message.arg.channel === 'sprd-public-trades'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: `sprd-public-trades` as const,\n        symbols\n      }\n    ]\n  }\n\n  *map(okexTradesMessage: OkexSpreadTradeMessage, localTimestamp: Date): IterableIterator<Trade> {\n    for (const okexTrade of okexTradesMessage.data) {\n      yield {\n        type: 'trade',\n        symbol: okexTrade.sprdId,\n        exchange: 'okex-spreads',\n        id: okexTrade.tradeId,\n        price: Number(okexTrade.px),\n        amount: Number(okexTrade.sz),\n        side: okexTrade.side === 'buy' ? 'buy' : 'sell',\n        timestamp: new Date(Number(okexTrade.ts)),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nconst mapBookLevel = (level: OkexSpreadBookLevel) => {\n  const price = Number(level[0])\n  const amount = Number(level[1])\n\n  return { price, amount }\n}\n\nexport class OkexSpreadsBookChangeMapper implements Mapper<'okex-spreads', BookChange> {\n  canHandle(message: any) {\n    if (message.event !== undefined || message.arg === undefined) {\n      return false\n    }\n\n    return message.arg.channel === 'sprd-books5'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    return [\n      {\n        channel: 'sprd-books5',\n        symbols\n      }\n    ]\n  }\n\n  *map(okexDepthDataMessage: OkexSpreadBookMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    for (const message of okexDepthDataMessage.data) {\n      const timestamp = new Date(Number(message.ts))\n\n      if (timestamp.valueOf() === 0) {\n        continue\n      }\n\n      yield {\n        type: 'book_change',\n        symbol: okexDepthDataMessage.arg.sprdId,\n        exchange: 'okex-spreads',\n        isSnapshot: true,\n        bids: message.bids.map(mapBookLevel),\n        asks: message.asks.map(mapBookLevel),\n        timestamp,\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nexport class OkexSpreadsBookTickerMapper implements Mapper<'okex-spreads', BookTicker> {\n  canHandle(message: any) {\n    if (message.event !== undefined || message.arg === undefined) {\n      return false\n    }\n\n    return message.arg.channel === 'sprd-bbo-tbt'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: `sprd-bbo-tbt` as const,\n        symbols\n      }\n    ]\n  }\n\n  *map(message: OkexSpreadBBOMessage, localTimestamp: Date): IterableIterator<BookTicker> {\n    if (!message.data) {\n      return\n    }\n\n    for (const tbtTicker of message.data) {\n      const timestamp = new Date(Number(tbtTicker.ts))\n\n      if (timestamp.valueOf() === 0) {\n        continue\n      }\n\n      const bestAsk = tbtTicker.asks !== undefined && tbtTicker.asks[0] ? mapBookLevel(tbtTicker.asks[0]) : undefined\n      const bestBid = tbtTicker.bids !== undefined && tbtTicker.bids[0] ? mapBookLevel(tbtTicker.bids[0]) : undefined\n\n      const ticker: BookTicker = {\n        type: 'book_ticker',\n        symbol: message.arg.sprdId,\n        exchange: 'okex-spreads',\n        askAmount: bestAsk?.amount,\n        askPrice: bestAsk?.price,\n\n        bidPrice: bestBid?.price,\n        bidAmount: bestBid?.amount,\n        timestamp,\n        localTimestamp: localTimestamp\n      }\n\n      yield ticker\n    }\n  }\n}\n\ntype OkexSpreadTradeMessage = {\n  arg: { channel: 'sprd-public-trades'; sprdId: 'ETH-USD-SWAP_ETH-USD-240329' }\n  data: [\n    {\n      sprdId: 'ETH-USD-SWAP_ETH-USD-240329'\n      tradeId: '2102504804202430464'\n      px: '64.9'\n      sz: '13430'\n      side: 'sell' | 'buy'\n      ts: '1703155852033'\n    }\n  ]\n}\n\ntype OkexSpreadBookLevel = [string, string, string, string]\n\ntype OkexSpreadBookMessage = {\n  arg: { channel: 'sprd-books5'; sprdId: 'ETH-USD-231222_ETH-USD-231229' }\n  data: [\n    {\n      bids: OkexSpreadBookLevel[]\n      asks: OkexSpreadBookLevel[]\n      ts: '1703155852055'\n    }\n  ]\n}\n\ntype OkexSpreadBBOMessage = {\n  arg: { channel: 'sprd-bbo-tbt'; sprdId: 'BTC-USD-SWAP_BTC-USD-231229' }\n  data: [{ bids: [OkexSpreadBookLevel]; asks: [OkexSpreadBookLevel]; ts: '1703155859214' }]\n}\n"
  },
  {
    "path": "src/mappers/phemex.ts",
    "content": "import { Mapper, PendingTickerInfoHelper } from './mapper.ts'\nimport { Trade, BookChange, DerivativeTicker } from '../types.ts'\n\n// phemex provides timestamps in nanoseconds\nconst fromNanoSecondsToDate = (nanos: number) => {\n  const microtimestamp = Math.floor(nanos / 1000)\n\n  const timestamp = new Date(microtimestamp / 1000)\n  timestamp.μs = microtimestamp % 1000\n\n  return timestamp\n}\n\nfunction getPriceScale(symbol: string) {\n  if (symbol.startsWith('s')) {\n    return 1e8\n  }\n\n  return 1e4\n}\n\nfunction getQtyScale(symbol: string) {\n  if (symbol.startsWith('s')) {\n    return 1e8\n  }\n\n  return 1\n}\n\nconst COINS_STARTING_WITH_S = [\n  'SOLUSD',\n  'SUSHIUSD',\n  'SNXUSD',\n  'SANDUSD',\n  'SRMUSD',\n  'SKLUSD',\n  'SXPUSD',\n  'STORJUSD',\n  'SFPUSD',\n  'STGUSD',\n  'SLPUUSD',\n  'SPELLUSD',\n  'SSVUSD',\n  'STXUSD',\n  'SUIUSD',\n  'STMXUSD',\n  'SEIUSD',\n  'STRUSD',\n  'STPTUSD',\n  'SNTUSD',\n  'STEEMUSD',\n  'SUPERUSD',\n  'SLERFUSD',\n  'SAGAUSD',\n  'SYNUSD',\n  'SYSUSD',\n  'SUNUSD',\n  'SUNDOGUSD',\n  'SCRUSD',\n  'SANTOSUSD',\n  'SAFEUSD',\n  'SWELLUSD',\n  'SCRTUSD',\n  'SPXUSD',\n  'SWARMSUSD',\n  'SONICUSD',\n  'SUSDT',\n  'SHELLUSD',\n  'SIRENUSD',\n  'SERAPHUSD',\n  'STOUSD',\n  'SIGNUSD',\n  'STICKMANUSD',\n  'SYRUPUSD',\n  'SXTUSD',\n  'SKYAIUSD',\n  'SCAUSD',\n  'SAROSUSD',\n  'SOONUSD',\n  'SOPHUSD',\n  'SKATEUSD',\n  'SQDUSD',\n  'SLPUSD',\n  'STRAXUSD',\n  'STRKUSD',\n  'SOLVUSD',\n  'SPKUSDT',\n  'SAHARAUSDT'\n]\nfunction getInstrumentType(symbol: string) {\n  if (/\\d+$/.test(symbol)) {\n    return 'future'\n  }\n\n  if (COINS_STARTING_WITH_S.some((c) => symbol.startsWith(c)) || symbol.startsWith('S') === false) {\n    return 'perpetual'\n  }\n\n  return 'spot'\n}\n\nfunction getApiSymbolId(symbolId: string) {\n  const type = getInstrumentType(symbolId)\n  if (type === 'spot' && symbolId.startsWith('S')) {\n    return symbolId.charAt(0).toLowerCase() + symbolId.slice(1)\n  }\n  if (symbolId.startsWith('U100')) {\n    return symbolId.charAt(0).toLowerCase() + symbolId.slice(1)\n  }\n\n  if (symbolId === 'CETHUSD') {\n    return symbolId.charAt(0).toLowerCase() + symbolId.slice(1)\n  }\n\n  return symbolId\n}\n\nfunction getSymbols(symbols: string[]) {\n  const perpV2Symbols = symbols.filter((s) => getInstrumentType(s) === 'perpetual' && s.endsWith('USDT')).map(getApiSymbolId)\n  const otherSymbols = symbols.filter((s) => getInstrumentType(s) !== 'perpetual' || s.endsWith('USDT') == false).map(getApiSymbolId)\n\n  return {\n    perpV2Symbols,\n    otherSymbols\n  }\n}\n\nexport const phemexTradesMapper: Mapper<'phemex', Trade> = {\n  canHandle(message: PhemexTradeMessage) {\n    return message.type === 'incremental' && ('trades' in message || 'trades_p' in message)\n  },\n\n  getFilters(symbols?: string[]) {\n    if (symbols == undefined || symbols.length === 0) {\n      return [\n        {\n          channel: 'trades'\n        } as const,\n        {\n          channel: 'trades_p'\n        } as const\n      ]\n    }\n\n    const { perpV2Symbols, otherSymbols } = getSymbols(symbols)\n\n    const filters = []\n\n    if (perpV2Symbols.length > 0) {\n      filters.push({\n        channel: 'trades_p',\n        symbols: perpV2Symbols\n      } as const)\n    }\n    if (otherSymbols.length > 0) {\n      filters.push({\n        channel: 'trades',\n        symbols: otherSymbols\n      } as const)\n    }\n\n    return filters\n  },\n\n  *map(message: PhemexTradeMessage, localTimestamp: Date): IterableIterator<Trade> {\n    if ('trades' in message) {\n      for (const [timestamp, side, priceEp, qty] of message.trades) {\n        const symbol = message.symbol\n\n        yield {\n          type: 'trade',\n          symbol: symbol.toUpperCase(),\n          exchange: 'phemex',\n          id: undefined,\n          price: priceEp / getPriceScale(symbol),\n          amount: qty / getQtyScale(symbol),\n          side: side === 'Buy' ? 'buy' : 'sell',\n          timestamp: fromNanoSecondsToDate(timestamp),\n          localTimestamp: localTimestamp\n        }\n      }\n    } else if ('trades_p' in message) {\n      for (const [timestamp, side, price, qty] of message.trades_p) {\n        const symbol = message.symbol\n\n        yield {\n          type: 'trade',\n          symbol: symbol.toUpperCase(),\n          exchange: 'phemex',\n          id: undefined,\n          price: Number(price),\n          amount: Number(qty),\n          side: side === 'Buy' ? 'buy' : 'sell',\n          timestamp: fromNanoSecondsToDate(timestamp),\n          localTimestamp: localTimestamp\n        }\n      }\n    }\n  }\n}\n\nconst mapBookLevelForSymbol =\n  (symbol: string) =>\n  ([priceEp, qty]: PhemexBookLevel) => {\n    return {\n      price: priceEp / getPriceScale(symbol),\n      amount: qty / getQtyScale(symbol)\n    }\n  }\n\nfunction mapPerpBookLevel([price, amount]: [string, string]) {\n  return {\n    price: Number(price),\n    amount: Number(amount)\n  }\n}\n\nexport const phemexBookChangeMapper: Mapper<'phemex', BookChange> = {\n  canHandle(message: PhemexBookMessage) {\n    return 'book' in message || 'orderbook_p' in message\n  },\n\n  getFilters(symbols?: string[]) {\n    if (symbols == undefined || symbols.length === 0) {\n      return [\n        {\n          channel: 'book'\n        } as const,\n        {\n          channel: 'orderbook_p'\n        } as const\n      ]\n    }\n\n    const { perpV2Symbols, otherSymbols } = getSymbols(symbols)\n    const filters = []\n\n    if (perpV2Symbols.length > 0) {\n      filters.push({\n        channel: 'orderbook_p',\n        symbols: perpV2Symbols\n      } as const)\n    }\n    if (otherSymbols.length > 0) {\n      filters.push({\n        channel: 'book',\n        symbols: otherSymbols\n      } as const)\n    }\n\n    return filters\n  },\n\n  *map(message: PhemexBookMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    const symbol = message.symbol\n    if ('book' in message) {\n      const mapBookLevel = mapBookLevelForSymbol(symbol)\n      yield {\n        type: 'book_change',\n        symbol: symbol.toUpperCase(),\n        exchange: 'phemex',\n        isSnapshot: message.type === 'snapshot',\n        bids: message.book.bids.map(mapBookLevel),\n        asks: message.book.asks.map(mapBookLevel),\n\n        timestamp: fromNanoSecondsToDate(message.timestamp),\n        localTimestamp\n      }\n    } else if ('orderbook_p' in message) {\n      yield {\n        type: 'book_change',\n        symbol: symbol.toUpperCase(),\n        exchange: 'phemex',\n        isSnapshot: message.type === 'snapshot',\n        bids: message.orderbook_p.bids.map(mapPerpBookLevel),\n        asks: message.orderbook_p.asks.map(mapPerpBookLevel),\n        timestamp: fromNanoSecondsToDate(message.timestamp),\n        localTimestamp\n      }\n    }\n  }\n}\n\nexport class PhemexDerivativeTickerMapper implements Mapper<'phemex', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n\n  canHandle(message: PhemexTicker) {\n    return 'market24h' in message || message.method === 'perp_market24h_pack_p.update'\n  }\n\n  getFilters(symbols?: string[]) {\n    if (symbols == undefined || symbols.length === 0) {\n      return [\n        {\n          channel: 'market24h'\n        } as const,\n        {\n          channel: 'perp_market24h_pack_p'\n        } as const\n      ]\n    }\n\n    const { perpV2Symbols, otherSymbols } = getSymbols(symbols)\n    const filters = []\n\n    if (perpV2Symbols.length > 0) {\n      filters.push({\n        channel: 'perp_market24h_pack_p',\n        symbols: perpV2Symbols\n      } as const)\n    }\n    if (otherSymbols.length > 0) {\n      filters.push({\n        channel: 'market24h',\n        symbols: otherSymbols\n      } as const)\n    }\n\n    return filters\n  }\n\n  *map(message: PhemexTicker, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    if ('market24h' in message) {\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(message.market24h.symbol, 'phemex')\n      const phemexTicker = message.market24h\n      pendingTickerInfo.updateFundingRate(phemexTicker.fundingRate / 100000000)\n      pendingTickerInfo.updatePredictedFundingRate(phemexTicker.predFundingRate / 100000000)\n      pendingTickerInfo.updateIndexPrice(phemexTicker.indexPrice / 10000)\n      pendingTickerInfo.updateMarkPrice(phemexTicker.markPrice / 10000)\n      pendingTickerInfo.updateOpenInterest(phemexTicker.openInterest)\n      pendingTickerInfo.updateLastPrice(phemexTicker.close / 10000)\n      pendingTickerInfo.updateTimestamp(fromNanoSecondsToDate(message.timestamp))\n\n      if (pendingTickerInfo.hasChanged()) {\n        yield pendingTickerInfo.getSnapshot(localTimestamp)\n      }\n    } else {\n      for (let [\n        symbol,\n        _openRp,\n        _highRp,\n        _lowRp,\n        lastRp,\n        _volumeRq,\n        _turnoverRv,\n        openInterestRv,\n        indexRp,\n        markRp,\n        fundingRateRr,\n        predFundingRateRr\n      ] of message.data) {\n        const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(symbol, 'phemex')\n\n        pendingTickerInfo.updateFundingRate(Number(fundingRateRr))\n        pendingTickerInfo.updatePredictedFundingRate(Number(predFundingRateRr))\n        pendingTickerInfo.updateIndexPrice(Number(indexRp))\n        pendingTickerInfo.updateMarkPrice(Number(markRp))\n        pendingTickerInfo.updateOpenInterest(Number(openInterestRv))\n        pendingTickerInfo.updateLastPrice(Number(lastRp))\n        pendingTickerInfo.updateTimestamp(fromNanoSecondsToDate(message.timestamp))\n\n        if (pendingTickerInfo.hasChanged()) {\n          yield pendingTickerInfo.getSnapshot(localTimestamp)\n        }\n      }\n    }\n  }\n}\n\ntype PhemexTradeMessage =\n  | {\n      symbol: string\n      trades: [[number, 'Buy' | 'Sell', number, number]]\n      type: 'incremental' | 'snapshot'\n    }\n  | {\n      sequence: 79157171\n      symbol: 'BTCUSDT'\n      trades_p: [[1669198793402790477, 'Buy' | 'Sell', '16545.6', '0.7']]\n      type: 'snapshot' | 'incremental'\n    }\n\ntype PhemexBookLevel = [number, number]\n\ntype PhemexBookMessage =\n  | {\n      book: {\n        asks: PhemexBookLevel[]\n        bids: PhemexBookLevel[]\n      }\n\n      symbol: string\n      timestamp: number\n      type: 'incremental' | 'snapshot'\n    }\n  | {\n      depth: 0\n      orderbook_p: {\n        asks: [string, string][]\n        bids: [string, string][]\n      }\n      sequence: 80321058\n      symbol: 'BTCUSDT'\n      timestamp: 1669198850490348246\n      type: 'snapshot' | 'incremental'\n    }\n\ntype PhemexTicker =\n  | {\n      market24h: {\n        fundingRate: number\n        indexPrice: number\n        markPrice: number\n        openInterest: number\n        predFundingRate: number\n        symbol: string\n        close: number\n      }\n\n      timestamp: number\n      method: undefined\n    }\n  | {\n      data: [\n        [\n          'SOLUSDT',\n          '11.246',\n          '13.41',\n          '10.91',\n          '13.029',\n          '10445.82',\n          '127687.14224',\n          '0',\n          '13.03062296',\n          '13.03154351',\n          '0.0001',\n          '0.0001'\n        ],\n\n        [\n          'BTCUSDT',\n          '15713.1',\n          '16626',\n          '15685.7',\n          '16545.6',\n          '1374.476',\n          '22296790.4579',\n          '0',\n          '16553.56998432',\n          '16554.73942506',\n          '0.0001',\n          '0.0001'\n        ]\n      ]\n      method: 'perp_market24h_pack_p.update'\n      timestamp: 1669198855202180601\n      type: 'incremental'\n    }\n"
  },
  {
    "path": "src/mappers/poloniex.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\nexport class PoloniexV2TradesMapper implements Mapper<'poloniex', Trade> {\n  canHandle(message: any) {\n    return message.channel === 'trades' && message.data !== undefined && message.data.length > 0\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trades',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: PoloniexV2TradesMessage, localTimestamp: Date): IterableIterator<Trade> {\n    for (const item of message.data) {\n      yield {\n        type: 'trade',\n        symbol: item.symbol,\n        exchange: 'poloniex',\n        id: item.id,\n        price: Number(item.price),\n        amount: Number(item.quantity),\n        side: item.takerSide === 'sell' ? 'sell' : 'buy',\n        timestamp: new Date(item.createTime),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nconst mapBookLevelV2 = (level: [string, string]) => {\n  return {\n    price: Number(level[0]),\n    amount: Number(level[1])\n  }\n}\nexport class PoloniexV2BookChangeMapper implements Mapper<'poloniex', BookChange> {\n  canHandle(message: any) {\n    return message.channel === 'book_lv2' && message.data !== undefined && message.data.length > 0\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'book_lv2',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: PoloniexV2BookMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    for (const item of message.data) {\n      const bookSnapshot: BookChange = {\n        type: 'book_change',\n        symbol: item.symbol,\n        exchange: 'poloniex',\n        isSnapshot: message.action === 'snapshot',\n        bids: item.bids.map(mapBookLevelV2),\n        asks: item.asks.map(mapBookLevelV2),\n        timestamp: new Date(item.ts),\n        localTimestamp: localTimestamp\n      }\n\n      yield bookSnapshot\n    }\n  }\n}\n\nexport class PoloniexTradesMapper implements Mapper<'poloniex', Trade> {\n  private readonly _channelIdToSymbolMap: Map<number, string> = new Map()\n\n  canHandle(message: PoloniexPriceAggreatedMessage) {\n    if (Array.isArray(message) === false) {\n      return false\n    }\n\n    if (message.length < 3) {\n      return false\n    }\n    // store mapping between channel id and symbols\n    if (message[2][0][0] === 'i') {\n      this._channelIdToSymbolMap.set(message[0], message[2][0][1].currencyPair)\n    }\n\n    return message[2].some((m) => m[0] === 't')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'price_aggregated_book',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: PoloniexPriceAggreatedMessage, localTimestamp: Date): IterableIterator<Trade> {\n    const lastItem = message[message.length - 1]\n    const symbol = typeof lastItem === 'string' ? lastItem : this._channelIdToSymbolMap.get(message[0])\n\n    if (symbol === undefined) {\n      return\n    }\n\n    for (const item of message[2]) {\n      if (item[0] !== 't') {\n        continue\n      }\n\n      const [_, id, side, price, size, timestamp] = item\n\n      yield {\n        type: 'trade',\n        symbol,\n        exchange: 'poloniex',\n        id: String(id),\n        price: Number(price),\n        amount: Number(size),\n        side: side === 1 ? 'buy' : 'sell',\n        timestamp: new Date(timestamp * 1000),\n        localTimestamp: localTimestamp\n      }\n    }\n  }\n}\n\nconst mapSnapshotLevels = (levels: { [key: string]: string }) => {\n  return Object.keys(levels).map((key) => {\n    return {\n      price: Number(key),\n      amount: Number(levels[key])\n    }\n  })\n}\n\nconst mapBookLevel = (level: PoloniexBookUpdate) => {\n  return {\n    price: Number(level[2]),\n    amount: Number(level[3])\n  }\n}\n\nexport class PoloniexBookChangeMapper implements Mapper<'poloniex', BookChange> {\n  private readonly _channelIdToSymbolMap: Map<number, string> = new Map()\n\n  canHandle(message: PoloniexPriceAggreatedMessage) {\n    if (Array.isArray(message) === false) {\n      return false\n    }\n\n    if (message.length < 3) {\n      return false\n    }\n    // store mapping between channel id and symbols\n    if (message[2][0][0] === 'i') {\n      this._channelIdToSymbolMap.set(message[0], message[2][0][1].currencyPair)\n    }\n\n    return message[2].some((m) => m[0] === 'i' || m[0] === 'o')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'price_aggregated_book',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: PoloniexPriceAggreatedMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    const lastItem = message[message.length - 1]\n    const symbol = typeof lastItem === 'string' ? lastItem : this._channelIdToSymbolMap.get(message[0])\n\n    if (symbol === undefined) {\n      return\n    }\n\n    let updates = []\n\n    for (const item of message[2]) {\n      if (item[0] === 'i') {\n        const bookSnapshot: BookChange = {\n          type: 'book_change',\n          symbol,\n          exchange: 'poloniex',\n          isSnapshot: true,\n          bids: mapSnapshotLevels(item[1].orderBook[1]),\n          asks: mapSnapshotLevels(item[1].orderBook[0]),\n          timestamp: localTimestamp,\n          localTimestamp: localTimestamp\n        }\n\n        yield bookSnapshot\n      } else if (item[0] === 'o') {\n        updates.push(item)\n      }\n    }\n\n    if (updates.length > 0) {\n      const bookUpdate: BookChange = {\n        type: 'book_change',\n        symbol,\n        exchange: 'poloniex',\n        isSnapshot: false,\n        bids: updates.filter((u) => u[1] == 1).map(mapBookLevel),\n        asks: updates.filter((u) => u[1] == 0).map(mapBookLevel),\n        timestamp: localTimestamp,\n        localTimestamp: localTimestamp\n      }\n\n      yield bookUpdate\n    }\n  }\n}\n\ntype PoloniexBookSnapshot = ['i', { currencyPair: string; orderBook: [{ [key: string]: string }, { [key: string]: string }] }]\ntype PoloniexBookUpdate = ['o', 0 | 1, string, string]\ntype PoloniexTrade = ['t', string, 1 | 0, string, string, number]\n\ntype PoloniexPriceAggreatedMessage = [number, number, (PoloniexBookSnapshot | PoloniexBookUpdate | PoloniexTrade)[], string?]\n\ntype PoloniexV2SubscribeMessage = {\n  event: 'subscribe'\n  channel: 'trades'\n  symbols: string[]\n}\n\ntype PoloniexV2TradesMessage = {\n  channel: 'trades'\n  data: [\n    {\n      symbol: 'USDD_USDT'\n      amount: '53.17153856'\n      quantity: '53.0866'\n      takerSide: 'sell'\n      createTime: 1659916859838\n      price: '1.0016'\n      id: '60100203'\n      ts: 1659916859843\n    }\n  ]\n}\n\ntype PoloniexV2BookMessage =\n  | {\n      channel: 'book_lv2'\n      data: [\n        {\n          symbol: 'AAVE_BTC'\n          createTime: 1659916859818\n          asks: [string, string][]\n          bids: [string, string][]\n          lastId: 20251\n          id: 20252\n          ts: 1659916859824\n        }\n      ]\n      action: 'update'\n    }\n  | {\n      channel: 'book_lv2'\n      data: [\n        {\n          symbol: 'AAVE_BTC'\n          createTime: 1659900600092\n          asks: [string, string][]\n          bids: [string, string][]\n          lastId: 85\n          id: 86\n          ts: 1659916800614\n        }\n      ]\n      action: 'snapshot'\n    }\n"
  },
  {
    "path": "src/mappers/serum.ts",
    "content": "import { asNumberIfValid, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, Exchange, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\nexport class SerumTradesMapper implements Mapper<'serum' | 'star-atlas', Trade> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: SerumVialTrade) {\n    return message.type === 'trade'\n  }\n\n  getFilters(symbols?: string[]) {\n    if (this._exchange === 'serum') {\n      symbols = upperCaseSymbols(symbols)\n    }\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: SerumVialTrade, localTimestamp: Date): IterableIterator<Trade> {\n    yield {\n      type: 'trade',\n      symbol: message.market.toUpperCase(),\n      exchange: this._exchange,\n      id: message.id,\n      price: Number(message.price),\n      amount: Number(message.size),\n      side: message.side,\n      timestamp: message.eventTimestamp !== undefined ? new Date(message.eventTimestamp) : new Date(message.timestamp),\n      localTimestamp\n    }\n  }\n}\n\nexport class SerumBookChangeMapper implements Mapper<'serum' | 'star-atlas', BookChange> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: SerumVialL2Snapshot | SerumVialL2Update) {\n    return message.type === 'l2snapshot' || message.type === 'l2update'\n  }\n\n  getFilters(symbols?: string[]) {\n    if (this._exchange === 'serum') {\n      symbols = upperCaseSymbols(symbols)\n    }\n\n    return [\n      {\n        channel: 'l2snapshot',\n        symbols\n      } as const,\n      {\n        channel: 'l2update',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: SerumVialL2Snapshot | SerumVialL2Update, localTimestamp: Date): IterableIterator<BookChange> {\n    yield {\n      type: 'book_change',\n      symbol: message.market.toUpperCase(),\n      exchange: this._exchange,\n      isSnapshot: message.type === 'l2snapshot',\n      bids: message.bids.map(this.mapBookLevel),\n      asks: message.asks.map(this.mapBookLevel),\n      timestamp: new Date(message.timestamp),\n      localTimestamp\n    }\n  }\n\n  protected mapBookLevel(level: SerumVialPriceLevel) {\n    const price = Number(level[0])\n    const amount = Number(level[1])\n    return { price, amount }\n  }\n}\n\nexport class SerumBookTickerMapper implements Mapper<'serum' | 'star-atlas', BookTicker> {\n  constructor(private readonly _exchange: Exchange) {}\n\n  canHandle(message: SerumVialQuote) {\n    return message.type === 'quote'\n  }\n\n  getFilters(symbols?: string[]) {\n    if (this._exchange === 'serum') {\n      symbols = upperCaseSymbols(symbols)\n    }\n\n    return [\n      {\n        channel: 'quote',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: SerumVialQuote, localTimestamp: Date): IterableIterator<BookTicker> {\n    yield {\n      type: 'book_ticker',\n      symbol: message.market.toUpperCase(),\n      exchange: this._exchange,\n\n      askAmount: message.bestAsk !== undefined ? asNumberIfValid(message.bestAsk[1]) : undefined,\n      askPrice: message.bestAsk !== undefined ? asNumberIfValid(message.bestAsk[0]) : undefined,\n\n      bidPrice: message.bestBid !== undefined ? asNumberIfValid(message.bestBid[0]) : undefined,\n      bidAmount: message.bestBid !== undefined ? asNumberIfValid(message.bestBid[1]) : undefined,\n      timestamp: new Date(message.timestamp),\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\ntype SerumVialTrade =\n  | {\n      type: 'trade'\n      market: 'RAY/USDT'\n      timestamp: '2021-05-22T00:00:59.448Z'\n      slot: 79469377\n      version: 3\n      id: '96845406386975144808722|185.8|1621641659448'\n      side: 'buy'\n      price: '5.235'\n      size: '185.8'\n      eventTimestamp: undefined\n    }\n  | {\n      type: 'trade'\n      market: string\n      timestamp: string\n      slot: number\n      version: number\n      id: string\n      side: 'buy' | 'sell'\n      price: string\n      size: string\n      eventTimestamp: string\n    }\n\ntype SerumVialPriceLevel = [string, string]\n\ntype SerumVialL2Snapshot = {\n  type: 'l2snapshot'\n  market: 'RAY/USDT'\n  timestamp: '2021-05-21T23:58:56.899Z'\n  slot: 79469186\n  version: 3\n  asks: SerumVialPriceLevel[]\n  bids: SerumVialPriceLevel[]\n}\n\ntype SerumVialL2Update = {\n  type: 'l2update'\n  market: 'RAY/USDT'\n  timestamp: '2021-05-22T00:00:20.959Z'\n  slot: 79469318\n  version: 3\n  asks: SerumVialPriceLevel[]\n  bids: SerumVialPriceLevel[]\n}\n\ntype SerumVialQuote = {\n  type: 'quote'\n  market: string\n  timestamp: string\n  slot: number\n  version: number\n  bestAsk: [price: string, size: string] | undefined\n  bestBid: [price: string, size: string] | undefined\n}\n"
  },
  {
    "path": "src/mappers/upbit.ts",
    "content": "import { fromMicroSecondsToDate, upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookPriceLevel, Trade } from '../types.ts'\nimport { Mapper } from './mapper.ts'\n\nexport class UpbitTradesMapper implements Mapper<'upbit', Trade> {\n  canHandle(message: UpbitTrade) {\n    return message.type === 'trade'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: UpbitTrade, localTimestamp: Date): IterableIterator<Trade> {\n    yield {\n      type: 'trade',\n      symbol: message.code,\n      exchange: 'upbit',\n      id: String(message.sequential_id),\n      price: message.trade_price,\n      amount: message.trade_volume,\n      side: message.ask_bid === 'ASK' ? 'sell' : 'buy',\n      timestamp: fromMicroSecondsToDate(message.trade_timestamp),\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nexport class UpbitBookChangeMapper implements Mapper<'upbit', BookChange> {\n  canHandle(message: UpbitOrderBook) {\n    return message.type === 'orderbook'\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'orderbook',\n        symbols\n      } as const\n    ]\n  }\n\n  *map(message: UpbitOrderBook, localTimestamp: Date): IterableIterator<BookChange> {\n    let asks: BookPriceLevel[] = []\n    let bids: BookPriceLevel[] = []\n\n    for (const level of message.orderbook_units) {\n      if (level.ask_price > 0) {\n        asks.push({\n          price: level.ask_price,\n          amount: level.ask_size\n        })\n      }\n\n      if (level.bid_price > 0) {\n        bids.push({\n          price: level.bid_price,\n          amount: level.bid_size\n        })\n      }\n    }\n    yield {\n      type: 'book_change',\n      symbol: message.code,\n      exchange: 'upbit',\n      isSnapshot: true,\n      bids,\n      asks,\n      timestamp: fromMicroSecondsToDate(message.timestamp),\n      localTimestamp\n    }\n  }\n}\n\ntype UpbitTrade = {\n  type: 'trade'\n  code: 'KRW-DOGE'\n  timestamp: 1614729599905\n  trade_date: '2021-03-02'\n  trade_time: '23:59:59'\n  trade_timestamp: 1614729599000\n  trade_price: 58.4\n  trade_volume: 836.12040133\n  ask_bid: 'ASK'\n  prev_closing_price: 57.5\n  change: 'RISE'\n  change_price: 0.9\n  sequential_id: 1614729599000000\n  stream_type: 'REALTIME'\n}\n\ntype UpbitOrderBook = {\n  type: 'orderbook'\n  code: 'KRW-DOT'\n  timestamp: 1614729599677\n  total_ask_size: 1415.12521016\n  total_bid_size: 8058.44442437\n  orderbook_units: { ask_price: number; bid_price: number; ask_size: number; bid_size: number }[]\n  stream_type: 'REALTIME'\n}\n"
  },
  {
    "path": "src/mappers/woox.ts",
    "content": "import { upperCaseSymbols } from '../handy.ts'\nimport { BookChange, BookTicker, DerivativeTicker, Exchange, FilterForExchange, Liquidation, Trade } from '../types.ts'\nimport { Mapper, PendingTickerInfoHelper } from './mapper.ts'\n\nexport const wooxTradesMapper: Mapper<'woo-x', Trade> = {\n  canHandle(message: WooxTradeMessage) {\n    return message.topic !== undefined && message.topic.endsWith('@trade')\n  },\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'trade',\n        symbols\n      }\n    ]\n  },\n\n  *map(message: WooxTradeMessage, localTimestamp: Date): IterableIterator<Trade> {\n    const timestamp = new Date(message.ts)\n    // any trade with source = 0 is mainly for informational purposes for our users, not actual trades printed on WOO X\n    if (message.data.source === 0) {\n      return\n    }\n\n    yield {\n      type: 'trade',\n      symbol: message.data.symbol,\n      exchange: 'woo-x',\n      id: undefined,\n      price: message.data.price,\n      amount: message.data.size,\n      side: message.data.side === 'SELL' ? 'sell' : 'buy',\n      timestamp,\n      localTimestamp: localTimestamp\n    }\n  }\n}\n\nexport class WooxBookChangeMapper implements Mapper<'woo-x', BookChange> {\n  private readonly _symbolToDepthInfoMapping: { [key: string]: LocalDepthInfo } = {}\n\n  canHandle(message: WooxOrderbookMessage | WooxOrderbookupdateMessage) {\n    if ('id' in message) {\n      return message.id.endsWith('@orderbook')\n    }\n\n    if ('topic' in message) {\n      return message.topic.endsWith('@orderbookupdate')\n    }\n\n    return false\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'orderbook',\n        symbols\n      },\n      {\n        channel: 'orderbookupdate',\n        symbols\n      }\n    ]\n  }\n\n  *map(message: WooxOrderbookMessage | WooxOrderbookupdateMessage, localTimestamp: Date): IterableIterator<BookChange> {\n    const symbol = message.data.symbol\n\n    if (this._symbolToDepthInfoMapping[symbol] === undefined) {\n      this._symbolToDepthInfoMapping[symbol] = {\n        bufferedUpdates: []\n      }\n    }\n\n    const symbolDepthInfo = this._symbolToDepthInfoMapping[symbol]\n    const snapshotAlreadyProcessed = symbolDepthInfo.snapshotProcessed\n\n    // first check if received message is snapshot and process it as such if it is\n    if ('id' in message && message.success) {\n      yield {\n        type: 'book_change',\n        symbol,\n        exchange: 'woo-x',\n        isSnapshot: true,\n        bids: message.data.bids.map(this._mapBookLevel),\n        asks: message.data.asks.map(this._mapBookLevel),\n        timestamp: new Date(message.data.ts),\n        localTimestamp\n      }\n\n      //  mark given symbol depth info that has snapshot processed\n      symbolDepthInfo.lastUpdateTimestamp = message.data.ts\n      symbolDepthInfo.snapshotProcessed = true\n\n      // if there were any depth updates buffered, let's proccess those\n      for (const update of symbolDepthInfo.bufferedUpdates) {\n        const bookChange = this._mapBookDepthUpdate(update, localTimestamp, symbolDepthInfo, symbol)\n        if (bookChange !== undefined) {\n          yield bookChange\n        }\n      }\n      // remove all buffered updates\n      symbolDepthInfo.bufferedUpdates = []\n    } else if (snapshotAlreadyProcessed) {\n      // snapshot was already processed let's map the message as normal book_change\n      const bookChange = this._mapBookDepthUpdate(message as WooxOrderbookupdateMessage, localTimestamp, symbolDepthInfo, symbol)\n      if (bookChange !== undefined) {\n        yield bookChange\n      }\n    } else {\n      // if snapshot hasn't been yet processed and we've got depthUpdate message, let's buffer it for later processing\n      symbolDepthInfo.bufferedUpdates.push(message as WooxOrderbookupdateMessage)\n    }\n  }\n\n  private _mapBookDepthUpdate(\n    wooxBookUpdate: WooxOrderbookupdateMessage,\n    localTimestamp: Date,\n    depthInfo: LocalDepthInfo,\n    symbol: string\n  ): BookChange | undefined {\n    if (wooxBookUpdate.data.prevTs < depthInfo.lastUpdateTimestamp!) {\n      return\n    }\n\n    return {\n      type: 'book_change',\n      symbol,\n      exchange: 'woo-x',\n      isSnapshot: false,\n      bids: wooxBookUpdate.data.bids.map(this._mapBookLevel),\n      asks: wooxBookUpdate.data.asks.map(this._mapBookLevel),\n      timestamp: new Date(wooxBookUpdate.ts),\n      localTimestamp\n    }\n  }\n\n  private _mapBookLevel(level: [number, number]) {\n    const price = level[0]\n    const amount = level[1]\n\n    return { price, amount }\n  }\n}\n\nexport class WooxDerivativeTickerMapper implements Mapper<'woo-x', DerivativeTicker> {\n  private readonly pendingTickerInfoHelper = new PendingTickerInfoHelper()\n  private readonly _indexPrices = new Map<string, number>()\n\n  canHandle(message: WooxTradeMessage | WooxEstFundingRate | WooxMarkPrice | WooxIndexPrice | WooxOpenInterest) {\n    if (message.topic === undefined) {\n      return false\n    }\n    const symbol = (message.data && message.data.symbol) || ''\n    const isPerp = symbol.startsWith('PERP_')\n\n    return (\n      (message.topic.endsWith('@trade') && isPerp) ||\n      (message.topic.endsWith('@markprice') && isPerp) ||\n      (message.topic.endsWith('@estfundingrate') && isPerp) ||\n      message.topic.endsWith('@indexprice') ||\n      (message.topic.endsWith('@openinterest') && isPerp)\n    )\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n    const spotSymbols = symbols !== undefined ? symbols.map((s) => s.replace('PERP_', 'SPOT_')) : []\n    return [\n      {\n        channel: 'trade',\n        symbols\n      },\n      {\n        channel: 'markprice',\n        symbols\n      },\n      {\n        channel: 'estfundingrate',\n        symbols\n      },\n      {\n        channel: 'openinterest',\n        symbols\n      },\n      {\n        channel: 'indexprice',\n        symbols: spotSymbols\n      }\n    ]\n  }\n\n  *map(message: any, localTimestamp: Date): IterableIterator<DerivativeTicker> {\n    if (message.topic.endsWith('@indexprice')) {\n      this._indexPrices.set(message.data.symbol.replace('SPOT_', 'PERP_'), message.data.price)\n    } else {\n      const symbol = message.data.symbol\n      const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(symbol, 'woo-x')\n\n      const lastIndexPrice = this._indexPrices.get(symbol)\n      if (lastIndexPrice !== undefined) {\n        pendingTickerInfo.updateIndexPrice(lastIndexPrice)\n      }\n\n      if (message.topic.endsWith('@markprice')) {\n        pendingTickerInfo.updateMarkPrice(message.data.price)\n        pendingTickerInfo.updateTimestamp(new Date(message.ts))\n      }\n\n      if (message.topic.endsWith('@trade')) {\n        pendingTickerInfo.updateLastPrice(message.data.price)\n        pendingTickerInfo.updateTimestamp(new Date(message.ts))\n      }\n\n      if (message.topic.endsWith('@estfundingrate')) {\n        pendingTickerInfo.updateFundingRate(message.data.fundingRate)\n        pendingTickerInfo.updateFundingTimestamp(new Date(message.data.fundingTs))\n        pendingTickerInfo.updateTimestamp(new Date(message.ts))\n      }\n\n      if (message.topic.endsWith('@openinterest')) {\n        pendingTickerInfo.updateOpenInterest(message.data.openInterest)\n        pendingTickerInfo.updateTimestamp(new Date(message.ts))\n      }\n\n      if (pendingTickerInfo.hasChanged()) {\n        yield pendingTickerInfo.getSnapshot(localTimestamp)\n      }\n    }\n  }\n}\n\nexport class WooxBookTickerMapper implements Mapper<'woo-x', BookTicker> {\n  canHandle(message: WooxTradeMessage) {\n    return message.topic !== undefined && message.topic.endsWith('@bbo')\n  }\n\n  getFilters(symbols?: string[]) {\n    symbols = upperCaseSymbols(symbols)\n\n    return [\n      {\n        channel: 'bbo',\n        symbols\n      }\n    ]\n  }\n\n  *map(wooxBBOMessage: WooxBBOMessage, localTimestamp: Date) {\n    const wooxBookTicker = wooxBBOMessage.data\n\n    const ticker: BookTicker = {\n      type: 'book_ticker',\n      symbol: wooxBookTicker.symbol,\n      exchange: 'woo-x',\n      askAmount: wooxBookTicker.askSize !== undefined ? wooxBookTicker.askSize : undefined,\n      askPrice: wooxBookTicker.ask !== undefined ? wooxBookTicker.ask : undefined,\n\n      bidPrice: wooxBookTicker.bid !== undefined ? wooxBookTicker.bid : undefined,\n      bidAmount: wooxBookTicker.bidSize !== undefined ? wooxBookTicker.bidSize : undefined,\n      timestamp: new Date(wooxBBOMessage.ts),\n      localTimestamp: localTimestamp\n    }\n\n    yield ticker\n  }\n}\n\ntype LocalDepthInfo = {\n  bufferedUpdates: WooxOrderbookupdateMessage[]\n  snapshotProcessed?: boolean\n  lastUpdateTimestamp?: number\n}\n\ntype WooxTradeMessage = {\n  topic: 'PERP_GALA_USDT@trade'\n  ts: 1674431999995\n  data: { symbol: 'PERP_GALA_USDT'; price: 0.048756; size: 4109; side: 'SELL'; source: 0 }\n}\n\ntype WooxOrderbookupdateMessage = {\n  topic: 'PERP_BTC_USDT@orderbookupdate'\n  ts: 1674432000020\n  data: {\n    symbol: 'PERP_BTC_USDT'\n    prevTs: 1674432000030\n    asks: [[22712.7, 15.4675]]\n    bids: [[22708.0, 4.503]]\n  }\n}\n\ntype WooxOrderbookMessage = {\n  id: 'PERP_BTC_USDT@orderbook'\n  event: 'request'\n  success: true\n  ts: 1674432000034\n  data: {\n    symbol: 'PERP_BTC_USDT'\n    ts: 1674432000020\n    asks: [[22712.7, 15.4675], [26772.1, 0.248]]\n    bids: [[22708.0, 4.503], [18555.0, 0.002]]\n  }\n}\n\ntype WooxBBOMessage = {\n  topic: 'SPOT_ETH_USDT@bbo'\n  ts: 1674431999996\n  data: { symbol: 'SPOT_ETH_USDT'; ask: 1627.61; askSize: 38.3755; bid: 1627.26; bidSize: 20.424926 }\n}\n\ntype WooxMarkPrice = { topic: 'PERP_BTC_USDT@markprice'; ts: 1674432000007; data: { symbol: 'PERP_BTC_USDT'; price: 22711.11 } }\n\ntype WooxEstFundingRate = {\n  topic: 'PERP_BTC_USDT@estfundingrate'\n  ts: 1674432059002\n  data: { symbol: 'PERP_BTC_USDT'; fundingRate: 0.00000782; fundingTs: 1674435600005 }\n}\n\ntype WooxIndexPrice = { topic: 'SPOT_BTC_USDT@indexprice'; ts: 1674432000024; data: { symbol: 'SPOT_BTC_USDT'; price: 22708.44 } }\ntype WooxOpenInterest = { topic: 'PERP_BTC_USDT@openinterest'; ts: 1674432013624; data: { symbol: 'PERP_BTC_USDT'; openInterest: 83.2241 } }\n"
  },
  {
    "path": "src/options.ts",
    "content": "import { createRequire } from 'module'\nimport os from 'os'\nimport path from 'path'\n\nconst require = createRequire(import.meta.url)\nconst packageJson = require('../package.json') as { version: string }\n\nconst defaultOptions: Options = {\n  endpoint: 'https://api.tardis.dev/v1',\n  datasetsEndpoint: 'https://datasets.tardis.dev/v1',\n  cacheDir: path.join(os.tmpdir(), '.tardis-cache'),\n  apiKey: '',\n  dataFeedCompression: 'zstd',\n  _userAgent: `tardis-dev/${packageJson.version} (+https://github.com/tardis-dev/tardis-node)`\n}\n\nlet options: Options = { ...defaultOptions }\n\nexport function init(initOptions: Partial<Options> = {}) {\n  options = { ...defaultOptions, ...initOptions }\n}\n\nexport function getOptions() {\n  return options as Readonly<Options>\n}\n\ntype Options = {\n  endpoint: string\n  datasetsEndpoint: string\n  cacheDir: string\n  apiKey: string\n  dataFeedCompression: DataFeedCompression\n  _userAgent: string\n}\n\nexport type DataFeedCompression = 'gzip' | 'zstd'\n"
  },
  {
    "path": "src/orderbook.ts",
    "content": "import { RBTree } from 'bintrees'\nimport type { RBTree as RBTreeType } from 'bintrees'\nimport { BookChange, BookPriceLevel, Writeable } from './types.ts'\n\nexport type OnLevelRemovedCB = (\n  bookChange: BookChange,\n  bestBidBeforeRemoval: BookPriceLevel | undefined,\n  bestBidAfterRemoval: BookPriceLevel | undefined,\n  bestAskBeforeRemoval: BookPriceLevel | undefined,\n  bestAskAfterRemoval: BookPriceLevel | undefined\n) => void\n\nexport class OrderBook {\n  private readonly _bids = new RBTree<BookPriceLevel>((nodeA, nodeB) => nodeB.price - nodeA.price)\n  private readonly _asks = new RBTree<BookPriceLevel>((nodeA, nodeB) => nodeA.price - nodeB.price)\n  private readonly _removeCrossedLevels: boolean | undefined\n  private readonly _onCrossedLevelRemoved: OnLevelRemovedCB | undefined\n\n  private _receivedInitialSnapshot = false\n\n  constructor({\n    removeCrossedLevels,\n    onCrossedLevelRemoved\n  }: { removeCrossedLevels?: boolean; onCrossedLevelRemoved?: OnLevelRemovedCB } = {}) {\n    this._removeCrossedLevels = removeCrossedLevels\n    this._onCrossedLevelRemoved = onCrossedLevelRemoved\n  }\n\n  public update(bookChange: BookChange) {\n    // clear everything up, when snapshot received so we don't have stale levels by accident\n    if (bookChange.isSnapshot) {\n      this._bids.clear()\n      this._asks.clear()\n      this._receivedInitialSnapshot = true\n    }\n    // process updates as long as we've received initial snapshot, otherwise ignore such messages\n    if (this._receivedInitialSnapshot) {\n      applyPriceLevelChanges(this._asks, bookChange.asks)\n      applyPriceLevelChanges(this._bids, bookChange.bids)\n    }\n\n    if (this._removeCrossedLevels) {\n      this._removeCrossedLevelsIfNeeded(bookChange)\n    }\n  }\n\n  public bestBid() {\n    const result = this.bids().next()\n\n    if (result.done === false) {\n      return result.value\n    }\n    return undefined\n  }\n\n  public bestAsk() {\n    const result = this.asks().next()\n\n    if (result.done === false) {\n      return result.value\n    }\n    return undefined\n  }\n\n  private _removeCrossedLevelsIfNeeded(bookChange: BookChange) {\n    let bestBid = this.bestBid()\n    let bestAsk = this.bestAsk()\n    let bookIsCrossed = bestBid !== undefined && bestAsk !== undefined && bestBid.price >= bestAsk.price\n    // if after update we have crossed order book (best bid >= best ask)\n    // it most likely means that exchange has not published delete message for the other side of the book\n    // more info:\n    // https://www.reddit.com/r/KrakenSupport/comments/d1a4nx/websocket_orderbook_receiving_wrong_bid_price_for/\n    // https://www.reddit.com/r/BitMEX/comments/8lbj9e/bidask_ledger_weirdness/\n    // https://twitter.com/coinarb/status/931260529993170944\n\n    if (bookIsCrossed) {\n      // decide from which side of the book we should remove level so book isn't crossed anymore\n      // if current book update updated \"best ask\" it means we should remove \"best bid\" as exchange hasn't provided book change update\n      // that deletes it, and vice versa for for \"best bids\"\n\n      const shouldRemoveBestBid = bookChange.asks.some((s) => s.price === bestAsk!.price)\n\n      while (bookIsCrossed) {\n        if (shouldRemoveBestBid) {\n          this._removeBestBid()\n        } else {\n          this._removeBestAsk()\n        }\n\n        const newBestBid = this.bestBid()\n        const newBestAsk = this.bestAsk()\n        if (this._onCrossedLevelRemoved !== undefined) {\n          this._onCrossedLevelRemoved(bookChange, bestBid, newBestBid, bestAsk, newBestAsk)\n        }\n\n        bestBid = newBestBid\n        bestAsk = newBestAsk\n        bookIsCrossed = bestBid !== undefined && bestAsk !== undefined && bestBid.price >= bestAsk.price\n      }\n    }\n  }\n\n  private _removeBestAsk() {\n    const bestAsk = this.bestAsk()\n\n    if (bestAsk !== undefined) {\n      applyPriceLevelChanges(this._asks, [\n        {\n          price: bestAsk.price,\n          amount: 0\n        }\n      ])\n    }\n  }\n\n  private _removeBestBid() {\n    const bestBid = this.bestBid()\n\n    if (bestBid !== undefined) {\n      applyPriceLevelChanges(this._bids, [\n        {\n          price: bestBid.price,\n          amount: 0\n        }\n      ])\n    }\n  }\n\n  public *bids(): IterableIterator<BookPriceLevel> {\n    const iterator = this._bids.iterator()\n    let level = iterator.next()\n\n    while (level !== null) {\n      yield level\n      level = iterator.next()\n    }\n  }\n\n  public *asks(): IterableIterator<BookPriceLevel> {\n    const iterator = this._asks.iterator()\n    let level = iterator.next()\n\n    while (level !== null) {\n      yield level\n      level = iterator.next()\n    }\n  }\n}\n\nfunction applyPriceLevelChanges(tree: RBTreeType<BookPriceLevel>, priceLevelChanges: BookPriceLevel[]) {\n  for (const priceLevel of priceLevelChanges) {\n    const node = tree.find(priceLevel) as Writeable<BookPriceLevel>\n    const nodeExists = node !== null\n    const levelShouldBeRemoved = priceLevel.amount === 0\n\n    if (nodeExists && levelShouldBeRemoved) {\n      tree.remove(priceLevel)\n    } else if (nodeExists) {\n      node.amount = priceLevel.amount\n    } else if (levelShouldBeRemoved === false) {\n      tree.insert({ ...priceLevel })\n    }\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/ascendex.ts",
    "content": "import { wait } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class AscendexRealTimeFeed extends RealTimeFeedBase {\n  protected readonly wssURL = 'wss://ascendex.com/api/pro/v2/stream'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const subs = filters\n      .filter((f) => f.channel !== 'depth-snapshot-realtime')\n      .map((filter) => {\n        if (filter.channel === 'futures-pricing-data') {\n          return [\n            {\n              op: 'sub',\n              ch: 'futures-pricing-data'\n            }\n          ]\n        }\n\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('AscendexRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          return {\n            op: 'sub',\n            ch: `${filter.channel}:${symbol}`\n          }\n        })\n      })\n      .flatMap((f) => f)\n\n    return subs\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.m === 'error'\n  }\n\n  protected sendCustomPing = () => {\n    this.send({ op: 'ping' })\n  }\n\n  protected messageIsHeartbeat(msg: any) {\n    return msg.m === 'pong'\n  }\n\n  protected async provideManualSnapshots(filters: Filter<string>[], shouldCancel: () => boolean) {\n    const depthSnapshotChannel = filters.find((f) => f.channel === 'depth-snapshot-realtime')\n    if (!depthSnapshotChannel) {\n      return\n    }\n\n    await wait(100)\n\n    for (let symbol of depthSnapshotChannel.symbols!) {\n      if (shouldCancel()) {\n        return\n      }\n\n      this.send({\n        op: 'req',\n        action: 'depth-snapshot-realtime',\n        args: { symbol }\n      })\n\n      await wait(10)\n    }\n\n    this.debug('sent depth-snapshot-realtime \"req\" for: %s', depthSnapshotChannel.symbols)\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/binance.ts",
    "content": "import { Writable } from 'stream'\nimport { batch, getJSON, wait } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { MultiConnectionRealTimeFeedBase, PoolingClientBase, RealTimeFeedBase } from './realtimefeed.ts'\n\nconst binanceHttpOptions = {\n  timeout: 10 * 1000,\n  retry: {\n    limit: 10,\n    statusCodes: [418, 429, 500, 403],\n    maxRetryAfter: 120 * 1000\n  }\n}\n\nconst DEFAULT_OPEN_INTEREST_MIN_AVAILABLE_WEIGHT_BUFFER = 100\nconst DEFAULT_OPEN_INTEREST_POLLING_INTERVAL_MS = 5 * 1000\nconst OPEN_INTEREST_BATCH_SIZE = 10\nconst OPEN_INTEREST_REQUEST_WEIGHT = 1\nconst OPEN_INTEREST_POLLING_RECOVERY_MS = 1000\nconst OPEN_INTEREST_MAX_POLLING_INTERVAL_MS = 60 * 1000\nconst BINANCE_FUTURES_PUBLIC_CHANNELS = new Set(['bookTicker', 'depth', 'depthSnapshot', 'trade'])\nconst BINANCE_FUTURES_DEFAULT_WS_BASE_URL = 'wss://fstream.binance.com'\nconst BINANCE_FUTURES_PUBLIC_STREAM_PATH = '/public/stream'\nconst BINANCE_FUTURES_MARKET_STREAM_PATH = '/market/stream'\n\ntype BinanceFuturesStreamPath = typeof BINANCE_FUTURES_PUBLIC_STREAM_PATH | typeof BINANCE_FUTURES_MARKET_STREAM_PATH\n\nfunction parseBinanceWeightHeader(headerValue: string | undefined) {\n  if (headerValue === undefined) {\n    return undefined\n  }\n\n  const parsed = Number.parseInt(headerValue, 10)\n\n  return Number.isFinite(parsed) ? parsed : undefined\n}\n\nfunction getExchangeScopedNumberEnv(exchange: string, suffix: string, fallback: number) {\n  const envName = `${exchange.toUpperCase().replace(/-/g, '_')}_${suffix}`\n  const rawValue = process.env[envName]\n\n  if (rawValue === undefined) {\n    return fallback\n  }\n\n  const parsed = Number.parseInt(rawValue, 10)\n\n  return Number.isFinite(parsed) ? parsed : fallback\n}\n\nfunction getExchangeScopedWssUrlEnv(exchange: string) {\n  const envName = `WSS_URL_${exchange.toUpperCase().replace(/-/g, '_')}`\n\n  return process.env[envName]\n}\n\nfunction normalizeBinanceSplitWsBaseUrl(wssUrl: string) {\n  return wssUrl\n    .replace(/\\/(public|market|private)\\/stream$/u, '')\n    .replace(/\\/stream$/u, '')\n    .replace(/\\/(public|market|private)$/u, '')\n}\n\nfunction getBinanceFuturesWebSocketUrl(exchange: string, streamPath: BinanceFuturesStreamPath) {\n  const configuredWssUrl = getExchangeScopedWssUrlEnv(exchange) ?? BINANCE_FUTURES_DEFAULT_WS_BASE_URL\n  const normalizedBaseUrl = normalizeBinanceSplitWsBaseUrl(configuredWssUrl)\n\n  return `${normalizedBaseUrl}${streamPath}`\n}\n\nfunction getBinanceRequestWeightLimit(exchange: string, exchangeInfo: any) {\n  const configuredLimit = getExchangeScopedNumberEnv(exchange, 'REQUEST_WEIGHT_LIMIT', 0)\n  if (configuredLimit > 0) {\n    return configuredLimit\n  }\n\n  const requestWeightLimit = exchangeInfo.rateLimits.find((d: any) => d.rateLimitType === 'REQUEST_WEIGHT')?.limit as number | undefined\n\n  if (!requestWeightLimit) {\n    throw new Error('Failed to determine Binance REQUEST_WEIGHT limit')\n  }\n\n  return requestWeightLimit\n}\n\nfunction getBinanceAvailableWeight(weightLimit: number, usedWeight: number, buffer: number) {\n  return weightLimit > 0 ? weightLimit - usedWeight - buffer : Infinity\n}\n\nfunction getDelayToNextMinuteMS() {\n  const now = new Date()\n\n  return Math.max((61 - now.getUTCSeconds()) * 1000 - now.getUTCMilliseconds(), 1)\n}\n\nabstract class BinanceRealTimeFeedBase extends MultiConnectionRealTimeFeedBase {\n  protected abstract wssURL: string\n  protected abstract httpURL: string\n  protected abstract suffixes: { [key: string]: string }\n  protected abstract depthRequestRequestWeight: number\n\n  protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {\n    const wsFilters = filters.filter(\n      (f) => f.channel !== 'openInterest' && f.channel !== 'recentTrades' && f.channel !== 'fundingInfo' && f.channel !== 'insuranceBalance'\n    )\n\n    if (wsFilters.length > 0) {\n      yield new BinanceSingleConnectionRealTimeFeed(\n        exchange,\n        wsFilters,\n        this.wssURL,\n        this.httpURL,\n        this.suffixes,\n        this.depthRequestRequestWeight,\n        timeoutIntervalMS,\n        onError\n      )\n    }\n\n    const openInterestFilters = filters.filter((f) => f.channel === 'openInterest')\n    if (openInterestFilters.length > 0) {\n      const instruments = openInterestFilters.flatMap((s) => s.symbols!)\n\n      yield new BinanceFuturesOpenInterestClient(exchange, this.httpURL, instruments, onError)\n    }\n  }\n}\n\nclass BinanceFuturesOpenInterestClient extends PoolingClientBase {\n  private readonly _minPollingIntervalMS: number\n  private readonly _minAvailableWeightBuffer: number\n  private readonly _maxPollingIntervalMS: number\n  private _currentPollingIntervalMS: number\n  private _requestWeightLimit: number\n  private _usedWeight = 0\n\n  constructor(\n    private readonly _exchange: string,\n    private readonly _httpURL: string,\n    private readonly _instruments: string[],\n    onError?: (error: Error) => void\n  ) {\n    const minPollingIntervalMS = Math.max(\n      getExchangeScopedNumberEnv(_exchange, 'OPEN_INTEREST_POLLING_INTERVAL_MS', DEFAULT_OPEN_INTEREST_POLLING_INTERVAL_MS),\n      1000\n    )\n\n    super(_exchange, minPollingIntervalMS / 1000, onError)\n\n    this._minPollingIntervalMS = minPollingIntervalMS\n    this._maxPollingIntervalMS = Math.max(this._minPollingIntervalMS, OPEN_INTEREST_MAX_POLLING_INTERVAL_MS)\n    this._currentPollingIntervalMS = minPollingIntervalMS\n    this._requestWeightLimit = getExchangeScopedNumberEnv(_exchange, 'REQUEST_WEIGHT_LIMIT', 0)\n    this._minAvailableWeightBuffer = getExchangeScopedNumberEnv(\n      _exchange,\n      'MIN_AVAILABLE_WEIGHT_BUFFER',\n      DEFAULT_OPEN_INTEREST_MIN_AVAILABLE_WEIGHT_BUFFER\n    )\n  }\n\n  protected getPoolingDelayMS() {\n    return this._currentPollingIntervalMS\n  }\n\n  protected async poolDataToStream(outputStream: Writable) {\n    let waitedForRateLimit = false\n\n    if (!this._requestWeightLimit) {\n      await this._initializeRateLimitInfo()\n    }\n\n    for (let index = 0; index < this._instruments.length; ) {\n      if (outputStream.destroyed) {\n        return\n      }\n\n      waitedForRateLimit = (await this._waitForAvailableWeight()) || waitedForRateLimit\n      const batchSize = this._getBatchSize()\n\n      if (batchSize <= 0) {\n        break\n      }\n\n      const instrumentsBatch = this._instruments.slice(index, index + batchSize)\n      index += instrumentsBatch.length\n\n      const results = await Promise.allSettled(\n        instrumentsBatch.map(async (instrument) => {\n          const openInterestResponse = await getJSON<any>(\n            `${this._httpURL}/openInterest?symbol=${instrument.toUpperCase()}`,\n            binanceHttpOptions\n          )\n\n          return {\n            instrument,\n            usedWeight: parseBinanceWeightHeader(openInterestResponse.headers['x-mbx-used-weight-1m']),\n            data: openInterestResponse.data\n          }\n        })\n      )\n\n      let maxUsedWeight: number | undefined\n      let fulfilledCount = 0\n\n      for (const result of results) {\n        if (result.status === 'rejected') {\n          this._notifyError(result.reason)\n          continue\n        }\n\n        fulfilledCount++\n        maxUsedWeight = Math.max(maxUsedWeight ?? 0, result.value.usedWeight ?? 0)\n\n        if (outputStream.writable) {\n          outputStream.write({\n            stream: `${result.value.instrument.toLowerCase()}@openInterest`,\n            generated: true,\n            data: result.value.data\n          })\n        }\n      }\n\n      this._updateUsedWeight(maxUsedWeight || undefined, fulfilledCount * OPEN_INTEREST_REQUEST_WEIGHT)\n    }\n\n    if (waitedForRateLimit) {\n      this._currentPollingIntervalMS = Math.min(this._currentPollingIntervalMS + this._minPollingIntervalMS, this._maxPollingIntervalMS)\n    } else {\n      this._currentPollingIntervalMS = Math.max(\n        this._minPollingIntervalMS,\n        this._currentPollingIntervalMS - OPEN_INTEREST_POLLING_RECOVERY_MS\n      )\n    }\n  }\n\n  private async _waitForAvailableWeight() {\n    const available = getBinanceAvailableWeight(this._requestWeightLimit, this._usedWeight, this._minAvailableWeightBuffer)\n\n    if (available >= OPEN_INTEREST_REQUEST_WEIGHT) {\n      return false\n    }\n\n    const delayMS = getDelayToNextMinuteMS()\n    this.debug(\n      'open interest reached rate limit (limit: %s, used: %s, minimum available buffer: %s), waiting %s ms',\n      this._requestWeightLimit,\n      this._usedWeight,\n      this._minAvailableWeightBuffer,\n      delayMS\n    )\n\n    await wait(delayMS)\n\n    // Binance request weight is tracked in a rolling 1-minute window. After waiting for the next minute\n    // we can resume and let the next REST response header refresh the exact current usage.\n    this._usedWeight = 0\n\n    return true\n  }\n\n  private async _initializeRateLimitInfo() {\n    const exchangeInfoResponse = await getJSON<any>(`${this._httpURL}/exchangeInfo`, binanceHttpOptions)\n    const exchangeInfo = exchangeInfoResponse.data\n\n    this._requestWeightLimit = getBinanceRequestWeightLimit(this._exchange, exchangeInfo)\n\n    this._updateUsedWeight(parseBinanceWeightHeader(exchangeInfoResponse.headers['x-mbx-used-weight-1m']), OPEN_INTEREST_REQUEST_WEIGHT)\n  }\n\n  private _getBatchSize() {\n    const available = getBinanceAvailableWeight(this._requestWeightLimit, this._usedWeight, this._minAvailableWeightBuffer)\n\n    return Math.min(OPEN_INTEREST_BATCH_SIZE, Math.max(0, Math.floor(available)))\n  }\n\n  private _notifyError(error: unknown) {\n    const normalizedError = error instanceof Error ? error : new Error(String(error))\n\n    this.debug('open interest request error %o', normalizedError)\n\n    if (this.onError !== undefined) {\n      this.onError(normalizedError)\n    }\n  }\n\n  private _updateUsedWeight(usedWeight: number | undefined, fallbackIncrement = OPEN_INTEREST_REQUEST_WEIGHT) {\n    if (usedWeight !== undefined) {\n      this._usedWeight = usedWeight\n      return\n    }\n\n    if (this._requestWeightLimit > 0 && fallbackIncrement > 0) {\n      this._usedWeight += fallbackIncrement\n    }\n  }\n}\n\nclass BinanceSingleConnectionRealTimeFeed extends RealTimeFeedBase {\n  constructor(\n    exchange: string,\n    filters: Filter<string>[],\n    protected wssURL: string,\n    private readonly _httpURL: string,\n    private readonly _suffixes: { [key: string]: string },\n    private readonly _depthRequestRequestWeight: number,\n    timeoutIntervalMS: number | undefined,\n    onError?: (error: Error) => void\n  ) {\n    super(exchange, filters, timeoutIntervalMS, onError)\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const payload = filters\n      .filter((f) => f.channel !== 'depthSnapshot')\n      .map((filter, index) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('BinanceRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        const suffix = this._suffixes[filter.channel]\n        const channel = suffix !== undefined ? `${filter.channel}@${suffix}` : filter.channel\n\n        return {\n          method: 'SUBSCRIBE',\n          params: filter.symbols.map((symbol) => `${symbol}@${channel}`),\n          id: index + 1\n        }\n      })\n\n    return payload\n  }\n\n  protected messageIsError(message: any): boolean {\n    // subscription confirmation message\n    if (message.result === null) {\n      return false\n    }\n\n    if (message.stream === undefined) {\n      return true\n    }\n\n    if (message.error !== undefined) {\n      return true\n    }\n\n    return false\n  }\n\n  protected async provideManualSnapshots(filters: Filter<string>[], shouldCancel: () => boolean) {\n    const depthSnapshotFilter = filters.find((f) => f.channel === 'depthSnapshot')\n\n    if (!depthSnapshotFilter) {\n      return\n    }\n\n    const exchangeInfoResponse = await getJSON<any>(`${this._httpURL}/exchangeInfo`, binanceHttpOptions)\n    const exchangeInfo = exchangeInfoResponse.data\n\n    const DELAY_ENV = `${this._exchange.toUpperCase().replace(/-/g, '_')}_SNAPSHOTS_DELAY_MS`\n    const currentWeightLimit = getBinanceRequestWeightLimit(this._exchange, exchangeInfo)\n\n    let usedWeight = Number.parseInt(exchangeInfoResponse.headers['x-mbx-used-weight-1m'] as string)\n\n    this.debug('current x-mbx-used-weight-1m limit: %s, already used weight: %s', currentWeightLimit, usedWeight)\n\n    let concurrencyLimit = 4\n\n    const CONCURRENCY_LIMIT_WEIGHT_ENV = `${this._exchange.toUpperCase().replace(/-/g, '_')}_CONCURRENCY_LIMIT`\n\n    if (process.env[CONCURRENCY_LIMIT_WEIGHT_ENV] !== undefined) {\n      concurrencyLimit = Number.parseInt(process.env[CONCURRENCY_LIMIT_WEIGHT_ENV] as string)\n    }\n\n    this.debug('current snapshots requests concurrency limit: %s', concurrencyLimit)\n\n    const minWeightBuffer = getExchangeScopedNumberEnv(\n      this._exchange,\n      'MIN_AVAILABLE_WEIGHT_BUFFER',\n      2 * concurrencyLimit * this._depthRequestRequestWeight\n    )\n\n    for (const symbolsBatch of batch(depthSnapshotFilter.symbols!, concurrencyLimit)) {\n      if (shouldCancel()) {\n        return\n      }\n\n      this.debug('requesting manual snapshots for: %s', symbolsBatch)\n\n      const usedWeights = await Promise.all(\n        symbolsBatch.map(async (symbol) => {\n          if (shouldCancel()) {\n            return 0\n          }\n\n          const isOverRateLimit = getBinanceAvailableWeight(currentWeightLimit, usedWeight, minWeightBuffer) < 0\n\n          if (isOverRateLimit) {\n            const delayMS = getDelayToNextMinuteMS()\n            this.debug(\n              'reached rate limit (x-mbx-used-weight-1m limit: %s, used weight: %s, minimum available weight buffer: %s), waiting: %s seconds',\n              currentWeightLimit,\n              usedWeight,\n              minWeightBuffer,\n              Math.ceil(delayMS / 1000)\n            )\n\n            await wait(delayMS)\n          }\n\n          const depthSnapshotResponse = await getJSON<any>(\n            `${this._httpURL}/depth?symbol=${symbol.toUpperCase()}&limit=1000`,\n            binanceHttpOptions\n          )\n\n          const snapshot = {\n            stream: `${symbol}@depthSnapshot`,\n            generated: true,\n            data: depthSnapshotResponse.data\n          }\n\n          this.manualSnapshotsBuffer.push(snapshot)\n\n          if (process.env[DELAY_ENV] !== undefined) {\n            const msToWait = Number.parseInt(process.env[DELAY_ENV] as string)\n\n            await wait(msToWait)\n          }\n\n          return Number.parseInt(depthSnapshotResponse.headers['x-mbx-used-weight-1m'] as string)\n        })\n      )\n\n      usedWeight = Math.max(...usedWeights)\n\n      this.debug('requested manual snapshots successfully for: %s, used weight: %s', symbolsBatch, usedWeight)\n    }\n    this.debug('requested all manual snapshots successfully')\n  }\n}\n\nclass BinanceFuturesSingleConnectionRealTimeFeed extends BinanceSingleConnectionRealTimeFeed {\n  constructor(\n    exchange: string,\n    filters: Filter<string>[],\n    private readonly _streamPath: BinanceFuturesStreamPath,\n    httpURL: string,\n    suffixes: { [key: string]: string },\n    depthRequestRequestWeight: number,\n    timeoutIntervalMS: number | undefined,\n    onError?: (error: Error) => void\n  ) {\n    super(\n      exchange,\n      filters,\n      getBinanceFuturesWebSocketUrl(exchange, _streamPath),\n      httpURL,\n      suffixes,\n      depthRequestRequestWeight,\n      timeoutIntervalMS,\n      onError\n    )\n  }\n\n  protected async getWebSocketUrl() {\n    return getBinanceFuturesWebSocketUrl(this._exchange, this._streamPath)\n  }\n}\n\nexport class BinanceRealTimeFeed extends BinanceRealTimeFeedBase {\n  protected wssURL = 'wss://stream.binance.com/stream?timeUnit=microsecond'\n  protected httpURL = 'https://api.binance.com/api/v1'\n\n  protected suffixes = {\n    depth: '100ms'\n  }\n\n  protected depthRequestRequestWeight = 10\n}\n\nexport class BinanceJerseyRealTimeFeed extends BinanceRealTimeFeedBase {\n  protected wssURL = 'wss://stream.binance.je:9443/stream'\n  protected httpURL = 'https://api.binance.je/api/v1'\n\n  protected suffixes = {\n    depth: '100ms'\n  }\n\n  protected depthRequestRequestWeight = 10\n}\n\nexport class BinanceUSRealTimeFeed extends BinanceRealTimeFeedBase {\n  protected wssURL = 'wss://stream.binance.us:9443/stream'\n  protected httpURL = 'https://api.binance.us/api/v1'\n\n  protected suffixes = {\n    depth: '100ms'\n  }\n\n  protected depthRequestRequestWeight = 10\n}\n\nexport class BinanceFuturesRealTimeFeed extends BinanceRealTimeFeedBase {\n  protected wssURL = `${BINANCE_FUTURES_DEFAULT_WS_BASE_URL}${BINANCE_FUTURES_PUBLIC_STREAM_PATH}`\n  protected httpURL = 'https://fapi.binance.com/fapi/v1'\n\n  protected suffixes = {\n    depth: '0ms',\n    markPrice: '1s'\n  }\n\n  protected depthRequestRequestWeight = 20\n\n  protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {\n    const wsFilters = filters.filter(\n      (f) => f.channel !== 'openInterest' && f.channel !== 'recentTrades' && f.channel !== 'fundingInfo' && f.channel !== 'insuranceBalance'\n    )\n\n    const publicWsFilters = wsFilters.filter((f) => BINANCE_FUTURES_PUBLIC_CHANNELS.has(f.channel))\n    if (publicWsFilters.length > 0) {\n      yield new BinanceFuturesSingleConnectionRealTimeFeed(\n        exchange,\n        publicWsFilters,\n        BINANCE_FUTURES_PUBLIC_STREAM_PATH,\n        this.httpURL,\n        this.suffixes,\n        this.depthRequestRequestWeight,\n        timeoutIntervalMS,\n        onError\n      )\n    }\n\n    const marketWsFilters = wsFilters.filter((f) => BINANCE_FUTURES_PUBLIC_CHANNELS.has(f.channel) === false)\n    if (marketWsFilters.length > 0) {\n      yield new BinanceFuturesSingleConnectionRealTimeFeed(\n        exchange,\n        marketWsFilters,\n        BINANCE_FUTURES_MARKET_STREAM_PATH,\n        this.httpURL,\n        this.suffixes,\n        this.depthRequestRequestWeight,\n        timeoutIntervalMS,\n        onError\n      )\n    }\n\n    const openInterestFilters = filters.filter((f) => f.channel === 'openInterest')\n    if (openInterestFilters.length > 0) {\n      const instruments = openInterestFilters.flatMap((s) => s.symbols!)\n\n      yield new BinanceFuturesOpenInterestClient(exchange, this.httpURL, instruments, onError)\n    }\n  }\n}\n\nexport class BinanceDeliveryRealTimeFeed extends BinanceRealTimeFeedBase {\n  protected wssURL = 'wss://dstream.binance.com/stream'\n  protected httpURL = 'https://dapi.binance.com/dapi/v1'\n\n  protected suffixes = {\n    depth: '0ms',\n    markPrice: '1s',\n    indexPrice: '1s'\n  }\n\n  protected depthRequestRequestWeight = 20\n}\n"
  },
  {
    "path": "src/realtimefeeds/binancedex.ts",
    "content": "import { getJSON } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class BinanceDexRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://dex.binance.org/api/ws'\n  protected httpURL = 'https://dex.binance.org/api/v1'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]) {\n    return filters\n      .filter((f) => f.channel !== 'depthSnapshot')\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('BinanceDexRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return {\n          method: 'subscribe',\n          topic: filter.channel,\n          symbols: filter.symbols\n        }\n      })\n  }\n\n  protected messageIsError(message: any): boolean {\n    if (message.stream === undefined) {\n      return true\n    }\n\n    return false\n  }\n\n  protected async provideManualSnapshots(filters: Filter<string>[], shouldCancel: () => boolean) {\n    const depthSnapshotFilter = filters.find((f) => f.channel === 'depthSnapshot')\n    if (!depthSnapshotFilter) {\n      return\n    }\n    this.debug('requesting manual snapshots for: %s', depthSnapshotFilter.symbols!)\n\n    for (let symbol of depthSnapshotFilter.symbols!) {\n      if (shouldCancel()) {\n        return\n      }\n\n      const { data } = await getJSON<any>(`${this.httpURL}/depth?symbol=${symbol}&limit=1000`)\n\n      const snapshot = {\n        stream: `depthSnapshot`,\n        generated: true,\n        data: {\n          symbol,\n          ...data\n        }\n      }\n\n      this.manualSnapshotsBuffer.push(snapshot)\n    }\n\n    this.debug('requested manual snapshots successfully for: %s ', depthSnapshotFilter.symbols!)\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/binanceeuropeanoptions.ts",
    "content": "import { onlyUnique } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { MultiConnectionRealTimeFeedBase, RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class BinanceEuropeanOptionsRealTimeFeed extends MultiConnectionRealTimeFeedBase {\n  protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {\n    // V2 API uses two separate WebSocket endpoints:\n    // 1. Public path: for optionTrade, depth20, bookTicker, optionTicker\n    // 2. Market path: for optionIndexPrice, optionMarkPrice, optionOpenInterest\n\n    const publicChannels = ['optionTrade', 'depth20', 'bookTicker', 'optionTicker']\n    const marketChannels = ['optionIndexPrice', 'optionMarkPrice', 'optionOpenInterest']\n\n    const publicFilters = filters.filter((f) => publicChannels.includes(f.channel))\n    const marketFilters = filters.filter((f) => marketChannels.includes(f.channel))\n\n    if (publicFilters.length > 0) {\n      yield new BinanceEuropeanOptionsSingleFeed(\n        'wss://fstream.binance.com/public/stream',\n        exchange,\n        publicFilters,\n        filters, // Pass all filters so we can look up optionTicker when processing optionOpenInterest\n        timeoutIntervalMS,\n        onError\n      )\n    }\n\n    if (marketFilters.length > 0) {\n      yield new BinanceEuropeanOptionsSingleFeed(\n        'wss://fstream.binance.com/market/stream',\n        exchange,\n        marketFilters,\n        filters, // Pass all filters so we can look up optionTicker when processing optionOpenInterest\n        timeoutIntervalMS,\n        onError\n      )\n    }\n  }\n}\n\nclass BinanceEuropeanOptionsSingleFeed extends RealTimeFeedBase {\n  constructor(\n    protected wssURL: string,\n    exchange: string,\n    filters: Filter<string>[],\n    private readonly _allFilters: Filter<string>[],\n    timeoutIntervalMS: number | undefined,\n    onError?: (error: Error) => void\n  ) {\n    super(exchange, filters, timeoutIntervalMS, onError)\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const payload = filters.map((filter, index) => {\n      if (!filter.symbols || filter.symbols.length === 0) {\n        throw new Error('BinanceEuropeanOptionsRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n      }\n\n      return {\n        method: 'SUBSCRIBE',\n        params: filter.symbols\n          .map((symbol) => {\n            const lowerSymbol = symbol.toLowerCase()\n\n            // Public path channels - use lowercase symbol directly\n            if (filter.channel === 'optionTrade') {\n              return [`${lowerSymbol}@${filter.channel}`]\n            }\n\n            if (filter.channel === 'depth20') {\n              return [`${lowerSymbol}@${filter.channel}@100ms`]\n            }\n\n            if (filter.channel === 'bookTicker') {\n              return [`${lowerSymbol}@${filter.channel}`]\n            }\n\n            if (filter.channel === 'optionTicker') {\n              return [`${lowerSymbol}@${filter.channel}`]\n            }\n\n            // Market path channels - use lowercase underlying\n            if (filter.channel === 'optionIndexPrice' || filter.channel === 'optionMarkPrice') {\n              // Symbol is the underlying (e.g., 'btcusdt')\n              return [`${lowerSymbol}@${filter.channel}`]\n            }\n\n            if (filter.channel === 'optionOpenInterest') {\n              // Need to extract expirations from option symbols\n              // The symbol here is the underlying (e.g., 'btcusdt')\n              // We need to find all option symbols that match this underlying to extract expirations\n\n              // Look for optionTicker filter in all filters to get actual option symbols\n              const optionTickerFilter = this._allFilters.find((f) => f.channel === 'optionTicker')\n\n              if (optionTickerFilter !== undefined) {\n                // Extract expirations from option symbols that match this underlying\n                const underlyingBase = lowerSymbol.replace('usdt', '').toUpperCase()\n\n                const expirations = optionTickerFilter\n                  .symbols!.filter((s) => s.toUpperCase().startsWith(underlyingBase + '-'))\n                  .map((s) => {\n                    const symbolParts = s.split('-')\n                    return symbolParts[1] // Extract expiration (e.g., '251219')\n                  })\n                  .filter(onlyUnique)\n                  .map((exp) => exp.toLowerCase())\n\n                return expirations.map((expiration) => {\n                  return `${lowerSymbol}@${filter.channel}@${expiration}`\n                })\n              }\n            }\n\n            return [`${lowerSymbol}@${filter.channel}`]\n          })\n          .flatMap((s) => s),\n        id: index + 1\n      }\n    })\n\n    return payload\n  }\n\n  protected messageIsError(message: any): boolean {\n    if (message.data !== undefined && message.data.e === 'error') {\n      return true\n    }\n\n    return false\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/bitfinex.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\nconst TIMESTAMP = 32768\nconst SEQ_ALL = 65536\n\nexport class BitfinexRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://api-pub.bitfinex.com/ws/2'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]) {\n    const configMessage = {\n      event: 'conf',\n      flags: TIMESTAMP | SEQ_ALL\n    }\n\n    const subscribeMessages = filters\n      .map((filter) => {\n        if (filter.channel !== 'liquidations' && (!filter.symbols || filter.symbols.length === 0)) {\n          throw new Error('BitfinexRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n        if (filter.channel === 'liquidations') {\n          return [\n            {\n              event: 'subscribe',\n              channel: 'status',\n              key: 'liq:global'\n            }\n          ]\n        }\n\n        return filter.symbols!.map((symbol) => {\n          if (filter.channel === 'trades') {\n            return {\n              event: 'subscribe',\n              channel: 'trades',\n              symbol: `t${symbol}`\n            }\n          }\n          if (filter.channel === 'book') {\n            return {\n              event: 'subscribe',\n              channel: 'book',\n              len: 100,\n              prec: 'P0',\n              freq: 'F0',\n              symbol: `t${symbol}`\n            }\n          }\n\n          if (filter.channel === 'status') {\n            return {\n              event: 'subscribe',\n              channel: 'status',\n              key: `deriv:t${symbol}`\n            }\n          }\n\n          if (filter.channel === 'raw_book') {\n            return {\n              event: 'subscribe',\n              channel: 'book',\n              len: 100,\n              prec: 'R0',\n              freq: 'F0',\n              symbol: `t${symbol}`\n            }\n          }\n\n          return\n        })\n      })\n      .flatMap((c) => c)\n\n    return [configMessage, ...subscribeMessages]\n  }\n\n  protected messageIsError(message: any) {\n    return message.event === 'error'\n  }\n\n  protected messageIsHeartbeat(message: any) {\n    return Array.isArray(message) && message.length > 1 && message[1] === 'hb'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/bitflyer.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class BitflyerRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://ws.lightstream.bitflyer.com/json-rpc'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    return filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('BitflyerRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          return {\n            method: 'subscribe',\n            params: {\n              channel: `${filter.channel}_${symbol}`\n            }\n          }\n        })\n      })\n      .flatMap((c) => c)\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.method !== 'channelMessage'\n  }\n\n  protected onMessage = (msg: any) => {\n    // once we've received book snapshot, let's unsubscribe from it\n    if ((msg.params.channel as string).startsWith('lightning_board_snapshot')) {\n      this.send({\n        method: 'unsubscribe',\n        params: {\n          channel: msg.params.channel\n        }\n      })\n    }\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/bitget.ts",
    "content": "import { batchObjects } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nabstract class BitgetRealTimeFeedBase extends RealTimeFeedBase {\n  protected throttleSubscribeMS = 100\n  protected readonly wssURL = 'wss://ws.bitget.com/v2/ws/public'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const argsInputs = filters.flatMap((filter) => {\n      if (!filter.symbols || filter.symbols.length === 0) {\n        throw new Error('BitgetRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n      }\n\n      return filter.symbols.map((symbol) => {\n        return {\n          instType: this.getInstType(symbol),\n          channel: filter.channel,\n          instId: symbol\n        }\n      })\n    })\n\n    const payload = [...batchObjects(argsInputs, 5)].map((args) => {\n      return {\n        op: 'subscribe',\n        args\n      }\n    })\n\n    return payload\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.event === 'error'\n  }\n\n  abstract getInstType(symbol: string): string\n}\n\nexport class BitgetRealTimeFeed extends BitgetRealTimeFeedBase {\n  getInstType(_: string) {\n    return 'SPOT'\n  }\n}\n\nexport class BitgetFuturesRealTimeFeed extends BitgetRealTimeFeedBase {\n  getInstType(symbol: string) {\n    if (symbol.endsWith('USDT')) {\n      return 'USDT-FUTURES'\n    }\n\n    if (symbol.endsWith('PERP')) {\n      return 'USDC-FUTURES'\n    }\n\n    return 'COIN-FUTURES'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/bitmex.ts",
    "content": "import { batch } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class BitmexRealTimeFeed extends RealTimeFeedBase {\n  protected readonly wssURL = 'wss://ws.bitmex.com/realtime'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]) {\n    return filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          return [\n            {\n              op: 'subscribe',\n              args: [filter.channel]\n            }\n          ]\n        }\n        const subscribeMessages = []\n        for (const symbolsBatch of batch(filter.symbols, 10)) {\n          subscribeMessages.push({\n            op: 'subscribe',\n            args: symbolsBatch.map((s) => `${filter.channel}:${s}`)\n          })\n        }\n\n        return subscribeMessages\n      })\n      .flatMap((s) => s)\n  }\n\n  protected messageIsError(message: any): boolean {\n    if (message.error !== undefined) {\n      return true\n    }\n\n    if ('subscribe' in message && message.success === false) {\n      return true\n    }\n    return false\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/bitnomial.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class BitnomialRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://bitnomial.com/exchange/ws'\n\n  protected channelMappings = {\n    book: ['book', 'level']\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const channelsToSubscribe = filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('BitnomialRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n        const subscribeToBookChannel = this.channelMappings.book.includes(filter.channel)\n        let channel\n        if (subscribeToBookChannel) {\n          channel = 'book'\n        } else {\n          channel = filter.channel\n        }\n\n        return {\n          name: channel,\n          product_codes: filter.symbols\n        }\n      })\n      .reduce((prev, current) => {\n        const matchingExisting = prev.find((c) => c.name === current.name)\n        if (matchingExisting !== undefined) {\n          for (const symbol of current.product_codes) {\n            if (matchingExisting.product_codes.includes(symbol) === false) {\n              matchingExisting.product_codes.push(symbol)\n            }\n          }\n        } else {\n          prev.push(current)\n        }\n\n        return prev\n      }, [] as { name: string; product_codes: string[] }[])\n\n    return [\n      {\n        type: 'subscribe',\n        product_codes: [],\n        channels: channelsToSubscribe\n      }\n    ]\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.type === 'error' || message.type === 'disconnect'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/bitstamp.ts",
    "content": "import { getJSON } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class BitstampRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://ws.bitstamp.net'\n  protected httpURL = 'https://www.bitstamp.net/api/v2'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    return filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('BitstampRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          return {\n            event: 'bts:subscribe',\n            data: {\n              channel: `${filter.channel}_${symbol}`\n            }\n          }\n        })\n      })\n      .flatMap((c) => c)\n  }\n\n  protected messageIsError(message: any): boolean {\n    if (message.channel === undefined) {\n      return true\n    }\n\n    if (message.event === 'bts:request_reconnect') {\n      return true\n    }\n\n    return false\n  }\n\n  protected async provideManualSnapshots(filters: Filter<string>[], shouldCancel: () => boolean) {\n    const orderBookFilter = filters.find((f) => f.channel === 'diff_order_book')\n    if (!orderBookFilter) {\n      return\n    }\n\n    this.debug('requesting manual snapshots for: %s', orderBookFilter.symbols!)\n\n    for (let symbol of orderBookFilter.symbols!) {\n      if (shouldCancel()) {\n        return\n      }\n\n      const { data } = await getJSON(`${this.httpURL}/order_book/${symbol}?group=1`)\n\n      const snapshot = {\n        data,\n        event: 'snapshot',\n        channel: `diff_order_book_${symbol}`,\n        generated: true\n      }\n\n      this.manualSnapshotsBuffer.push(snapshot)\n    }\n\n    this.debug('requested manual snapshots successfully for: %s ', orderBookFilter.symbols!)\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/blockchaincom.ts",
    "content": "import { wait } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class BlockchainComRealTimeFeed extends RealTimeFeedBase {\n  protected readonly wssURL = 'wss://ws.blockchain.info/mercury-gateway/v1/ws'\n  protected readonly originHeader = 'https://exchange.blockchain.com'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const subs = filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('BlockchainComRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          return {\n            action: 'subscribe',\n            channel: filter.channel,\n            symbol\n          }\n        })\n      })\n      .flatMap((f) => f)\n\n    return subs\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.event === 'rejected'\n  }\n\n  protected messageIsHeartbeat(msg: any) {\n    return msg.channel === 'heartbeat'\n  }\n  protected async onConnected() {\n    this.send({\n      action: 'subscribe',\n      channel: 'heartbeat'\n    })\n\n    await wait(0)\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/bybit.ts",
    "content": "import { batch } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase, MultiConnectionRealTimeFeedBase } from './realtimefeed.ts'\n\nexport class BybitRealTimeDataFeed extends MultiConnectionRealTimeFeedBase {\n  protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {\n    const linearContractsFilters = filters.reduce(\n      this._only((s) => s.endsWith('USDT') || s.includes('-') || s.endsWith('PERP')),\n      [] as Filter<string>[]\n    )\n\n    const inverseContractsFilters = filters.reduce(\n      this._only((s) => s.endsWith('USDT') === false && s.includes('-') === false && s.endsWith('PERP') === false),\n      [] as Filter<string>[]\n    )\n\n    if (linearContractsFilters.length > 0) {\n      yield new BybitLinearRealTimeDataFeed(exchange, linearContractsFilters, timeoutIntervalMS, onError)\n    }\n\n    if (inverseContractsFilters.length > 0) {\n      yield new BybitInverseRealTimeDataFeed(exchange, inverseContractsFilters, timeoutIntervalMS, onError)\n    }\n  }\n\n  private _only(filter: (symbol: string) => boolean) {\n    return (prev: Filter<string>[], current: Filter<string>) => {\n      if (!current.symbols || current.symbols.length === 0) {\n        throw new Error('BybitRealTimeDataFeed requires explicitly specified symbols when subscribing to live feed')\n      }\n\n      const symbols = current.symbols.filter(filter)\n      if (symbols.length > 0) {\n        prev.push({\n          channel: current.channel,\n          symbols\n        })\n      }\n      return prev\n    }\n  }\n}\n\nabstract class BybitSingleConnectionRealTimeDataFeed extends RealTimeFeedBase {\n  protected abstract readonly wssURL: string\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const args = filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('BybitRealTimeDataFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols!.map((symbol) => {\n          return `${filter.channel}.${symbol}`\n        })\n      })\n      .flatMap((f) => f)\n\n    return [...batch(args, 10)].map((argBatch) => {\n      return {\n        op: 'subscribe',\n        args: argBatch\n      }\n    })\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.success === false\n  }\n\n  protected sendCustomPing = () => {\n    this.send({ op: 'ping' })\n  }\n\n  protected messageIsHeartbeat(msg: any) {\n    return msg.ret_msg === 'pong' || msg.op == 'pong'\n  }\n}\n\nclass BybitLinearRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed {\n  protected wssURL: string = 'wss://stream.bybit.com/v5/public/linear'\n}\n\nclass BybitInverseRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed {\n  protected wssURL: string = 'wss://stream.bybit.com/v5/public/inverse'\n}\n\nexport class BybitSpotRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed {\n  protected wssURL: string = 'wss://stream.bybit.com/v5/public/spot'\n}\n\nexport class BybitOptionsRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed {\n  protected wssURL: string = 'wss://stream.bybit.com/v5/public/option'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const args = filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('BybitRealTimeDataFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        if (filter.channel === 'publicTrade') {\n          const baseCoins = [...new Set(filter.symbols.map((s) => s.split('-')[0]))]\n          return baseCoins.map((symbol) => {\n            return `${filter.channel}.${symbol}`\n          })\n        }\n\n        return filter.symbols!.map((symbol) => {\n          return `${filter.channel}.${symbol}`\n        })\n      })\n      .flatMap((f) => f)\n\n    return [...batch(args, 10)].map((argBatch) => {\n      return {\n        op: 'subscribe',\n        args: argBatch\n      }\n    })\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/coinbase.ts",
    "content": "import crypto from 'crypto'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class CoinbaseRealTimeFeed extends RealTimeFeedBase {\n  private _hasCredentials =\n    process.env.COINBASE_API_KEY !== undefined &&\n    process.env.COINBASE_API_SECRET !== undefined &&\n    process.env.COINBASE_API_PASSPHRASE !== undefined\n\n  protected get wssURL() {\n    return this._hasCredentials ? 'wss://ws-direct.exchange.coinbase.com' : 'wss://ws-feed.exchange.coinbase.com'\n  }\n\n  // map from coinbase subscribe 'channels' to more granular channels that tardis uses\n  protected channelMappings = {\n    full: ['received', 'open', 'done', 'match', 'change', 'full_snapshot'],\n    level2: ['snapshot', 'l2update'],\n    matches: ['match', 'last_match'],\n    ticker: ['ticker']\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const channelsToSubscribe = filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('CoinbaseRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        const subscribeToFullChannel =\n          filters.filter((f) => this.channelMappings.full.includes(f.channel) && f.channel !== 'match').length > 0\n        const subscribeToLevel2Channel = this.channelMappings.level2.includes(filter.channel)\n        const subscribeToMatchesChannel = this.channelMappings.matches.includes(filter.channel)\n        let channel\n\n        if (subscribeToFullChannel) {\n          channel = 'full'\n        } else if (subscribeToLevel2Channel) {\n          if (this._hasCredentials) {\n            channel = 'level2'\n          } else {\n            // for not authenticated connections use batch channel, non batched l2 updates require auth\n            channel = 'level2_batch'\n          }\n        } else if (subscribeToMatchesChannel) {\n          channel = 'matches'\n        } else {\n          channel = 'ticker'\n        }\n\n        return {\n          name: channel,\n          product_ids: filter.symbols\n        }\n      })\n      .reduce((prev, current) => {\n        const matchingExisting = prev.find((c) => c.name === current.name)\n        if (matchingExisting !== undefined) {\n          for (const symbol of current.product_ids) {\n            if (matchingExisting.product_ids.includes(symbol) === false) {\n              matchingExisting.product_ids.push(symbol)\n            }\n          }\n        } else {\n          prev.push(current)\n        }\n\n        return prev\n      }, [] as { name: string; product_ids: string[] }[])\n\n    if (this._hasCredentials) {\n      const authParams = this.getAuthParams()\n\n      return [\n        {\n          type: 'subscribe',\n          channels: channelsToSubscribe,\n          ...authParams\n        }\n      ]\n    }\n\n    return [\n      {\n        type: 'subscribe',\n        channels: channelsToSubscribe\n      }\n    ]\n  }\n\n  private getAuthParams() {\n    const timestamp = Math.floor(Date.now().valueOf() / 1000)\n    const apiSecret = process.env.COINBASE_API_SECRET!\n    const message = `${timestamp}GET/users/self/verify`\n    const hmac = crypto.createHmac('sha256', Buffer.from(apiSecret, 'base64'))\n    const signature = hmac.update(message).digest('base64')\n\n    return {\n      signature,\n      key: process.env.COINBASE_API_KEY!,\n      passphrase: process.env.COINBASE_API_PASSPHRASE!,\n      timestamp\n    }\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.type === 'error'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/coinbaseinternational.ts",
    "content": "import crypto from 'crypto'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class CoinbaseInternationalRealTimeFeed extends RealTimeFeedBase {\n  private _hasCredentials =\n    process.env.COINBASE_INTERNATIONAL_API_KEY !== undefined &&\n    process.env.COINBASE_INTERNATIONAL_API_SECRET !== undefined &&\n    process.env.COINBASE_INTERNATIONAL_API_PASSPHRASE !== undefined\n\n  protected get wssURL() {\n    return 'wss://ws-md.international.coinbase.com'\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    if (this._hasCredentials == false) {\n      throw new Error(\n        'CoinbaseInternationalRealTimeFeed requires auth credentials env vars set(COINBASE_INTERNATIONAL_API_KEY, COINBASE_INTERNATIONAL_API_SECRET, COINBASE_INTERNATIONAL_API_PASSPHRASE)'\n      )\n    }\n\n    const authParams = this.getAuthParams()\n\n    return filters.map((filter) => {\n      if (!filter.symbols || filter.symbols.length === 0) {\n        throw new Error('CoinbaseInternationalRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n      }\n\n      return {\n        type: 'SUBSCRIBE',\n        product_ids: filter.symbols,\n        channels: [filter.channel],\n        signature: authParams.signature,\n        key: authParams.key,\n        time: authParams.time,\n        passphrase: authParams.passphrase\n      }\n    })\n  }\n\n  private getAuthParams() {\n    const time = Math.floor(Date.now().valueOf() / 1000)\n    const apiSecret = process.env.COINBASE_INTERNATIONAL_API_SECRET!\n    const message = `${time}${process.env.COINBASE_INTERNATIONAL_API_KEY}CBINTLMD${process.env.COINBASE_INTERNATIONAL_API_PASSPHRASE}`\n\n    const hmac = crypto.createHmac('sha256', Buffer.from(apiSecret, 'base64'))\n    const signature = hmac.update(message).digest('base64')\n\n    return {\n      signature,\n      key: process.env.COINBASE_INTERNATIONAL_API_KEY!,\n      passphrase: process.env.COINBASE_INTERNATIONAL_API_PASSPHRASE!,\n      time\n    }\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.type === 'REJECT'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/coinflex.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class CoinflexRealTimeFeed extends RealTimeFeedBase {\n  protected readonly wssURL = 'wss://v2api.coinflex.com/v2/websocket'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const args = filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('CoinflexRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((s) => `${filter.channel}:${s}`)\n      })\n      .flatMap((s) => s)\n\n    const payload = {\n      op: 'subscribe',\n      args\n    }\n\n    return [payload]\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.success === false\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/cryptocom.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class CryptoComRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://stream.crypto.com/exchange/v1/market'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const channels = filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('CryptoComRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          const suffix = filter.channel === 'book' ? '.50' : ''\n          return `${filter.channel}.${symbol}${suffix}`\n        })\n      })\n      .flatMap((s) => s)\n\n    return [\n      {\n        id: 1,\n        method: 'subscribe',\n        nonce: new Date().valueOf(),\n        params: {\n          channels: channels,\n          book_subscription_type: 'SNAPSHOT_AND_UPDATE'\n        }\n      }\n    ]\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.code !== undefined && message.code !== 0 && message.code !== 40003\n  }\n\n  protected onMessage(msg: any) {\n    if (msg.method === 'public/heartbeat') {\n      this.send({\n        id: msg.id,\n        method: 'public/respond-heartbeat'\n      })\n    }\n  }\n  protected messageIsHeartbeat(msg: any) {\n    return msg.method === 'public/heartbeat'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/cryptofacilities.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class CryptofacilitiesRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://futures.kraken.com/ws/v1'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    return filters\n      .filter((filter) => filter.channel.endsWith('_snapshot') === false)\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('CryptofacilitiesRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return {\n          event: 'subscribe',\n          product_ids: filter.symbols,\n          feed: filter.channel\n        }\n      })\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.event === 'error'\n  }\n\n  protected messageIsHeartbeat(message: any): boolean {\n    return message.feed === 'heartbeat'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/delta.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class DeltaRealTimeFeed extends RealTimeFeedBase {\n  protected readonly wssURL = 'wss://socket.delta.exchange'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]) {\n    return filters.map((filter) => {\n      return {\n        type: 'subscribe',\n        payload: {\n          channels: [\n            {\n              name: filter.channel,\n              symbols:\n                filter.symbols !== undefined && filter.channel === 'mark_price' ? filter.symbols.map((s) => `MARK:${s}`) : filter.symbols\n            }\n          ]\n        }\n      }\n    })\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.error !== undefined && message.error !== null\n  }\n\n  protected sendCustomPing = () => {\n    this.send({ type: 'ping' })\n  }\n\n  protected messageIsHeartbeat(msg: any) {\n    return msg.type === 'pong'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/deribit.ts",
    "content": "import { wait } from '../handy.ts'\nimport { Filter, FilterForExchange } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class DeribitRealTimeDataFeed extends RealTimeFeedBase {\n  protected get wssURL() {\n    if (this._hasCredentials) {\n      return 'wss://www.deribit.com/ws/api/v2'\n    } else {\n      return 'wss://streams.deribit.com/ws/api/v2'\n    }\n  }\n\n  private _hasCredentials = process.env.DERIBIT_API_CLIENT_ID !== undefined && process.env.DERIBIT_API_CLIENT_SECRET !== undefined\n\n  protected channelsWithIntervals: FilterForExchange['deribit']['channel'][] = ['book', 'perpetual', 'trades', 'ticker']\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const hasCredentials = this._hasCredentials\n\n    const channels = filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('DeribitRealTimeDataFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          const suffix = this.channelsWithIntervals.includes(filter.channel as any) ? (hasCredentials ? '.raw' : '.100ms') : ''\n\n          return `${filter.channel}.${symbol}${suffix}`\n        })\n      })\n      .flatMap((f) => f)\n\n    return [\n      {\n        jsonrpc: '2.0',\n        id: 3,\n        method: hasCredentials ? 'private/subscribe' : 'public/subscribe',\n        params: {\n          channels\n        }\n      }\n    ]\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.error !== undefined\n  }\n\n  protected async onConnected() {\n    // set heartbeat so deribit won't close connection prematurely\n    // https://docs.deribit.com/v2/#public-set_heartbeat\n\n    this.send({\n      jsonrpc: '2.0',\n      method: 'public/set_heartbeat',\n      id: 0,\n      params: {\n        interval: 10\n      }\n    })\n\n    if (this._hasCredentials) {\n      this.send({\n        jsonrpc: '2.0',\n        method: 'public/auth',\n        id: 1,\n        params: {\n          grant_type: 'client_credentials',\n          client_id: process.env.DERIBIT_API_CLIENT_ID,\n          client_secret: process.env.DERIBIT_API_CLIENT_SECRET\n        }\n      })\n\n      await wait(10)\n    }\n  }\n\n  protected messageIsHeartbeat(msg: any) {\n    return msg.method === 'heartbeat'\n  }\n\n  protected onMessage(msg: any) {\n    // respond with public/test message to keep connection alive\n    if (msg.params !== undefined && msg.params.type === 'test_request') {\n      this.send({\n        jsonrpc: '2.0',\n        method: 'public/test',\n        id: 0,\n        params: {}\n      })\n    }\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/dydx.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class DydxRealTimeFeed extends RealTimeFeedBase {\n  protected readonly wssURL = 'wss://api.dydx.exchange/v3/ws'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const subs = filters\n      .map((filter) => {\n        if (filter.channel === 'v3_markets') {\n          return [\n            {\n              type: 'subscribe',\n              channel: 'v3_markets'\n            }\n          ]\n        }\n\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('DydxRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          return {\n            type: 'subscribe',\n            channel: filter.channel,\n            id: symbol,\n            includeOffsets: filter.channel === 'v3_orderbook' ? true : undefined\n          }\n        })\n      })\n      .flatMap((f) => f)\n\n    return subs\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.type === 'error'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/dydx_v4.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class DydxV4RealTimeFeed extends RealTimeFeedBase {\n  protected readonly wssURL = 'wss://indexer.dydx.trade/v4/ws'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const subs = filters\n      .map((filter) => {\n        if (filter.channel === 'v4_markets') {\n          return [\n            {\n              type: 'subscribe',\n              channel: 'v4_markets'\n            }\n          ]\n        }\n\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('DydxV4RealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          return {\n            type: 'subscribe',\n            channel: filter.channel,\n            id: symbol\n          }\n        })\n      })\n      .flatMap((f) => f)\n\n    return subs\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.type === 'error'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/ftx.ts",
    "content": "import { Writable } from 'stream'\n\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase, PoolingClientBase, MultiConnectionRealTimeFeedBase } from './realtimefeed.ts'\nimport { batch, getJSON } from '../handy.ts'\n\nabstract class FTXRealTimeFeedBase extends MultiConnectionRealTimeFeedBase {\n  protected abstract wssURL: string\n  protected abstract httpURL: string\n\n  protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {\n    const wsFilters = filters.filter((f) => f.channel !== 'instrument')\n\n    if (wsFilters.length > 0) {\n      yield new FtxSingleConnectionRealTimeFeed(exchange, wsFilters, this.wssURL, timeoutIntervalMS, onError)\n    }\n\n    const instrumentInfoFilters = filters.filter((f) => f.channel === 'instrument')\n    if (instrumentInfoFilters.length > 0) {\n      const instruments = instrumentInfoFilters.flatMap((s) => s.symbols!)\n\n      if (instruments.length > 0) {\n        yield new FTXInstrumentInfoClient(exchange, this.httpURL, instruments, onError)\n      }\n    }\n  }\n}\n\nclass FtxSingleConnectionRealTimeFeed extends RealTimeFeedBase {\n  constructor(\n    exchange: string,\n    filters: Filter<string>[],\n    protected wssURL: string,\n    timeoutIntervalMS: number | undefined,\n    onError?: (error: Error) => void\n  ) {\n    super(exchange, filters, timeoutIntervalMS, onError)\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    return filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('FtxRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          return {\n            op: 'subscribe',\n            channel: filter.channel,\n            market: symbol\n          }\n        })\n      })\n      .flatMap((c) => c)\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.type === 'error'\n  }\n\n  protected isIgnoredError(message: any) {\n    // ignore market not found errors\n    return message.code == 404\n  }\n\n  protected sendCustomPing = () => {\n    this.send({ op: 'ping' })\n  }\n\n  protected messageIsHeartbeat(msg: any) {\n    return msg.type === 'pong'\n  }\n}\n\nclass FTXInstrumentInfoClient extends PoolingClientBase {\n  constructor(\n    exchange: string,\n    private readonly _httpURL: string,\n    private readonly _instruments: string[],\n    onError?: (error: Error) => void\n  ) {\n    super(exchange, 5, onError)\n  }\n\n  protected async poolDataToStream(outputStream: Writable) {\n    for (const instruments of batch(this._instruments, 10)) {\n      await Promise.allSettled(\n        instruments.map(async (instrument) => {\n          if (outputStream.destroyed) {\n            return\n          }\n\n          try {\n            const responses = await Promise.all([\n              getJSON<any>(`${this._httpURL}/futures/${instrument}/stats`, { timeout: 10000 }),\n              getJSON<any>(`${this._httpURL}/futures/${instrument}`, { timeout: 10000 })\n            ])\n\n            if (responses.some((response) => response.data.success === false)) {\n              return\n            }\n\n            const instrumentMessage = {\n              channel: 'instrument',\n              generated: true,\n              market: instrument,\n              type: 'update',\n              data: {\n                stats: responses[0].data.result,\n                info: responses[1].data.result\n              }\n            }\n\n            if (outputStream.writable) {\n              outputStream.write(instrumentMessage)\n            }\n          } catch (err) {\n            if (this.onError !== undefined) {\n              this.onError(err as any)\n            }\n          }\n        })\n      )\n    }\n  }\n}\n\nexport class FtxRealTimeFeed extends FTXRealTimeFeedBase {\n  protected wssURL = 'wss://ftx.com/ws'\n  protected httpURL = 'https://ftx.com/api'\n}\n\nexport class FtxUSRealTimeFeed extends FTXRealTimeFeedBase {\n  protected wssURL = 'wss://ftx.us/ws/'\n  protected httpURL = 'https://ftx.us/api'\n}\n"
  },
  {
    "path": "src/realtimefeeds/gateio.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class GateIORealTimeFeed extends RealTimeFeedBase {\n  protected readonly wssURL = 'wss://api.gateio.ws/ws/v4/'\n  protected httpURL = 'https://api.gateio.ws/api/v4'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const payload = filters.map((filter) => {\n      if (!filter.symbols || filter.symbols.length === 0) {\n        throw new Error('GateIORealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n      }\n\n      if (filter.channel === 'obu') {\n        return filter.symbols!.map((symbol) => {\n          return {\n            time: new Date().valueOf(),\n            channel: `spot.${filter.channel}`,\n            event: 'subscribe',\n            payload: [`ob.${symbol}.400`]\n          }\n        })\n      } else {\n        return filter.symbols!.map((symbol) => {\n          return {\n            time: new Date().valueOf(),\n            channel: `spot.${filter.channel}`,\n            event: 'subscribe',\n            method: `${filter.channel}.subscribe`,\n            payload: [symbol]\n          }\n        })\n      }\n    })\n\n    return payload.flatMap((f) => f)\n  }\n\n  protected messageIsError(message: any): boolean {\n    if (message.error !== null && message.error !== undefined) {\n      return true\n    }\n\n    return false\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/gateiofutures.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase, MultiConnectionRealTimeFeedBase } from './realtimefeed.ts'\n\nexport class GateIOFuturesRealTimeFeed extends MultiConnectionRealTimeFeedBase {\n  protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {\n    const linearContractsFilters = filters.reduce(\n      this._only((s) => s.endsWith('_USDT')),\n      [] as Filter<string>[]\n    )\n\n    const inverseContractsFilters = filters.reduce(\n      this._only((s) => s.endsWith('_USDT') === false),\n      [] as Filter<string>[]\n    )\n\n    if (linearContractsFilters.length > 0) {\n      yield new GateIOFuturesSingleConnectionRealTimeFeed('usdt', exchange, linearContractsFilters, timeoutIntervalMS, onError)\n    }\n\n    if (inverseContractsFilters.length > 0) {\n      yield new GateIOFuturesSingleConnectionRealTimeFeed('btc', exchange, inverseContractsFilters, timeoutIntervalMS, onError)\n    }\n  }\n\n  private _only(filter: (symbol: string) => boolean) {\n    return (prev: Filter<string>[], current: Filter<string>) => {\n      if (!current.symbols || current.symbols.length === 0) {\n        throw new Error('GateIOFuturesRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n      }\n\n      const symbols = current.symbols.filter(filter)\n      if (symbols.length > 0) {\n        prev.push({\n          channel: current.channel,\n          symbols\n        })\n      }\n      return prev\n    }\n  }\n}\n\nclass GateIOFuturesSingleConnectionRealTimeFeed extends RealTimeFeedBase {\n  protected readonly wssURL: string\n  protected readonly extraHeaders = { 'X-Gate-Size-Decimal': '1' }\n\n  constructor(\n    wsURLSuffix: string,\n    exchange: string,\n    filters: Filter<string>[],\n    timeoutIntervalMS?: number,\n    onError?: (error: Error) => void\n  ) {\n    super(exchange, filters, timeoutIntervalMS, onError)\n    this.wssURL = `wss://fx-ws.gateio.ws/v4/ws/${wsURLSuffix}`\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const payload = filters.flatMap((filter) => {\n      if (filter.channel === 'order_book') {\n        return filter.symbols!.map((symbol) => {\n          return {\n            event: 'subscribe',\n            channel: `futures.${filter.channel}`,\n            payload: [symbol, '20', '0'],\n            time: Math.floor(new Date().valueOf() / 1000)\n          }\n        })\n      } else {\n        return [\n          {\n            event: 'subscribe',\n            channel: `futures.${filter.channel}`,\n            payload: filter.symbols,\n            time: Math.floor(new Date().valueOf() / 1000)\n          }\n        ]\n      }\n    })\n\n    return payload\n  }\n\n  protected messageIsError(message: any): boolean {\n    if (message.error !== null && message.error !== undefined) {\n      return true\n    }\n\n    return false\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/gemini.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class GeminiRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://api.gemini.com/v2/marketdata'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const symbols = filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('GeminiRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols\n      })\n      .flatMap((s) => s)\n      .filter((value, index, self) => {\n        return self.indexOf(value) === index\n      })\n\n    return [\n      {\n        type: 'subscribe',\n        subscriptions: [\n          {\n            name: 'l2',\n            symbols\n          }\n        ]\n      }\n    ]\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.result === 'error'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/hitbtc.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class HitBtcRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://api.hitbtc.com/api/2/ws'\n\n  protected channelMappings = {\n    subscribeOrderbook: ['snapshotOrderbook', 'updateOrderbook'],\n    subscribeTrades: ['updateTrades', 'snapshotTrades']\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const subscriptions = filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('HitBtcRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        const subscribeToOrderBook = this.channelMappings.subscribeOrderbook.includes(filter.channel)\n        const subscribeToTrades = this.channelMappings.subscribeTrades.includes(filter.channel)\n        let method: string\n\n        if (subscribeToOrderBook) {\n          method = 'subscribeOrderbook'\n        } else if (subscribeToTrades) {\n          method = 'subscribeTrades'\n        } else {\n          throw new Error(`Invalid channel: ${filter.channel}`)\n        }\n\n        return filter.symbols.map((symbol) => {\n          return {\n            method,\n            symbol\n          }\n        })\n      })\n      .flatMap((s) => s)\n      .reduce((prev, current) => {\n        const matchingExisting = prev.find((c) => c.method === current.method && c.symbol === current.symbol)\n        if (matchingExisting === undefined) {\n          prev.push(current)\n        }\n\n        return prev\n      }, [] as { method: string; symbol: string }[])\n\n    return subscriptions.map((subscription, index) => {\n      return {\n        method: subscription.method,\n        params: {\n          symbol: subscription.symbol\n        },\n        id: index + 1\n      }\n    })\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.error !== undefined\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/huobi.ts",
    "content": "import { unzipSync } from 'zlib'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase, MultiConnectionRealTimeFeedBase, PoolingClientBase } from './realtimefeed.ts'\nimport { wait, ONE_SEC_IN_MS, batch, getJSON } from '../handy.ts'\nimport { Writable } from 'stream'\n\nabstract class HuobiRealTimeFeedBase extends MultiConnectionRealTimeFeedBase {\n  protected abstract wssURL: string\n  protected abstract httpURL: string\n  protected abstract suffixes: { [key: string]: string }\n\n  private _marketDataChannels = ['depth', 'detail', 'trade', 'bbo']\n  private _notificationsChannels = ['funding_rate', 'liquidation_orders', 'contract_info']\n\n  protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {\n    const marketByPriceFilters = filters.filter((f) => f.channel === 'mbp')\n\n    if (marketByPriceFilters.length > 0) {\n      // https://huobiapi.github.io/docs/spot/v1/en/#market-by-price-incremental-update\n      const marketByPriceWSUrl = this.wssURL.replace('/ws', '/feed')\n      yield new HuobiMarketDataRealTimeFeed(exchange, marketByPriceFilters, marketByPriceWSUrl, this.suffixes, timeoutIntervalMS, onError)\n    }\n\n    const basisFilters = filters.filter((f) => f.channel === 'basis')\n\n    if (basisFilters.length > 0) {\n      const basisWSURL = this.wssURL.replace('/ws', '/ws_index').replace('/swap-ws', '/ws_index').replace('/linear-swap-ws', '/ws_index')\n\n      yield new HuobiMarketDataRealTimeFeed(exchange, basisFilters, basisWSURL, this.suffixes, timeoutIntervalMS, onError)\n    }\n\n    const marketDataFilters = filters.filter((f) => this._marketDataChannels.includes(f.channel))\n\n    if (marketDataFilters.length > 0) {\n      yield new HuobiMarketDataRealTimeFeed(exchange, marketDataFilters, this.wssURL, this.suffixes, timeoutIntervalMS, onError)\n    }\n\n    const notificationsFilters = filters.filter((f) => this._notificationsChannels.includes(f.channel))\n\n    if (notificationsFilters.length > 0) {\n      const notificationsWSURL = this.wssURL\n        .replace('/swap-ws', '/swap-notification')\n        .replace('/ws', '/notification')\n        .replace('/linear-swap-ws', '/linear-swap-notification')\n\n      yield new HuobiNotificationsRealTimeFeed(exchange, notificationsFilters, notificationsWSURL, timeoutIntervalMS, onError)\n    }\n\n    const openInterestFilters = filters.filter((f) => f.channel === 'open_interest')\n\n    if (openInterestFilters.length > 0) {\n      const instruments = openInterestFilters.flatMap((s) => s.symbols!)\n\n      yield new HuobiOpenInterestClient(exchange, this.httpURL, instruments, this.getOpenInterestURLPath.bind(this))\n    }\n\n    const optionMarketIndexFilters = filters.filter((f) => f.channel === 'option_market_index')\n    if (optionMarketIndexFilters.length > 0) {\n      const instruments = optionMarketIndexFilters.flatMap((s) => s.symbols!)\n\n      yield new HuobiOptionsMarketIndexClient(exchange, this.httpURL, instruments)\n    }\n\n    const optionIndexFilters = filters.filter((f) => f.channel === 'option_index')\n\n    if (optionIndexFilters.length > 0) {\n      const instruments = optionIndexFilters.flatMap((s) => s.symbols!)\n\n      yield new HuobiOptionsIndexClient(exchange, this.httpURL, instruments)\n    }\n  }\n\n  protected getOpenInterestURLPath(symbol: string) {\n    return symbol\n  }\n}\n\nclass HuobiMarketDataRealTimeFeed extends RealTimeFeedBase {\n  constructor(\n    exchange: string,\n    filters: Filter<string>[],\n    protected wssURL: string,\n    private readonly _suffixes: { [key: string]: string },\n    timeoutIntervalMS: number | undefined,\n    onError?: (error: Error) => void\n  ) {\n    super(exchange, filters, timeoutIntervalMS, onError)\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    return filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('HuobiRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          const sub = `market.${symbol}.${filter.channel}${\n            this._suffixes[filter.channel] !== undefined ? this._suffixes[filter.channel] : ''\n          }`\n          return {\n            id: '1',\n            sub,\n            data_type: sub.endsWith('.high_freq') ? 'incremental' : undefined\n          }\n        })\n      })\n      .flatMap((s) => s)\n  }\n\n  protected async provideManualSnapshots(filters: Filter<string>[], shouldCancel: () => boolean) {\n    const mbpFilter = filters.find((f) => f.channel === 'mbp')\n    if (!mbpFilter) {\n      return\n    }\n\n    await wait(1.5 * ONE_SEC_IN_MS)\n\n    for (let symbol of mbpFilter.symbols!) {\n      if (shouldCancel()) {\n        return\n      }\n\n      setTimeout(() => {\n        this.send({\n          id: '1',\n          req: `market.${symbol}.mbp.400`\n        })\n        this.debug('sent mbp.400 \"req\" for: %s', mbpFilter.symbols)\n      }, 3000)\n\n      await wait(50)\n    }\n  }\n\n  protected decompress = (message: any) => {\n    message = unzipSync(message)\n\n    return message as Buffer\n  }\n\n  protected messageIsError(message: any): boolean {\n    if (message.status === 'error') {\n      return true\n    }\n    return false\n  }\n\n  protected isIgnoredError(message: any) {\n    // ignore market not found errors\n    if (message['err-msg'] !== undefined && message['err-msg'].includes('invalid symbol ')) {\n      return true\n    }\n\n    return false\n  }\n\n  protected onMessage(message: any) {\n    if (message.ping !== undefined) {\n      this.send({\n        pong: message.ping\n      })\n    }\n  }\n\n  protected messageIsHeartbeat(message: any) {\n    return message.ping !== undefined\n  }\n}\n\nclass HuobiNotificationsRealTimeFeed extends RealTimeFeedBase {\n  constructor(\n    exchange: string,\n    filters: Filter<string>[],\n    protected wssURL: string,\n    timeoutIntervalMS: number | undefined,\n    onError?: (error: Error) => void\n  ) {\n    super(exchange, filters, timeoutIntervalMS, onError)\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    return filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('HuobiNotificationsRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          return {\n            op: 'sub',\n            cid: '1',\n            topic: `public.${symbol}.${filter.channel}`\n          }\n        })\n      })\n      .flatMap((s) => s)\n  }\n\n  protected decompress = (message: any) => {\n    message = unzipSync(message)\n\n    return message as Buffer\n  }\n\n  protected messageIsError(message: any): boolean {\n    if (message.op === 'error' || message.op === 'close') {\n      return true\n    }\n\n    const errorCode = message['err-code']\n    if (errorCode !== undefined && errorCode !== 0) {\n      return true\n    }\n\n    return false\n  }\n\n  protected onMessage(message: any) {\n    if (message.op === 'ping') {\n      this.send({\n        op: 'pong',\n        ts: message.ts\n      })\n    }\n  }\n\n  protected messageIsHeartbeat(message: any) {\n    return message.ping !== undefined\n  }\n}\n\nclass HuobiOpenInterestClient extends PoolingClientBase {\n  constructor(\n    exchange: string,\n    private readonly _httpURL: string,\n    private readonly _instruments: string[],\n    private readonly _getURLPath: (symbol: string) => string\n  ) {\n    super(exchange, 4)\n  }\n\n  protected async poolDataToStream(outputStream: Writable) {\n    for (const instruments of batch(this._instruments, 10)) {\n      await Promise.allSettled(\n        instruments.map(async (instrument) => {\n          if (outputStream.destroyed) {\n            return\n          }\n          const url = `${this._httpURL}/${this._getURLPath(instrument)}`\n          const { data: body } = await getJSON<any>(url, { timeout: 10000 })\n\n          if (body.status !== 'ok') {\n            throw new Error(`open interest response error:${JSON.stringify(body)}, url:${url}`)\n          }\n\n          const openInterestMessage = {\n            ch: `market.${instrument}.open_interest`,\n            generated: true,\n            data: body.data,\n            ts: body.ts\n          }\n\n          if (outputStream.writable) {\n            outputStream.write(openInterestMessage)\n          }\n        })\n      )\n    }\n  }\n}\n\nclass HuobiOptionsMarketIndexClient extends PoolingClientBase {\n  constructor(exchange: string, private readonly _httpURL: string, private readonly _instruments: string[]) {\n    super(exchange, 4)\n  }\n\n  protected async poolDataToStream(outputStream: Writable) {\n    for (const instruments of batch(this._instruments, 10)) {\n      await Promise.all(\n        instruments.map(async (instrument) => {\n          if (outputStream.destroyed) {\n            return\n          }\n          const url = `${this._httpURL}/option_market_index?contract_code=${instrument}`\n          const { data: body } = await getJSON<any>(url, { timeout: 10000 })\n\n          if (body.status !== 'ok') {\n            throw new Error(`open interest response error:${JSON.stringify(body)}, url:${url}`)\n          }\n\n          const marketIndexMessage = {\n            ch: `market.${instrument}.option_market_index`,\n            generated: true,\n            data: body.data[0],\n            ts: body.ts\n          }\n\n          if (outputStream.writable) {\n            outputStream.write(marketIndexMessage)\n          }\n        })\n      )\n    }\n  }\n}\n\nclass HuobiOptionsIndexClient extends PoolingClientBase {\n  constructor(exchange: string, private readonly _httpURL: string, private readonly _instruments: string[]) {\n    super(exchange, 4)\n  }\n\n  protected async poolDataToStream(outputStream: Writable) {\n    for (const instruments of batch(this._instruments, 10)) {\n      await Promise.allSettled(\n        instruments.map(async (instrument) => {\n          if (outputStream.destroyed) {\n            return\n          }\n          const url = `${this._httpURL}/option_index?symbol=${instrument}`\n          const { data: body } = await getJSON<any>(url, { timeout: 10000 })\n\n          if (body.status !== 'ok') {\n            throw new Error(`open interest response error:${JSON.stringify(body)}, url:${url}`)\n          }\n\n          const optionIndexMessage = {\n            ch: `market.${instrument}.option_index`,\n            generated: true,\n            data: body.data[0],\n            ts: body.ts\n          }\n\n          if (outputStream.writable) {\n            outputStream.write(optionIndexMessage)\n          }\n        })\n      )\n    }\n  }\n}\n\nexport class HuobiRealTimeFeed extends HuobiRealTimeFeedBase {\n  protected wssURL = 'wss://api-aws.huobi.pro/ws'\n  protected httpURL = 'https://api.huobi.pro/v1'\n\n  protected suffixes = {\n    trade: '.detail',\n    depth: '.step0',\n    mbp: '.400'\n  }\n}\n\nexport class HuobiDMRealTimeFeed extends HuobiRealTimeFeedBase {\n  protected wssURL = 'wss://api.hbdm.com/ws'\n  protected httpURL = 'https://api.hbdm.com/api/v1'\n\n  protected suffixes = {\n    trade: '.detail',\n    depth: '.size_150.high_freq',\n    basis: '.1min.close'\n  }\n\n  private _contractTypeMap: { [key: string]: string } = {\n    CW: 'this_week',\n    NW: 'next_week',\n    CQ: 'quarter',\n    NQ: 'next_quarter'\n  }\n\n  protected getOpenInterestURLPath(symbol: string) {\n    const split = symbol.split('_')\n    const index = split[0]\n    const contractType = this._contractTypeMap[split[1]]\n\n    return `contract_open_interest?symbol=${index}&contract_type=${contractType}`\n  }\n}\n\nexport class HuobiDMSwapRealTimeFeed extends HuobiRealTimeFeedBase {\n  protected wssURL = 'wss://api.hbdm.com/swap-ws'\n  protected httpURL = 'https://api.hbdm.com/swap-api/v1'\n\n  protected suffixes = {\n    trade: '.detail',\n    depth: '.size_150.high_freq',\n    basis: '.1min.close'\n  }\n\n  protected getOpenInterestURLPath(symbol: string) {\n    return `swap_open_interest?contract_code=${symbol}`\n  }\n}\n\nexport class HuobiDMLinearSwapRealTimeFeed extends HuobiRealTimeFeedBase {\n  protected wssURL = 'wss://api.hbdm.com/linear-swap-ws'\n  protected httpURL = 'https://api.hbdm.com/linear-swap-api/v1'\n\n  protected suffixes = {\n    trade: '.detail',\n    depth: '.size_150.high_freq',\n    basis: '.1min.close'\n  }\n\n  protected getOpenInterestURLPath(symbol: string) {\n    return `swap_open_interest?contract_code=${symbol}`\n  }\n}\n\nexport class HuobiDMOptionsRealTimeFeed extends HuobiRealTimeFeedBase {\n  protected wssURL = 'wss://api.hbdm.com/option-ws'\n  protected httpURL = 'https://api.hbdm.com/option-api/v1'\n\n  protected suffixes = {\n    trade: '.detail',\n    depth: '.size_150.high_freq',\n    basis: '.1min.close'\n  }\n\n  protected getOpenInterestURLPath(symbol: string) {\n    return `option_open_interest?contract_code=${symbol}`\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/hyperliquid.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class HyperliquidRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://api.hyperliquid.xyz/ws'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    return filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('HyperliquidRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          return {\n            method: 'subscribe',\n            subscription: {\n              coin: symbol,\n              type: filter.channel\n            }\n          }\n        })\n      })\n      .flatMap((f) => f)\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.channel === 'error'\n  }\n\n  protected messageIsHeartbeat(message: any): boolean {\n    return message.channel === 'pong'\n  }\n\n  protected sendCustomPing = () => {\n    this.send({ method: 'ping' })\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/index.ts",
    "content": "import { Exchange, Filter } from '../types.ts'\nimport {\n  BinanceFuturesRealTimeFeed,\n  BinanceJerseyRealTimeFeed,\n  BinanceRealTimeFeed,\n  BinanceUSRealTimeFeed,\n  BinanceDeliveryRealTimeFeed\n} from './binance.ts'\nimport { BinanceDexRealTimeFeed } from './binancedex.ts'\nimport { BitfinexRealTimeFeed } from './bitfinex.ts'\nimport { BitflyerRealTimeFeed } from './bitflyer.ts'\nimport { BitmexRealTimeFeed } from './bitmex.ts'\nimport { BitstampRealTimeFeed } from './bitstamp.ts'\nimport { BybitOptionsRealTimeDataFeed, BybitRealTimeDataFeed, BybitSpotRealTimeDataFeed } from './bybit.ts'\nimport { CoinbaseRealTimeFeed } from './coinbase.ts'\nimport { CryptofacilitiesRealTimeFeed } from './cryptofacilities.ts'\nimport { DeribitRealTimeDataFeed } from './deribit.ts'\nimport { FtxRealTimeFeed, FtxUSRealTimeFeed } from './ftx.ts'\nimport { GeminiRealTimeFeed } from './gemini.ts'\nimport { HitBtcRealTimeFeed } from './hitbtc.ts'\nimport {\n  HuobiDMRealTimeFeed,\n  HuobiRealTimeFeed,\n  HuobiDMSwapRealTimeFeed,\n  HuobiDMLinearSwapRealTimeFeed,\n  HuobiDMOptionsRealTimeFeed\n} from './huobi.ts'\nimport { KrakenRealTimeFeed } from './kraken.ts'\nimport { OKCoinRealTimeFeed, OkexOptionsRealTimeFeed, OkexRealTimeFeed } from './okex.ts'\nimport { RealTimeFeed } from './realtimefeed.ts'\nimport { PhemexRealTimeFeed } from './phemex.ts'\nimport { DeltaRealTimeFeed } from './delta.ts'\nimport { GateIORealTimeFeed } from './gateio.ts'\nimport { GateIOFuturesRealTimeFeed } from './gateiofutures.ts'\nimport { PoloniexRealTimeFeed } from './poloniex.ts'\nimport { CoinflexRealTimeFeed } from './coinflex.ts'\nimport { UpbitRealTimeFeed } from './upbit.ts'\nimport { AscendexRealTimeFeed } from './ascendex.ts'\nimport { DydxRealTimeFeed } from './dydx.ts'\nimport { SerumRealTimeFeed } from './serum.ts'\nimport { StarAtlasRealTimeFeed } from './staratlas.ts'\nimport { MangoRealTimeFeed } from './mango.ts'\nimport { CryptoComRealTimeFeed } from './cryptocom.ts'\nimport { KucoinRealTimeFeed } from './kucoin.ts'\nimport { BitnomialRealTimeFeed } from './bitnomial.ts'\nimport { WooxRealTimeFeed } from './woox.ts'\nimport { BlockchainComRealTimeFeed } from './blockchaincom.ts'\nimport { BinanceEuropeanOptionsRealTimeFeed } from './binanceeuropeanoptions.ts'\nimport { OkexSpreadsRealTimeFeed } from './okexspreads.ts'\nimport { KucoinFuturesRealTimeFeed } from './kucoinfutures.ts'\nimport { DydxV4RealTimeFeed } from './dydx_v4.ts'\nimport { BitgetFuturesRealTimeFeed, BitgetRealTimeFeed } from './bitget.ts'\nimport { CoinbaseInternationalRealTimeFeed } from './coinbaseinternational.ts'\nimport { HyperliquidRealTimeFeed } from './hyperliquid.ts'\n\nexport * from './realtimefeed.ts'\n\nconst realTimeFeedsMap: {\n  [key in Exchange]?: RealTimeFeed\n} = {\n  bitmex: BitmexRealTimeFeed,\n  binance: BinanceRealTimeFeed,\n  'binance-jersey': BinanceJerseyRealTimeFeed,\n  'binance-us': BinanceUSRealTimeFeed,\n  'binance-dex': BinanceDexRealTimeFeed,\n  'binance-futures': BinanceFuturesRealTimeFeed,\n  'binance-delivery': BinanceDeliveryRealTimeFeed,\n  bitfinex: BitfinexRealTimeFeed,\n  'bitfinex-derivatives': BitfinexRealTimeFeed,\n  bitflyer: BitflyerRealTimeFeed,\n  bitstamp: BitstampRealTimeFeed,\n  coinbase: CoinbaseRealTimeFeed,\n  cryptofacilities: CryptofacilitiesRealTimeFeed,\n  deribit: DeribitRealTimeDataFeed,\n  ftx: FtxRealTimeFeed,\n  'ftx-us': FtxUSRealTimeFeed,\n  gemini: GeminiRealTimeFeed,\n  kraken: KrakenRealTimeFeed,\n  okex: OkexRealTimeFeed,\n  'okex-futures': OkexRealTimeFeed,\n  'okex-swap': OkexRealTimeFeed,\n  'okex-options': OkexOptionsRealTimeFeed,\n  'huobi-dm': HuobiDMRealTimeFeed,\n  'huobi-dm-swap': HuobiDMSwapRealTimeFeed,\n  'huobi-dm-linear-swap': HuobiDMLinearSwapRealTimeFeed,\n  huobi: HuobiRealTimeFeed,\n  bybit: BybitRealTimeDataFeed,\n  okcoin: OKCoinRealTimeFeed,\n  hitbtc: HitBtcRealTimeFeed,\n  phemex: PhemexRealTimeFeed,\n  delta: DeltaRealTimeFeed,\n  'gate-io': GateIORealTimeFeed,\n  'gate-io-futures': GateIOFuturesRealTimeFeed,\n  poloniex: PoloniexRealTimeFeed,\n  coinflex: CoinflexRealTimeFeed,\n  upbit: UpbitRealTimeFeed,\n  ascendex: AscendexRealTimeFeed,\n  dydx: DydxRealTimeFeed,\n  serum: SerumRealTimeFeed,\n  'star-atlas': StarAtlasRealTimeFeed,\n  'huobi-dm-options': HuobiDMOptionsRealTimeFeed,\n  mango: MangoRealTimeFeed,\n  'bybit-spot': BybitSpotRealTimeDataFeed,\n  'bybit-options': BybitOptionsRealTimeDataFeed,\n  'crypto-com': CryptoComRealTimeFeed,\n  kucoin: KucoinRealTimeFeed,\n  bitnomial: BitnomialRealTimeFeed,\n  'woo-x': WooxRealTimeFeed,\n  'blockchain-com': BlockchainComRealTimeFeed,\n  'binance-european-options': BinanceEuropeanOptionsRealTimeFeed,\n  'okex-spreads': OkexSpreadsRealTimeFeed,\n  'kucoin-futures': KucoinFuturesRealTimeFeed,\n  'dydx-v4': DydxV4RealTimeFeed,\n  bitget: BitgetRealTimeFeed,\n  'bitget-futures': BitgetFuturesRealTimeFeed,\n  'coinbase-international': CoinbaseInternationalRealTimeFeed,\n  hyperliquid: HyperliquidRealTimeFeed\n}\n\nexport function getRealTimeFeedFactory(exchange: Exchange): RealTimeFeed {\n  if (realTimeFeedsMap[exchange]) {\n    return realTimeFeedsMap[exchange]!\n  }\n\n  throw new Error(`not supported exchange ${exchange}`)\n}\n\nexport function createRealTimeFeed(\n  exchange: Exchange,\n  filters: Filter<string>[],\n  timeoutIntervalMS: number | undefined,\n  onError?: (error: Error) => void\n) {\n  const RealTimeFeedFactory = getRealTimeFeedFactory(exchange)\n\n  return new RealTimeFeedFactory(exchange, filters, timeoutIntervalMS, onError)\n}\n\nexport function setRealTimeFeedFactory(exchange: Exchange, realTimeFeed: RealTimeFeed) {\n  realTimeFeedsMap[exchange] = realTimeFeed\n}\n"
  },
  {
    "path": "src/realtimefeeds/kraken.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class KrakenRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://ws.kraken.com'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    return filters.map((filter) => {\n      if (!filter.symbols || filter.symbols.length === 0) {\n        throw new Error('KrakenRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n      }\n\n      let depth = undefined\n\n      if (filter.channel === 'book') {\n        depth = 1000\n      }\n\n      return {\n        event: 'subscribe',\n        pair: filter.symbols,\n        subscription: {\n          name: filter.channel,\n          depth\n        }\n      }\n    })\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.errorMessage !== undefined\n  }\n\n  protected messageIsHeartbeat(message: any): boolean {\n    return message.event === 'heartbeat'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/kucoin.ts",
    "content": "import { getRandomString, getJSON, postJSON, wait } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class KucoinRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = ''\n  private _httpURL = 'https://api.kucoin.com/api'\n\n  protected async getWebSocketUrl() {\n    const { data: body } = await postJSON<any>(`${this._httpURL}/v1/bullet-public`, { retry: 3, timeout: 10000 })\n\n    return `${body.data.instanceServers[0].endpoint}?token=${body.data.token}&connectId=${getRandomString()}`\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    return filters\n      .filter((f) => f.channel !== 'market/level2Snapshot')\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('KucoinRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return {\n          id: getRandomString(),\n          type: 'subscribe',\n          topic: `/${filter.channel}:${filter.symbols.join(',')}`,\n          privateChannel: false,\n          response: true\n        }\n      })\n  }\n\n  protected async provideManualSnapshots(filters: Filter<string>[], shouldCancel: () => boolean) {\n    const depthSnapshotFilter = filters.find((f) => f.channel === 'market/level2Snapshot')\n    if (!depthSnapshotFilter) {\n      return\n    }\n\n    this.debug('requesting manual snapshots for: %s', depthSnapshotFilter.symbols)\n    for (let symbol of depthSnapshotFilter.symbols!) {\n      if (shouldCancel()) {\n        return\n      }\n\n      const { data } = await getJSON<any>(`${this._httpURL}/v1/market/orderbook/level2_100?symbol=${symbol}`, {\n        timeout: 10000\n      })\n\n      const snapshot = {\n        type: 'message',\n        generated: true,\n        topic: `/market/level2Snapshot:${symbol}`,\n        subject: 'trade.l2Snapshot',\n        ...data\n      }\n\n      this.manualSnapshotsBuffer.push(snapshot)\n    }\n\n    this.debug('requested manual snapshots successfully for: %s ', depthSnapshotFilter.symbols)\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.type === 'error'\n  }\n\n  protected sendCustomPing = () => {\n    this.send({\n      id: new Date().valueOf().toString(),\n      type: 'ping'\n    })\n  }\n\n  protected messageIsHeartbeat(msg: any) {\n    return msg.type === 'pong'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/kucoinfutures.ts",
    "content": "import { Writable } from 'stream'\nimport { getJSON, getRandomString, postJSON } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { MultiConnectionRealTimeFeedBase, PoolingClientBase, RealTimeFeedBase } from './realtimefeed.ts'\n\nconst kucoinHttpOptions = {\n  timeout: 10 * 1000,\n  retry: {\n    limit: 10,\n    statusCodes: [418, 429, 500, 403],\n    maxRetryAfter: 120 * 1000\n  }\n}\n\nexport class KucoinFuturesRealTimeFeed extends MultiConnectionRealTimeFeedBase {\n  private _httpURL = 'https://api-futures.kucoin.com/api'\n\n  protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {\n    const wsFilters = filters.filter((f) => f.channel !== 'contract/details')\n\n    if (wsFilters.length > 0) {\n      yield new KucoinFuturesSingleConnectionRealTimeFeed(exchange, wsFilters, this._httpURL, timeoutIntervalMS, onError)\n    }\n\n    const contractDetailsFilters = filters.filter((f) => f.channel === 'contract/details')\n    if (contractDetailsFilters.length > 0) {\n      yield new KucoinFuturesContractDetailsClient(exchange, this._httpURL)\n    }\n  }\n}\n\nexport class KucoinFuturesSingleConnectionRealTimeFeed extends RealTimeFeedBase {\n  constructor(\n    exchange: string,\n    filters: Filter<string>[],\n    private readonly _httpURL: string,\n    timeoutIntervalMS: number | undefined,\n    onError?: (error: Error) => void\n  ) {\n    super(exchange, filters, timeoutIntervalMS, onError)\n  }\n  protected wssURL = ''\n\n  protected async getWebSocketUrl() {\n    const { data: body } = await postJSON<any>(`${this._httpURL}/v1/bullet-public`, { retry: 3, timeout: 10000 })\n\n    return `${body.data.instanceServers[0].endpoint}?token=${body.data.token}&connectId=${getRandomString()}`\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    return filters\n      .filter((f) => f.channel !== 'contractMarket/level2Snapshot')\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('KucoinFuturesRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return {\n          id: getRandomString(),\n          type: 'subscribe',\n          topic: `/${filter.channel}:${filter.symbols.join(',')}`,\n          response: true\n        }\n      })\n  }\n\n  protected async provideManualSnapshots(filters: Filter<string>[], shouldCancel: () => boolean) {\n    const depthSnapshotFilter = filters.find((f) => f.channel === 'contractMarket/level2Snapshot')\n    if (!depthSnapshotFilter) {\n      return\n    }\n\n    this.debug('requesting manual snapshots for: %s', depthSnapshotFilter.symbols)\n    for (let symbol of depthSnapshotFilter.symbols!) {\n      if (shouldCancel()) {\n        return\n      }\n\n      const { data } = await getJSON<any>(`${this._httpURL}/v1/level2/snapshot?symbol=${symbol}`, kucoinHttpOptions)\n\n      const snapshot = {\n        type: 'message',\n        generated: true,\n        topic: `/contractMarket/level2Snapshot:${symbol}`,\n        subject: 'level2Snapshot',\n        ...data\n      }\n\n      this.manualSnapshotsBuffer.push(snapshot)\n    }\n\n    this.debug('requested manual snapshots successfully for: %s ', depthSnapshotFilter.symbols)\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.type === 'error'\n  }\n\n  protected sendCustomPing = () => {\n    this.send({\n      id: new Date().valueOf().toString(),\n      type: 'ping'\n    })\n  }\n\n  protected messageIsHeartbeat(msg: any) {\n    return msg.type === 'pong'\n  }\n}\n\nclass KucoinFuturesContractDetailsClient extends PoolingClientBase {\n  constructor(exchange: string, private readonly _httpURL: string) {\n    super(exchange, 6)\n  }\n\n  protected async poolDataToStream(outputStream: Writable) {\n    const { data: body } = await getJSON<any>(`${this._httpURL}/v1/contracts/active`, kucoinHttpOptions)\n\n    for (const instrument of body.data) {\n      const openInterestMessage = {\n        topic: `/contract/details:${instrument.symbol}`,\n        type: 'message',\n        subject: 'contractDetails',\n        generated: true,\n        data: instrument\n      }\n\n      if (outputStream.writable) {\n        outputStream.write(openInterestMessage)\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/mango.ts",
    "content": "import { SerumRealTimeFeed } from './serum.ts'\n\nexport class MangoRealTimeFeed extends SerumRealTimeFeed {\n  protected wssURL = 'wss://api.mango-bowl.com/v1/ws'\n}\n"
  },
  {
    "path": "src/realtimefeeds/okex.ts",
    "content": "import crypto from 'crypto'\nimport { wait } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { MultiConnectionRealTimeFeedBase, RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class OkexRealTimeFeed extends MultiConnectionRealTimeFeedBase {\n  protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {\n    const nonBusinessFilters = filters.filter((f) => f.channel !== 'trades-all')\n\n    if (nonBusinessFilters.length > 0) {\n      yield new OkexSingleRealTimeFeed('wss://ws.okx.com:8443/ws/v5/public', exchange, nonBusinessFilters, timeoutIntervalMS, onError)\n    }\n\n    const businessFilters = filters.filter((f) => f.channel === 'trades-all')\n\n    if (businessFilters.length > 0) {\n      yield new OkexSingleRealTimeFeed('wss://ws.okx.com:8443/ws/v5/business', exchange, businessFilters, timeoutIntervalMS, onError)\n    }\n  }\n}\n\nclass OkexSingleRealTimeFeed extends RealTimeFeedBase {\n  constructor(\n    protected wssURL: string,\n    exchange: string,\n    filters: Filter<string>[],\n    timeoutIntervalMS: number | undefined,\n    onError?: (error: Error) => void\n  ) {\n    super(exchange, filters, timeoutIntervalMS, onError)\n  }\n\n  private _hasCredentials = process.env.OKX_API_KEY !== undefined\n\n  private secondsSinceEpoch() {\n    return Math.floor(Date.now() / 1000)\n  }\n\n  protected async onConnected() {\n    if (this._hasCredentials) {\n      const timestamp = this.secondsSinceEpoch().toString()\n      const sign = crypto.createHmac('sha256', process.env.OKX_API_SECRET_KEY!).update(`${timestamp}GET/users/self/verify`).digest('base64')\n\n      this.send({\n        op: 'login',\n        args: [\n          {\n            apiKey: process.env.OKX_API_KEY,\n            passphrase: process.env.OKX_API_PASSPHRASE,\n            timestamp,\n            sign\n          }\n        ]\n      })\n\n      await wait(50)\n    }\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const args = filters\n      .filter((f) => f.channel != 'liquidations')\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error(`${this._exchange} RealTimeFeed requires explicitly specified symbols when subscribing to live feed`)\n        }\n\n        return filter.symbols.map((symbol) => {\n          if (filter.channel === 'liquidation-orders') {\n            return {\n              channel: filter.channel,\n              instType: symbol.endsWith('SWAP') ? 'SWAP' : 'FUTURES'\n            }\n          }\n          return {\n            channel: filter.channel,\n            instId: symbol\n          }\n        })\n      })\n      .flatMap((s) => s)\n\n    return [\n      {\n        op: 'subscribe',\n        args: [...new Set(args)]\n      }\n    ]\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.event === 'error'\n  }\n\n  protected isIgnoredError(message: any) {\n    if (message.msg.includes('channel') && message.msg.includes(`doesn't exist`)) {\n      return true\n    }\n\n    return false\n  }\n}\n\nexport class OKCoinRealTimeFeed extends OkexSingleRealTimeFeed {\n  constructor(exchange: string, filters: Filter<string>[], timeoutIntervalMS: number | undefined, onError?: (error: Error) => void) {\n    super('wss://real.okcoin.com:8443/ws/v5/public', exchange, filters, timeoutIntervalMS, onError)\n  }\n}\n\nexport class OkexOptionsRealTimeFeed extends MultiConnectionRealTimeFeedBase {\n  protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {\n    const nonBusinessFilters = filters.filter((f) => f.channel !== 'trades-all')\n\n    if (nonBusinessFilters.length > 0) {\n      yield new OkexOptionsSingleRealTimeFeed(\n        'wss://ws.okx.com:8443/ws/v5/public',\n        exchange,\n        nonBusinessFilters,\n        timeoutIntervalMS,\n        onError\n      )\n    }\n\n    const businessFilters = filters.filter((f) => f.channel === 'trades-all')\n\n    if (businessFilters.length > 0) {\n      yield new OkexOptionsSingleRealTimeFeed('wss://ws.okx.com:8443/ws/v5/business', exchange, businessFilters, timeoutIntervalMS, onError)\n    }\n  }\n}\n\nclass OkexOptionsSingleRealTimeFeed extends OkexSingleRealTimeFeed {\n  constructor(\n    protected wssURL: string,\n    exchange: string,\n    filters: Filter<string>[],\n    timeoutIntervalMS: number | undefined,\n    onError?: (error: Error) => void\n  ) {\n    super(wssURL, exchange, filters, timeoutIntervalMS, onError)\n  }\n\n  private _defaultIndexes = ['BTC-USD', 'ETH-USD']\n\n  private _channelRequiresIndexNotSymbol(channel: string) {\n    if (channel === 'index-tickers' || channel === 'opt-summary') {\n      return true\n    }\n    return false\n  }\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const args = filters\n      .map((filter) => {\n        let symbols = filter.symbols || []\n        const channelRequiresIndexNotSymbol = this._channelRequiresIndexNotSymbol(filter.channel)\n\n        if (symbols.length === 0 && channelRequiresIndexNotSymbol) {\n          symbols = this._defaultIndexes\n        }\n\n        if (symbols.length === 0) {\n          throw new Error(`${this._exchange} RealTimeFeed requires explicitly specified symbols when subscribing to live feed`)\n        }\n\n        return symbols.map((symbol) => {\n          let finalSymbol = symbol\n          if (channelRequiresIndexNotSymbol) {\n            const symbolParts = symbol.split('-')\n            finalSymbol = `${symbolParts[0]}-${symbolParts[1]}`\n          }\n          return {\n            channel: filter.channel,\n            instId: filter.channel !== 'opt-summary' ? finalSymbol : undefined,\n            instFamily: filter.channel === 'opt-summary' ? finalSymbol : undefined\n          }\n        })\n      })\n      .flatMap((s) => s)\n\n    return [\n      {\n        op: 'subscribe',\n        args: [...new Set(args)]\n      }\n    ]\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/okexspreads.ts",
    "content": "import crypto from 'crypto'\nimport { wait } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class OkexSpreadsRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://ws.okx.com:8443/ws/v5/business'\n\n  private _hasCredentials = process.env.OKX_API_KEY !== undefined\n\n  private secondsSinceEpoch() {\n    return Math.floor(Date.now() / 1000)\n  }\n\n  protected async onConnected() {\n    if (this._hasCredentials) {\n      const timestamp = this.secondsSinceEpoch().toString()\n      const sign = crypto.createHmac('sha256', process.env.OKX_API_SECRET_KEY!).update(`${timestamp}GET/users/self/verify`).digest('base64')\n\n      this.send({\n        op: 'login',\n        args: [\n          {\n            apiKey: process.env.OKX_API_KEY,\n            passphrase: process.env.OKX_API_PASSPHRASE,\n            timestamp,\n            sign\n          }\n        ]\n      })\n\n      await wait(50)\n    }\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const args = filters\n\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error(`${this._exchange} RealTimeFeed requires explicitly specified symbols when subscribing to live feed`)\n        }\n\n        return filter.symbols.map((symbol) => {\n          return {\n            channel: filter.channel,\n            sprdId: symbol\n          }\n        })\n      })\n      .flatMap((s) => s)\n\n    return [\n      {\n        op: 'subscribe',\n        args: [...new Set(args)]\n      }\n    ]\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.event === 'error'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/phemex.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class PhemexRealTimeFeed extends RealTimeFeedBase {\n  protected readonly wssURL = 'wss://ws.phemex.com/'\n  protected readonly throttleSubscribeMS = 100\n\n  protected readonly channelsMap = {\n    book: 'orderbook.subscribe',\n    orderbook_p: 'orderbook_p.subscribe',\n    trades: 'trade.subscribe',\n    trades_p: 'trade_p.subscribe',\n    market24h: 'market24h.subscribe',\n    spot_market24h: 'spot_market24h.subscribe',\n    perp_market24h_pack_p: 'perp_market24h_pack_p.subscribe'\n  } as any\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]) {\n    let id = 0\n    return filters\n\n      .map((filter) => {\n        if (\n          filter.symbols !== undefined &&\n          filter.channel !== 'market24h' &&\n          filter.channel !== 'spot_market24h' &&\n          filter.channel !== 'perp_market24h_pack_p'\n        ) {\n          return filter.symbols.map((symbol) => {\n            return {\n              id: id++,\n              method: this.channelsMap[filter.channel],\n              params: [symbol]\n            }\n          })\n        } else {\n          return [\n            {\n              id: id++,\n              method: this.channelsMap[filter.channel],\n              params: []\n            }\n          ]\n        }\n      })\n      .flatMap((f) => f)\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.error !== undefined && message.error !== null\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/poloniex.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class PoloniexRealTimeFeed extends RealTimeFeedBase {\n  protected readonly wssURL = 'wss://ws.poloniex.com/ws/public'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]) {\n    return filters.flatMap((filter) => {\n      if (!filter.symbols || filter.symbols.length === 0) {\n        throw new Error('PoloniexRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n      }\n\n      return {\n        event: 'subscribe',\n        channel: [filter.channel],\n        symbols: filter.symbols\n      }\n    })\n  }\n\n  protected sendCustomPing = () => {\n    this.send({\n      event: 'ping'\n    })\n  }\n\n  protected messageIsHeartbeat(msg: any) {\n    return msg.event === 'pong'\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.event === 'error'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/realtimefeed.ts",
    "content": "import dbg from 'debug'\nimport WebSocket, { createWebSocketStream } from 'ws'\nimport type { ClientRequestArgs } from 'http'\nimport { PassThrough, Writable } from 'stream'\nimport { once } from 'events'\nimport { httpsProxyAgent, ONE_SEC_IN_MS, optimizeFilters, wait } from '../handy.ts'\nimport { Exchange, Filter } from '../types.ts'\n\nexport type RealTimeFeed = {\n  new (\n    exchange: Exchange,\n    filters: Filter<string>[],\n    timeoutIntervalMS: number | undefined,\n    onError?: (error: Error) => void\n  ): RealTimeFeedIterable\n}\n\nlet connectionCounter = 1\n\nexport type RealTimeFeedIterable = AsyncIterable<any>\n\nexport abstract class RealTimeFeedBase implements RealTimeFeedIterable {\n  [Symbol.asyncIterator]() {\n    return this._stream()\n  }\n\n  protected readonly debug: dbg.Debugger\n  protected abstract readonly wssURL: string\n  protected readonly throttleSubscribeMS: number = 0\n  protected readonly manualSnapshotsBuffer: any[] = []\n  private readonly _filters: Filter<string>[]\n  private _receivedMessagesCount = 0\n  private _ws?: WebSocket\n  private _connectionId = -1\n  private _wsClientOptions: WebSocket.ClientOptions | ClientRequestArgs\n  protected readonly originHeader: string | undefined = undefined\n  protected readonly extraHeaders: Record<string, string> | undefined = undefined\n\n  constructor(\n    protected readonly _exchange: string,\n    filters: Filter<string>[],\n    private readonly _timeoutIntervalMS: number | undefined,\n    private readonly _onError?: (error: Error) => void\n  ) {\n    this._filters = optimizeFilters(filters)\n    this.debug = dbg(`tardis-dev:realtime:${_exchange}`)\n\n    this._wsClientOptions = {\n      headers: {\n        'User-Agent':\n          'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36'\n      },\n      perMessageDeflate: false,\n      handshakeTimeout: 10 * ONE_SEC_IN_MS,\n      skipUTF8Validation: true\n    } as any\n\n    if (httpsProxyAgent !== undefined) {\n      this._wsClientOptions.agent = httpsProxyAgent\n    }\n  }\n\n  protected async getWebSocketUrl() {\n    const wssUrlOverride = process.env[`WSS_URL_${this._exchange.toUpperCase().replace(/-/g, '_')}`]\n    const finalWssUrl = wssUrlOverride !== undefined ? wssUrlOverride : this.wssURL\n\n    return finalWssUrl\n  }\n\n  private async *_stream() {\n    let staleConnectionTimerId\n    let pingTimerId\n    let retries = 0\n\n    while (true) {\n      try {\n        this._connectionId = connectionCounter++\n        const subscribeMessages = this.mapToSubscribeMessages(this._filters)\n        const finalWssUrl = await this.getWebSocketUrl()\n\n        this.debug('(connection id: %d) estabilishing connection to %s', this._connectionId, finalWssUrl)\n\n        this.debug(\n          '(connection id: %d) provided filters: %o mapped to subscribe messages: %j',\n          this._connectionId,\n          this._filters,\n          subscribeMessages\n        )\n\n        if (this.originHeader !== undefined) {\n          ;(this._wsClientOptions as any).headers['origin'] = this.originHeader\n        }\n\n        if (this.extraHeaders !== undefined) {\n          Object.assign((this._wsClientOptions as any).headers, this.extraHeaders)\n        }\n\n        this._ws = new WebSocket(finalWssUrl, this._wsClientOptions)\n        this._ws.onopen = this._onConnectionEstabilished\n        this._ws.onclose = this._onConnectionClosed\n\n        staleConnectionTimerId = this._monitorConnectionIfStale()\n        pingTimerId = this._sendPeriodicPing()\n\n        const realtimeMessagesStream = createWebSocketStream(this._ws, {\n          readableObjectMode: true, // othwerwise we may end up with multiple messages returned by stream in single iteration\n          readableHighWaterMark: 8096 // since we're in object mode, let's increase hwm a little from default of 16 messages buffered\n        }) as unknown as AsyncIterableIterator<Buffer>\n\n        for await (let message of realtimeMessagesStream) {\n          if (this.decompress !== undefined) {\n            message = this.decompress(message)\n          }\n\n          // hack to handle huobi long numeric id for trades\n          if (this._exchange.startsWith('huobi-') && message.includes('.trade.detail')) {\n            message = message.toString().replace(/\"id\":([0-9]+),/g, '\"id\":\"$1\",') as any\n          }\n\n          const messageDeserialized = JSON.parse(message as any)\n\n          if (this.messageIsError(messageDeserialized)) {\n            if (this.isIgnoredError(messageDeserialized)) {\n              if (this._onError !== undefined) {\n                this.debug(`Received ignored error message: ${message.toString()}`)\n              }\n            } else {\n              throw new Error(`Received error message: ${message.toString()}`)\n            }\n          }\n\n          // exclude heaartbeat messages from  received messages counter\n          // connection could still be stale even if only heartbeats are provided without any data\n          if (this.messageIsHeartbeat(messageDeserialized) === false) {\n            this._receivedMessagesCount++\n          }\n\n          this.onMessage(messageDeserialized)\n\n          yield messageDeserialized\n\n          if (retries > 0) {\n            // reset retries counter as we've received correct message from the connection\n            retries = 0\n          }\n\n          if (this.manualSnapshotsBuffer.length > 0) {\n            for (let snapshot of this.manualSnapshotsBuffer) {\n              yield snapshot\n            }\n\n            this.manualSnapshotsBuffer.length = 0\n          }\n        }\n\n        // clear monitoring connection timer and notify about disconnect\n        if (staleConnectionTimerId !== undefined) {\n          clearInterval(staleConnectionTimerId)\n        }\n        yield { __disconnect__: true }\n      } catch (error: any) {\n        if (this._onError !== undefined) {\n          this._onError(error)\n        }\n\n        retries++\n\n        const MAX_DELAY = 32 * 1000\n        const isRateLimited = error.message.includes('429')\n\n        let delay\n        if (isRateLimited) {\n          delay = (MAX_DELAY / 2) * retries\n        } else {\n          delay = Math.pow(2, retries - 1) * 1000\n\n          if (delay > MAX_DELAY) {\n            delay = MAX_DELAY\n          }\n        }\n\n        this.debug(\n          '(connection id: %d) %s real-time feed connection error, retries count: %d, next retry delay: %dms, rate limited: %s error message: %o',\n          this._connectionId,\n          this._exchange,\n          retries,\n          delay,\n          isRateLimited,\n          error\n        )\n\n        // clear monitoring connection timer and notify about disconnect\n        if (staleConnectionTimerId !== undefined) {\n          clearInterval(staleConnectionTimerId)\n        }\n        yield { __disconnect__: true }\n\n        await wait(delay)\n      } finally {\n        // stop timers\n        if (staleConnectionTimerId !== undefined) {\n          clearInterval(staleConnectionTimerId)\n        }\n\n        if (pingTimerId !== undefined) {\n          clearInterval(pingTimerId)\n        }\n      }\n    }\n  }\n\n  protected send(msg: any) {\n    if (this._ws === undefined) {\n      return\n    }\n    if (this._ws.readyState !== WebSocket.OPEN) {\n      return\n    }\n    this._ws.send(JSON.stringify(msg))\n  }\n\n  protected abstract mapToSubscribeMessages(filters: Filter<string>[]): any[]\n\n  protected abstract messageIsError(message: any): boolean\n\n  protected sendCustomPing: (() => void) | undefined = undefined\n\n  protected isIgnoredError(_message: any) {\n    return false\n  }\n\n  protected messageIsHeartbeat(_msg: any) {\n    return false\n  }\n\n  protected async provideManualSnapshots(_filters: Filter<string>[], _shouldCancel: () => boolean) {}\n\n  protected onMessage(_msg: any) {}\n\n  protected async onConnected() {}\n\n  protected decompress?: (msg: any) => Buffer\n\n  private _monitorConnectionIfStale() {\n    if (this._timeoutIntervalMS === undefined || this._timeoutIntervalMS === 0) {\n      return\n    }\n\n    // set up timer that checks against open, but stale connections that do not return any data\n    return setInterval(() => {\n      if (this._ws === undefined) {\n        return\n      }\n\n      if (this._receivedMessagesCount === 0) {\n        this.debug(\n          '(connection id: %d) did not received any messages within %d ms timeout, terminating connection...',\n          this._connectionId,\n          this._timeoutIntervalMS\n        )\n        this._ws!.terminate()\n      }\n      this._receivedMessagesCount = 0\n    }, this._timeoutIntervalMS)\n  }\n\n  private _sendPeriodicPing() {\n    return setInterval(() => {\n      if (this._ws === undefined || this._ws.readyState !== WebSocket.OPEN) {\n        return\n      }\n\n      if (this.sendCustomPing !== undefined) {\n        this.sendCustomPing()\n      } else {\n        this._ws.ping()\n      }\n    }, 5 * ONE_SEC_IN_MS)\n  }\n\n  private _onConnectionEstabilished = async () => {\n    try {\n      const subscribeMessages = this.mapToSubscribeMessages(this._filters)\n\n      let symbolsCount = this._filters.reduce((prev, curr) => {\n        if (curr.symbols !== undefined) {\n          for (const symbol of curr.symbols) {\n            prev.add(symbol)\n          }\n        }\n        return prev\n      }, new Set<string>()).size\n\n      await this.onConnected()\n\n      for (const message of subscribeMessages) {\n        this.send(message)\n        if (this.throttleSubscribeMS > 0) {\n          await wait(this.throttleSubscribeMS)\n        }\n      }\n\n      this.debug('(connection id: %d) established connection', this._connectionId)\n\n      //wait before fetching snapshots until we're sure we've got proper connection estabilished (received some messages)\n      while (this._receivedMessagesCount < symbolsCount * 2) {\n        await wait(100)\n      }\n      // wait a second just in case before starting fetching the snapshots\n      await wait(1 * ONE_SEC_IN_MS)\n\n      if (this._ws!.readyState === WebSocket.CLOSED) {\n        return\n      }\n\n      await this.provideManualSnapshots(this._filters, () => this._ws!.readyState === WebSocket.CLOSED)\n    } catch (e) {\n      this.debug('(connection id: %d) providing manual snapshots error: %o', this._connectionId, e)\n      this._ws!.emit('error', e)\n    }\n  }\n\n  private _onConnectionClosed = (event: WebSocket.CloseEvent) => {\n    this.debug('(connection id: %d) connection closed %s', this._connectionId, event.reason)\n  }\n}\n\nexport abstract class MultiConnectionRealTimeFeedBase implements RealTimeFeedIterable {\n  constructor(\n    private readonly _exchange: string,\n    private readonly _filters: Filter<string>[],\n    private readonly _timeoutIntervalMS: number | undefined,\n    private readonly _onError?: (error: Error) => void\n  ) {}\n\n  [Symbol.asyncIterator]() {\n    return this._stream()\n  }\n\n  private async *_stream() {\n    const combinedStream = new PassThrough({\n      objectMode: true,\n      highWaterMark: 8096\n    })\n\n    const realTimeFeeds = this._getRealTimeFeeds(this._exchange, this._filters, this._timeoutIntervalMS, this._onError)\n\n    for (const realTimeFeed of realTimeFeeds) {\n      // iterate over separate real-time feeds and write their messages into combined stream\n      ;(async function writeMessagesToCombinedStream() {\n        for await (const message of realTimeFeed) {\n          if (combinedStream.destroyed) {\n            return\n          }\n\n          if (!combinedStream.write(message))\n            // Handle backpressure on write\n            await once(combinedStream, 'drain')\n        }\n      })()\n    }\n\n    for await (const message of combinedStream) {\n      yield message\n    }\n  }\n\n  protected abstract _getRealTimeFeeds(\n    exchange: string,\n    filters: Filter<string>[],\n    timeoutIntervalMS?: number,\n    onError?: (error: Error) => void\n  ): IterableIterator<RealTimeFeedIterable>\n}\n\nexport abstract class PoolingClientBase implements RealTimeFeedIterable {\n  protected readonly debug: dbg.Debugger\n  private _tid: NodeJS.Timeout | undefined = undefined\n\n  constructor(exchange: string, private readonly _poolingIntervalSeconds: number, protected readonly onError?: (error: Error) => void) {\n    this.debug = dbg(`tardis-dev:pooling-client:${exchange}`)\n  }\n\n  [Symbol.asyncIterator]() {\n    return this._stream()\n  }\n\n  protected abstract poolDataToStream(outputStream: Writable): Promise<void>\n\n  protected getPoolingDelayMS() {\n    return this._poolingIntervalSeconds * ONE_SEC_IN_MS\n  }\n\n  private async _startPooling(outputStream: Writable) {\n    const pool = async () => {\n      try {\n        await this.poolDataToStream(outputStream)\n      } catch (e) {\n        const error = e instanceof Error ? e : new Error(String(e))\n\n        this.debug('pooling error %o', error)\n\n        if (this.onError !== undefined) {\n          this.onError(error)\n        }\n      }\n    }\n\n    const poolAndSchedule = () => {\n      pool().then(() => {\n        if (!outputStream.destroyed) {\n          this._tid = setTimeout(poolAndSchedule, this.getPoolingDelayMS())\n        }\n      })\n    }\n    poolAndSchedule()\n  }\n\n  private async *_stream() {\n    const stream = new PassThrough({\n      objectMode: true,\n      highWaterMark: 1024\n    })\n\n    this._startPooling(stream)\n\n    this.debug('pooling started')\n\n    try {\n      for await (const message of stream) {\n        yield message\n      }\n    } finally {\n      if (this._tid !== undefined) {\n        clearInterval(this._tid)\n      }\n\n      this.debug('pooling finished')\n    }\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/serum.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class SerumRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://api.serum-vial.dev/v1/ws'\n\n  protected channelMappings = {\n    trades: ['recent_trades', 'trade'],\n    level1: ['quote'],\n    level2: ['l2snapshot', 'l2update'],\n    level3: ['l3snapshot', 'open', 'fill', 'change', 'done']\n  }\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const subs = filters\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('SerumRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        const subscribeToL3Channel = filters.filter((f) => this.channelMappings.level3.includes(f.channel)).length > 0\n        const subscribeToL2Channel = this.channelMappings.level2.includes(filter.channel)\n        const subscribeToL1Channel = this.channelMappings.level1.includes(filter.channel)\n\n        let channel\n\n        if (subscribeToL3Channel) {\n          channel = 'level3'\n        } else if (subscribeToL2Channel) {\n          channel = 'level2'\n        } else if (subscribeToL1Channel) {\n          channel = 'level3'\n        } else {\n          channel = 'trades'\n        }\n\n        return {\n          op: 'subscribe',\n          channel,\n          markets: filter.symbols\n        }\n      })\n      .reduce((prev, current) => {\n        const matchingExisting = prev.find((c) => c.channel === current.channel)\n        if (matchingExisting !== undefined) {\n          for (const market of current.markets) {\n            if (matchingExisting.markets.includes(market) === false) {\n              matchingExisting.markets.push(market)\n            }\n          }\n        } else {\n          prev.push(current)\n        }\n\n        return prev\n      }, [] as { channel: string; markets: string[] }[])\n\n    return subs\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.type === 'error'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/staratlas.ts",
    "content": "import { SerumRealTimeFeed } from './serum.ts'\n\nexport class StarAtlasRealTimeFeed extends SerumRealTimeFeed {\n  protected wssURL = 'wss://serum-vial.staratlas.cloud/v1/ws'\n}\n"
  },
  {
    "path": "src/realtimefeeds/upbit.ts",
    "content": "import { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class UpbitRealTimeFeed extends RealTimeFeedBase {\n  protected readonly wssURL = 'wss://api.upbit.com/websocket/v1'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    const subs = filters.map((filter) => {\n      if (!filter.symbols || filter.symbols.length === 0) {\n        throw new Error('UpbitRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n      }\n\n      return {\n        type: filter.channel,\n        codes: filter.symbols,\n        isOnlyRealtime: true\n      }\n    })\n\n    const payload = [\n      [\n        {\n          ticket: new Date().valueOf().toString()\n        },\n        ...subs\n      ]\n    ]\n\n    return payload\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.type === 'error'\n  }\n}\n"
  },
  {
    "path": "src/realtimefeeds/woox.ts",
    "content": "import { wait } from '../handy.ts'\nimport { Filter } from '../types.ts'\nimport { RealTimeFeedBase } from './realtimefeed.ts'\n\nexport class WooxRealTimeFeed extends RealTimeFeedBase {\n  protected wssURL = 'wss://wss.woo.org/ws/stream/OqdphuyCtYWxwzhxyLLjOWNdFP7sQt8RPWzmb5xY'\n\n  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {\n    return filters\n      .filter((filter) => filter.channel !== 'orderbook')\n      .map((filter) => {\n        if (!filter.symbols || filter.symbols.length === 0) {\n          throw new Error('WooxRealTimeFeed requires explicitly specified symbols when subscribing to live feed')\n        }\n\n        return filter.symbols.map((symbol) => {\n          return {\n            id: `${symbol}@${filter.channel}`,\n            topic: `${symbol}@${filter.channel}`,\n            event: 'subscribe'\n          }\n        })\n      })\n      .flatMap((f) => f)\n  }\n\n  protected async provideManualSnapshots(filters: Filter<string>[], shouldCancel: () => boolean) {\n    const orderbookFilter = filters.find((f) => f.channel === 'orderbook')\n    if (!orderbookFilter) {\n      return\n    }\n\n    await wait(200)\n\n    for (let symbol of orderbookFilter.symbols!) {\n      if (shouldCancel()) {\n        return\n      }\n\n      this.send({\n        id: `${symbol}@orderbook`,\n        event: 'request',\n        params: {\n          type: 'orderbook',\n          symbol\n        }\n      })\n\n      await wait(1)\n    }\n\n    this.debug('sent orderbook requests for: %s', orderbookFilter.symbols)\n  }\n\n  protected messageIsError(message: any): boolean {\n    return message.success === false || message.errorMsg !== undefined\n  }\n\n  protected messageIsHeartbeat(message: any): boolean {\n    return message.event === 'ping'\n  }\n\n  protected onMessage(msg: any) {\n    if (msg.event === 'ping') {\n      this.send({\n        event: 'ping'\n      })\n    }\n  }\n}\n"
  },
  {
    "path": "src/replay.ts",
    "content": "import { createReadStream } from 'node:fs'\nimport { rm } from 'node:fs/promises'\nimport { EventEmitter } from 'events'\nimport { Worker } from 'worker_threads'\nimport { constants, createGunzip, createZstdDecompress } from 'zlib'\nimport { BinarySplitStream } from './binarysplit.ts'\nimport { clearCacheSync } from './clearcache.ts'\nimport { EXCHANGES, EXCHANGE_CHANNELS_INFO } from './consts.ts'\nimport { debug } from './debug.ts'\nimport { addDays, getFilters, normalizeMessages, parseAsUTCDate, wait } from './handy.ts'\nimport { MapperFactory, normalizeBookChanges } from './mappers/index.ts'\nimport { getOptions } from './options.ts'\nimport { Disconnect, Exchange, FilterForExchange } from './types.ts'\nimport { WorkerJobPayload, WorkerMessage, WorkerSignal } from './worker.ts'\n\ntype MapperOutput<T> = T extends MapperFactory<any, infer U> ? U : never\ntype ReplayNormalizedMessage<U extends readonly MapperFactory<any, any>[], Z extends boolean> = Z extends true\n  ? MapperOutput<U[number]> | Disconnect\n  : MapperOutput<U[number]>\n\nexport async function* replay<T extends Exchange, U extends boolean = false, Z extends boolean = false>({\n  exchange,\n  from,\n  to,\n  filters,\n  skipDecoding = undefined,\n  withDisconnects = undefined,\n  apiKey = undefined,\n  withMicroseconds = undefined,\n  autoCleanup = undefined,\n  waitWhenDataNotYetAvailable = undefined\n}: ReplayOptions<T, U, Z>): AsyncIterableIterator<\n  Z extends true\n    ? U extends true\n      ? { localTimestamp: Buffer; message: Buffer } | undefined\n      : { localTimestamp: Date; message: any } | undefined\n    : U extends true\n    ? { localTimestamp: Buffer; message: Buffer }\n    : { localTimestamp: Date; message: any }\n> {\n  validateReplayOptions(exchange, from, to, filters)\n\n  const fromDate = parseAsUTCDate(from)\n  const toDate = parseAsUTCDate(to)\n  const cachedSlicePaths = new Map<string, string>()\n  let replayError\n  debug('replay for exchange: %s started - from: %s, to: %s, filters: %o', exchange, fromDate.toISOString(), toDate.toISOString(), filters)\n\n  const options = getOptions()\n\n  // initialize worker thread that will fetch and cache data feed slices and \"report back\" by setting proper key/values in cachedSlicePaths\n  const payload: WorkerJobPayload = {\n    cacheDir: options.cacheDir,\n    endpoint: options.endpoint,\n    apiKey: apiKey || options.apiKey,\n    dataFeedCompression: options.dataFeedCompression,\n    userAgent: options._userAgent,\n    fromDate,\n    toDate,\n    exchange,\n    filters: filters || [],\n    waitWhenDataNotYetAvailable\n  }\n\n  const worker = new ReliableWorker(payload)\n\n  worker.on('message', (message: WorkerMessage) => {\n    cachedSlicePaths.set(message.sliceKey, message.slicePath)\n  })\n\n  worker.on('error', (err) => {\n    debug('worker error %o', err)\n\n    replayError = err\n  })\n\n  try {\n    // date is always formatted to have length of 28 so we can skip looking for first space in line and use it\n    // as hardcoded value\n    const DATE_MESSAGE_SPLIT_INDEX = 28\n\n    // more lenient gzip decompression\n    // see https://github.com/request/request/pull/2492 and https://github.com/node-fetch/node-fetch/pull/239\n\n    const CHUNK_SIZE = 256 * 1024\n    const GZIP_OPTIONS = {\n      chunkSize: CHUNK_SIZE,\n      flush: constants.Z_SYNC_FLUSH,\n      finishFlush: constants.Z_SYNC_FLUSH\n    }\n\n    // helper flag that helps us not yielding two subsequent undefined/disconnect messages\n    let lastMessageWasUndefined = false\n\n    let currentSliceDate = new Date(fromDate)\n    // iterate over every minute in <=from,to> date range\n    // get cached slice paths, read them as file streams, decompress, split by new lines and yield as messages\n    while (currentSliceDate < toDate) {\n      const sliceKey = currentSliceDate.toISOString()\n\n      debug('getting slice: %s, exchange: %s', sliceKey, exchange)\n\n      let cachedSlicePath\n      while (cachedSlicePath === undefined) {\n        cachedSlicePath = cachedSlicePaths.get(sliceKey)\n\n        // if something went wrong(network issue, auth issue, gunzip issue etc)\n        if (replayError !== undefined) {\n          throw replayError\n        }\n\n        if (cachedSlicePath === undefined) {\n          // if response for requested date is not ready yet wait 100ms and try again\n          debug('waiting for slice: %s, exchange: %s', sliceKey, exchange)\n          await wait(100)\n        }\n      }\n\n      // response is a path to file on disk let' read it as stream\n      const isZstdSlice = cachedSlicePath.endsWith('.zst')\n      const linesStream = createReadStream(cachedSlicePath, { highWaterMark: CHUNK_SIZE })\n        // decompress it while preserving the on-disk cache in the negotiated wire format\n        .pipe(isZstdSlice ? createZstdDecompress({ chunkSize: CHUNK_SIZE }) : createGunzip(GZIP_OPTIONS))\n        .on('error', function onDecompressionError(err) {\n          debug('%s decompression error %o', isZstdSlice ? 'zstd' : 'gzip', err)\n          linesStream.destroy(err)\n        })\n        // and split by new line\n        .pipe(new BinarySplitStream())\n        .on('error', function onBinarySplitStreamError(err) {\n          debug('binary split stream error %o', err)\n          linesStream.destroy(err)\n        })\n\n      let linesCount = 0\n\n      for await (const bufferLine of linesStream as unknown as Iterable<Buffer>) {\n        linesCount++\n        if (bufferLine.length > 0) {\n          lastMessageWasUndefined = false\n          // as any due to https://github.com/Microsoft/TypeScript/issues/24929\n          if (skipDecoding === true) {\n            yield {\n              localTimestamp: bufferLine.slice(0, DATE_MESSAGE_SPLIT_INDEX),\n              message: bufferLine.slice(DATE_MESSAGE_SPLIT_INDEX + 1)\n            } as any\n          } else {\n            let messageString = bufferLine.toString('utf8', DATE_MESSAGE_SPLIT_INDEX + 1)\n\n            // hack to handle huobi long numeric id for trades\n            if (exchange.startsWith('huobi-') && messageString.includes('.trade.detail')) {\n              messageString = messageString.replace(/\"id\":([0-9]+),/g, '\"id\":\"$1\",')\n            }\n            // hack to handle upbit long numeric id for trades\n            if (exchange === 'upbit' && messageString.includes('sequential_id')) {\n              messageString = messageString.replace(/\"sequential_id\":([0-9]+),/g, '\"sequential_id\":\"$1\",')\n            }\n\n            const message = JSON.parse(messageString)\n\n            const localTimestamp = new Date(bufferLine.toString('utf8', 0, DATE_MESSAGE_SPLIT_INDEX))\n            if (withMicroseconds) {\n              localTimestamp.μs = parseReplayMicroseconds(bufferLine)\n            }\n\n            yield {\n              // when skipDecoding is not set, decode timestamp to Date and message to object\n              localTimestamp,\n              message\n            } as any\n          }\n          // ignore empty lines unless withDisconnects is set to true\n          // do not yield subsequent undefined messages\n        } else if (withDisconnects === true && lastMessageWasUndefined === false) {\n          lastMessageWasUndefined = true\n          yield undefined as any\n        }\n      }\n\n      debug('processed slice: %s, exchange: %s, count: %d', sliceKey, exchange, linesCount)\n\n      // remove slice key from the map as it's already processed\n      cachedSlicePaths.delete(sliceKey)\n\n      if (autoCleanup) {\n        await cleanupSlice(cachedSlicePath)\n      }\n      // move one minute forward\n      currentSliceDate.setUTCMinutes(currentSliceDate.getUTCMinutes() + 1)\n    }\n\n    debug(\n      'replay for exchange: %s finished - from: %s, to: %s, filters: %o',\n      exchange,\n      fromDate.toISOString(),\n      toDate.toISOString(),\n      filters\n    )\n  } finally {\n    if (autoCleanup) {\n      debug(\n        'replay for exchange %s auto cleanup started - from: %s, to: %s, filters: %o',\n        exchange,\n        fromDate.toISOString(),\n        toDate.toISOString(),\n        filters\n      )\n      let startDate = new Date(fromDate)\n      while (startDate < toDate) {\n        clearCacheSync(exchange, filters, startDate.getUTCFullYear(), startDate.getUTCMonth() + 1, startDate.getUTCDate())\n\n        startDate = addDays(startDate, 1)\n      }\n\n      debug(\n        'replay for exchange %s auto cleanup finished - from: %s, to: %s, filters: %o',\n        exchange,\n        fromDate.toISOString(),\n        toDate.toISOString(),\n        filters\n      )\n    }\n\n    const underlyingWorker = worker.getUnderlyingWorker()\n    if (underlyingWorker !== undefined) {\n      await terminateWorker(underlyingWorker, 500)\n    }\n  }\n}\n\nasync function cleanupSlice(slicePath: string) {\n  try {\n    await rm(slicePath, { force: true })\n  } catch (e) {\n    debug('cleanupSlice error %s %o', slicePath, e)\n  }\n}\n\nfunction parseReplayMicroseconds(bufferLine: Buffer) {\n  return (bufferLine[23] - 48) * 100 + (bufferLine[24] - 48) * 10 + (bufferLine[25] - 48)\n}\n\n// gracefully terminate worker\nasync function terminateWorker(worker: Worker, waitTimeout: number) {\n  let cancelWait = () => {}\n  const maxWaitGuard = new Promise((resolve) => {\n    const timeoutId = setTimeout(resolve, waitTimeout)\n    cancelWait = () => clearTimeout(timeoutId)\n  })\n\n  const readyToTerminate = new Promise<void>((resolve) => {\n    worker.once('message', (signal) => signal === WorkerSignal.READY_TO_TERMINATE && resolve())\n  }).then(cancelWait)\n\n  worker.postMessage(WorkerSignal.BEFORE_TERMINATE)\n  await Promise.race([readyToTerminate, maxWaitGuard])\n  await worker.terminate()\n}\n\nexport function replayNormalized<T extends Exchange, U extends MapperFactory<T, any>[], Z extends boolean = false>(\n  {\n    exchange,\n    symbols,\n    from,\n    to,\n    withDisconnectMessages = undefined,\n    apiKey = undefined,\n    autoCleanup = undefined,\n    waitWhenDataNotYetAvailable = undefined\n  }: ReplayNormalizedOptions<T, Z>,\n  ...normalizers: U\n): AsyncIterableIterator<ReplayNormalizedMessage<U, Z>> {\n  const fromDate = parseAsUTCDate(from)\n\n  validateReplayNormalizedOptions(fromDate, normalizers)\n\n  //TODO: zrovi replay dzien po dniu, tak ze kazdego dnia przekazuje swierze filters\n\n  const createMappers = (localTimestamp: Date) => normalizers.map((m) => m(exchange, localTimestamp))\n  const mappers = createMappers(fromDate)\n  const filters = getFilters(mappers, symbols)\n\n  const messages = replay({\n    exchange,\n    from,\n    to,\n    withDisconnects: true,\n    filters,\n    apiKey,\n    withMicroseconds: true,\n    autoCleanup,\n    waitWhenDataNotYetAvailable\n  })\n\n  // filter normalized messages by symbol as some exchanges do not provide server side filtering so we could end up with messages\n  // for symbols we've not requested for\n  const upperCaseSymbols = symbols !== undefined ? symbols.map((s) => s.toUpperCase()) : undefined\n  const filter = (symbol: string) => {\n    return upperCaseSymbols === undefined || upperCaseSymbols.length === 0 || upperCaseSymbols.includes(symbol)\n  }\n\n  return normalizeMessages(exchange, undefined, messages, mappers, createMappers, withDisconnectMessages, filter)\n}\n\nfunction validateReplayOptions<T extends Exchange>(exchange: T, from: string, to: string, filters: FilterForExchange[T][]) {\n  if (!exchange || EXCHANGES.includes(exchange) === false) {\n    throw new Error(`Invalid \"exchange\" argument: ${exchange}. Please provide one of the following exchanges: ${EXCHANGES.join(', ')}.`)\n  }\n\n  if (!from || isNaN(Date.parse(from))) {\n    throw new Error(`Invalid \"from\" argument: ${from}. Please provide valid date string.`)\n  }\n\n  if (!to || isNaN(Date.parse(to))) {\n    throw new Error(`Invalid \"to\" argument: ${to}. Please provide valid date string.`)\n  }\n\n  if (parseAsUTCDate(to) < parseAsUTCDate(from)) {\n    throw new Error(`Invalid \"to\" and \"from\" arguments combination. Please provide \"to\" date that is later than \"from\" date.`)\n  }\n\n  if (filters && filters.length > 0) {\n    for (let i = 0; i < filters.length; i++) {\n      const filter = filters[i]\n\n      if (!filter.channel || (EXCHANGE_CHANNELS_INFO[exchange] as any).includes(filter.channel) === false) {\n        throw new Error(\n          `Invalid \"filters[].channel\" argument: ${filter.channel}. Please provide one of the following channels: ${EXCHANGE_CHANNELS_INFO[\n            exchange\n          ].join(', ')}.`\n        )\n      }\n\n      if (filter.symbols && Array.isArray(filter.symbols) === false) {\n        throw new Error(`Invalid \"filters[].symbols\" argument: ${filter.symbols}. Please provide array of symbol strings`)\n      }\n    }\n  }\n}\n\nfunction validateReplayNormalizedOptions(fromDate: Date, normalizers: MapperFactory<any, any>[]) {\n  const hasBookChangeNormalizer = normalizers.some((n) => n === normalizeBookChanges)\n  const dateDoesNotStartAtTheBeginningOfTheDay = fromDate.getUTCHours() !== 0 || fromDate.getUTCMinutes() !== 0\n\n  if (hasBookChangeNormalizer && dateDoesNotStartAtTheBeginningOfTheDay) {\n    debug('Initial order book snapshots are available only at 00:00 UTC')\n  }\n}\n\nclass ReliableWorker extends EventEmitter {\n  private _errorsCount = 0\n  private _worker: Worker | undefined = undefined\n\n  constructor(private readonly _payload: WorkerJobPayload) {\n    super()\n\n    this._initWorker()\n  }\n\n  private _initWorker() {\n    this._worker = new Worker(new URL('./worker.js', import.meta.url), {\n      workerData: this._payload\n    })\n\n    this._worker.on('message', (message: WorkerMessage) => {\n      this.emit('message', message)\n    })\n\n    this._worker.on('error', this._handleError)\n\n    this._worker.on('exit', (code) => {\n      debug('worker finished with code: %d', code)\n    })\n  }\n\n  private _handleError = async (err: Error) => {\n    debug('underlying worker error %o', err)\n\n    if (err.message.includes('HttpError') === false && this._errorsCount < 30) {\n      this._errorsCount++\n      const delayMS = Math.min(Math.pow(2, this._errorsCount) * 1000, 120 * 1000)\n      debug('re-init worker after: %d ms', delayMS)\n      await wait(delayMS)\n      // it was most likely unhandled socket hang up error, let's retry first with new worker and don't emit error right away\n      this._initWorker()\n    } else {\n      this.emit('error', err)\n    }\n  }\n\n  public getUnderlyingWorker() {\n    return this._worker\n  }\n}\n\nexport type ReplayOptions<T extends Exchange, U extends boolean = false, Z extends boolean = false> = {\n  readonly exchange: T\n  readonly from: string\n  readonly to: string\n  readonly filters: FilterForExchange[T][]\n  readonly skipDecoding?: U\n  readonly withDisconnects?: Z\n  readonly apiKey?: string\n  readonly withMicroseconds?: boolean\n  readonly autoCleanup?: boolean\n  readonly waitWhenDataNotYetAvailable?: boolean | number\n}\n\nexport type ReplayNormalizedOptions<T extends Exchange, U extends boolean = false> = {\n  readonly exchange: T\n  readonly symbols?: string[]\n  readonly from: string\n  readonly to: string\n  readonly withDisconnectMessages?: U\n  readonly apiKey?: string\n  readonly autoCleanup?: boolean\n  readonly waitWhenDataNotYetAvailable?: boolean | number\n}\n"
  },
  {
    "path": "src/stream.ts",
    "content": "import { debug } from './debug.ts'\nimport { getFilters, normalizeMessages } from './handy.ts'\nimport { MapperFactory } from './mappers/index.ts'\nimport { createRealTimeFeed } from './realtimefeeds/index.ts'\nimport { Disconnect, Exchange, Filter, FilterForExchange } from './types.ts'\n\ntype MapperOutput<T> = T extends MapperFactory<any, infer U> ? U : never\ntype StreamNormalizedMessage<U extends readonly MapperFactory<any, any>[], Z extends boolean> = Z extends true\n  ? MapperOutput<U[number]> | Disconnect\n  : MapperOutput<U[number]>\n\nasync function* _stream<T extends Exchange, U extends boolean = false>({\n  exchange,\n  filters,\n  timeoutIntervalMS = 10000,\n  withDisconnects = undefined,\n  onError = undefined\n}: StreamOptions<T, U>): AsyncIterableIterator<\n  U extends true ? { localTimestamp: Date; message: any } | undefined : { localTimestamp: Date; message: any }\n> {\n  validateStreamOptions(filters)\n\n  const realTimeFeed = createRealTimeFeed(exchange, filters, timeoutIntervalMS, onError)\n\n  for await (const message of realTimeFeed) {\n    if (message.__disconnect__ === true) {\n      // __disconnect__ message means that websocket connection has been closed\n      // notify about it by yielding undefined if flag is set\n      if (withDisconnects) {\n        yield undefined as any\n      }\n    } else {\n      yield {\n        localTimestamp: new Date(),\n        message\n      } as any\n    }\n  }\n}\n\nexport function stream<T extends Exchange, U extends boolean = false>({\n  exchange,\n  filters,\n  timeoutIntervalMS = 10000,\n  withDisconnects = undefined,\n  onError = undefined\n}: StreamOptions<T, U>): AsyncIterableIterator<\n  U extends true ? { localTimestamp: Date; message: any } | undefined : { localTimestamp: Date; message: any }\n> {\n  let _iterator = _stream({ exchange, filters, timeoutIntervalMS, withDisconnects, onError })\n\n  ;(_iterator as any).__realtime__ = true\n\n  return _iterator\n}\n\nasync function* _streamNormalized<T extends Exchange, U extends MapperFactory<T, any>[], Z extends boolean = false>(\n  { exchange, symbols, timeoutIntervalMS = 10000, withDisconnectMessages = undefined, onError = undefined }: StreamNormalizedOptions<T, Z>,\n  ...normalizers: U\n): AsyncIterableIterator<StreamNormalizedMessage<U, Z>> {\n  while (true) {\n    try {\n      const createMappers = (localTimestamp: Date) => normalizers.map((m) => m(exchange, localTimestamp))\n      const mappers = createMappers(new Date())\n      const filters = getFilters(mappers, symbols)\n\n      const messages = _stream({\n        exchange,\n        withDisconnects: true,\n        timeoutIntervalMS,\n        filters,\n        onError\n      })\n\n      // filter normalized messages by symbol as some exchanges do not offer subscribing to specific symbols for some of the channels\n      // for example Phemex market24h channel\n\n      const upperCaseSymbols = symbols !== undefined ? symbols.map((s) => s.toUpperCase()) : undefined\n      const filter = (symbol: string) => {\n        return upperCaseSymbols === undefined || upperCaseSymbols.length === 0 || upperCaseSymbols.includes(symbol)\n      }\n\n      const normalizedMessages = normalizeMessages(\n        exchange,\n        symbols,\n        messages,\n        mappers,\n        createMappers,\n        withDisconnectMessages,\n        filter,\n        new Date()\n      )\n\n      for await (const message of normalizedMessages) {\n        yield message\n      }\n    } catch (error: any) {\n      if (onError !== undefined) {\n        onError(error)\n      }\n      debug('%s normalize messages error: %o, retrying with new connection...', exchange, error)\n      if (withDisconnectMessages) {\n        // yield it as disconnect as well if flag is set\n        const disconnect: Disconnect = {\n          type: 'disconnect',\n          exchange,\n          localTimestamp: new Date(),\n          symbols\n        }\n\n        yield disconnect as any\n      }\n    }\n  }\n}\n\nfunction validateStreamOptions(filters: Filter<string>[]) {\n  if (!filters) {\n    throw new Error(`Invalid \"filters\" argument. Please provide filters array`)\n  }\n\n  for (let i = 0; i < filters.length; i++) {\n    const filter = filters[i]\n\n    if (filter.symbols && Array.isArray(filter.symbols) === false) {\n      throw new Error(`Invalid \"filters[].symbols\" argument: ${filter.symbols}. Please provide array of symbol strings`)\n    }\n  }\n}\n\nexport type StreamOptions<T extends Exchange, U extends boolean = false> = {\n  exchange: T\n  filters: FilterForExchange[T][]\n  timeoutIntervalMS?: number\n  withDisconnects?: U\n  onError?: (error: Error) => void\n}\n\nexport type StreamNormalizedOptions<T extends Exchange, U extends boolean = false> = {\n  exchange: T\n  symbols?: string[]\n  timeoutIntervalMS?: number\n  withDisconnectMessages?: U\n  onError?: (error: Error) => void\n}\n\nexport function streamNormalized<T extends Exchange, U extends MapperFactory<T, any>[], Z extends boolean = false>(\n  { exchange, symbols, timeoutIntervalMS = 10000, withDisconnectMessages = undefined, onError = undefined }: StreamNormalizedOptions<T, Z>,\n  ...normalizers: U\n): AsyncIterableIterator<StreamNormalizedMessage<U, Z>> {\n  let _iterator = _streamNormalized({ exchange, symbols, timeoutIntervalMS, withDisconnectMessages, onError }, ...normalizers)\n\n  ;(_iterator as any).__realtime__ = true\n\n  return _iterator\n}\n"
  },
  {
    "path": "src/types.ts",
    "content": "import { EXCHANGES, EXCHANGE_CHANNELS_INFO } from './consts.ts'\n\nexport type Exchange = (typeof EXCHANGES)[number]\n\nexport type FilterForExchange = { [key in Exchange]: Filter<(typeof EXCHANGE_CHANNELS_INFO)[key][number]> }\n\nexport type Filter<T> = {\n  channel: T\n  symbols?: string[]\n}\n\nexport type Writeable<T> = { -readonly [P in keyof T]: T[P] }\n\nexport type NormalizedData = {\n  readonly type: string\n  readonly symbol: string\n  readonly exchange: Exchange\n  readonly timestamp: Date\n  readonly localTimestamp: Date\n  readonly name?: string\n}\n\nexport type Trade = {\n  readonly type: 'trade'\n  readonly symbol: string\n  readonly exchange: Exchange\n  readonly id: string | undefined\n  readonly price: number\n  readonly amount: number\n  readonly side: 'buy' | 'sell' | 'unknown' // liquidity taker side (aggressor)\n  readonly timestamp: Date\n  readonly localTimestamp: Date\n}\n\nexport type BookPriceLevel = {\n  readonly price: number\n  readonly amount: number\n}\n\nexport type BookChange = {\n  readonly type: 'book_change'\n  readonly symbol: string\n  readonly exchange: Exchange\n  readonly isSnapshot: boolean\n  readonly bids: BookPriceLevel[]\n  readonly asks: BookPriceLevel[]\n\n  readonly timestamp: Date\n  readonly localTimestamp: Date\n}\n\nexport type DerivativeTicker = {\n  readonly type: 'derivative_ticker'\n  readonly symbol: string\n  readonly exchange: Exchange\n  readonly lastPrice: number | undefined\n  readonly openInterest: number | undefined\n  readonly fundingRate: number | undefined\n  readonly fundingTimestamp: Date | undefined\n  readonly predictedFundingRate: number | undefined\n  readonly indexPrice: number | undefined\n  readonly markPrice: number | undefined\n\n  readonly timestamp: Date\n  readonly localTimestamp: Date\n}\n\nexport type BookTicker = {\n  readonly type: 'book_ticker'\n  readonly symbol: string\n  readonly exchange: Exchange\n\n  readonly askAmount: number | undefined\n  readonly askPrice: number | undefined\n  readonly bidPrice: number | undefined\n  readonly bidAmount: number | undefined\n\n  readonly timestamp: Date\n  readonly localTimestamp: Date\n}\n\nexport type OptionSummary = NormalizedData & {\n  type: 'option_summary'\n  optionType: 'put' | 'call'\n  strikePrice: number\n\n  expirationDate: Date\n\n  bestBidPrice: number | undefined\n  bestBidAmount: number | undefined\n  bestBidIV: number | undefined\n\n  bestAskPrice: number | undefined\n  bestAskAmount: number | undefined\n  bestAskIV: number | undefined\n\n  lastPrice: number | undefined\n  openInterest: number | undefined\n\n  markPrice: number | undefined\n  markIV: number | undefined\n\n  delta: number | undefined\n  gamma: number | undefined\n  vega: number | undefined\n  theta: number | undefined\n  rho: number | undefined\n\n  underlyingPrice: number | undefined\n  underlyingIndex: string\n}\n\nexport type Liquidation = {\n  readonly type: 'liquidation'\n  readonly symbol: string\n  readonly exchange: Exchange\n  readonly id: string | undefined\n  readonly price: number\n  readonly amount: number\n  readonly side: 'buy' | 'sell' | 'unknown'\n  readonly timestamp: Date\n  readonly localTimestamp: Date\n}\n\nexport type Disconnect = {\n  readonly type: 'disconnect'\n  readonly exchange: Exchange\n  readonly localTimestamp: Date\n  readonly symbols: string[] | undefined\n}\n\nexport type TradeBar = {\n  readonly type: 'trade_bar'\n  readonly symbol: string\n  readonly exchange: Exchange\n  readonly name: string\n  readonly interval: number\n  readonly kind: 'time' | 'volume' | 'tick'\n  readonly open: number\n  readonly high: number\n  readonly low: number\n  readonly close: number\n  readonly volume: number\n  readonly buyVolume: number\n  readonly sellVolume: number\n\n  readonly trades: number\n  readonly vwap: number\n  readonly openTimestamp: Date\n  readonly closeTimestamp: Date\n\n  readonly timestamp: Date\n  readonly localTimestamp: Date\n}\n\nexport type BookSnapshot = {\n  readonly type: 'book_snapshot'\n  readonly symbol: string\n  readonly exchange: Exchange\n  readonly name: string\n  readonly depth: number\n  readonly interval: number\n  readonly grouping?: number\n  readonly bids: Optional<BookPriceLevel>[]\n  readonly asks: Optional<BookPriceLevel>[]\n\n  readonly timestamp: Date\n  readonly localTimestamp: Date\n}\n\ndeclare global {\n  interface Date {\n    μs?: number\n  }\n}\n\nexport type Optional<T> = { [P in keyof T]: T[P] | undefined }\n"
  },
  {
    "path": "src/worker.ts",
    "content": "import dbg from 'debug'\nimport { existsSync } from 'node:fs'\nimport pMap from 'p-map'\nimport { isMainThread, parentPort, workerData } from 'worker_threads'\nimport { addMinutes, download, formatDateToPath, optimizeFilters, sequence, sha256, wait, cleanTempFiles } from './handy.ts'\nimport type { DataFeedCompression } from './options.ts'\nimport { Exchange, Filter } from './types.ts'\nconst debug = dbg('tardis-dev')\n\nif (isMainThread) {\n  debug('existing, worker is not meant to run in main thread')\n} else {\n  parentPort!.on('message', (signal: WorkerSignal) => {\n    if (signal === WorkerSignal.BEFORE_TERMINATE) {\n      cleanTempFiles()\n      parentPort!.postMessage(WorkerSignal.READY_TO_TERMINATE)\n    }\n  })\n  getDataFeedSlices(workerData as WorkerJobPayload)\n}\n\nprocess.on('unhandledRejection', (err, promise) => {\n  debug('Unhandled Rejection at: %o, reason: %o', promise, err)\n  throw err\n})\n\nasync function getDataFeedSlices(payload: WorkerJobPayload) {\n  const MILLISECONDS_IN_MINUTE = 60 * 1000\n  const CONCURRENCY_LIMIT = 60\n  // deduplicate filters (if the channel was provided multiple times)\n  const filters = optimizeFilters(payload.filters)\n\n  // let's calculate number of minutes between \"from\" and \"to\" dates as those will give us total number of requests or checks\n  // that will have to be performed concurrently with CONCURRENCY_LIMIT\n  const minutesCountToFetch = Math.floor((payload.toDate.getTime() - payload.fromDate.getTime()) / MILLISECONDS_IN_MINUTE)\n\n  // each filter will have separate sub dir based on it's sha hash\n  const cacheDir = `${payload.cacheDir}/feeds/${payload.exchange}/${sha256(filters)}`\n\n  const waitOffsetMS =\n    typeof payload.waitWhenDataNotYetAvailable === 'number'\n      ? payload.waitWhenDataNotYetAvailable * MILLISECONDS_IN_MINUTE\n      : 30 * MILLISECONDS_IN_MINUTE\n\n  if (payload.waitWhenDataNotYetAvailable && payload.toDate.valueOf() > new Date().valueOf() - waitOffsetMS) {\n    let timestampForLastAvailableData = new Date().valueOf() - waitOffsetMS\n\n    // in case when even initial from date is not yet available wait until it is\n    if (timestampForLastAvailableData < payload.fromDate.valueOf()) {\n      const initialWaitTime = payload.fromDate.valueOf() - timestampForLastAvailableData\n      if (initialWaitTime > 0) {\n        await wait(initialWaitTime)\n      }\n    }\n\n    // fetch concurently any data that is already available\n    timestampForLastAvailableData = new Date().valueOf() - waitOffsetMS\n    const minutesCountThatAreAlreadyAvailableToFetch = Math.floor(\n      (timestampForLastAvailableData - payload.fromDate.valueOf()) / MILLISECONDS_IN_MINUTE\n    )\n\n    await pMap(sequence(minutesCountThatAreAlreadyAvailableToFetch, 0), (offset) => getDataFeedSlice(payload, offset, filters, cacheDir), {\n      concurrency: CONCURRENCY_LIMIT\n    })\n\n    // for remaining data iterate one by one and wait as needed\n    for (let offset = minutesCountThatAreAlreadyAvailableToFetch; offset < minutesCountToFetch; offset++) {\n      const timestampToFetch = payload.fromDate.valueOf() + offset * MILLISECONDS_IN_MINUTE\n      timestampForLastAvailableData = new Date().valueOf() - waitOffsetMS\n\n      if (timestampToFetch > timestampForLastAvailableData) {\n        const waitTime = timestampToFetch - timestampForLastAvailableData + 100\n\n        await wait(waitTime)\n      }\n      await getDataFeedSlice(payload, offset, filters, cacheDir)\n    }\n  } else {\n    // fetch last slice - it will tell us if user has access to the end of requested date range and data is available\n    await getDataFeedSlice(payload, minutesCountToFetch - 1, filters, cacheDir)\n\n    // fetch first slice - it will tell us if user has access to the beginning of requested date range\n    await getDataFeedSlice(payload, 0, filters, cacheDir)\n\n    // it both begining and end date of the range is accessible fetch all remaning slices concurently with CONCURRENCY_LIMIT\n    await pMap(\n      sequence(minutesCountToFetch, 1), // this will produce Iterable sequence from 1 to minutesCountToFetch\n      (offset) => getDataFeedSlice(payload, offset, filters, cacheDir),\n      { concurrency: CONCURRENCY_LIMIT }\n    )\n  }\n}\n\nasync function getDataFeedSlice(\n  { exchange, fromDate, endpoint, apiKey, dataFeedCompression, userAgent }: WorkerJobPayload,\n  offset: number,\n  filters: object[],\n  cacheDir: string\n) {\n  const sliceTimestamp = addMinutes(fromDate, offset)\n  const sliceKey = sliceTimestamp.toISOString()\n  const sliceBasePath = `${cacheDir}/${formatDateToPath(sliceTimestamp)}.json`\n  const zstdSlicePath = `${sliceBasePath}.zst`\n  const gzipSlicePath = `${sliceBasePath}.gz`\n  const cachedSlicePath = existsSync(zstdSlicePath) ? zstdSlicePath : existsSync(gzipSlicePath) ? gzipSlicePath : undefined\n\n  let url = `${endpoint}/data-feeds/${exchange}?from=${fromDate.toISOString()}&offset=${offset}&compression=${dataFeedCompression}`\n\n  if (filters.length > 0) {\n    url += `&filters=${encodeURIComponent(JSON.stringify(filters))}`\n  }\n\n  const slicePath =\n    cachedSlicePath ||\n    (\n      await download({\n        apiKey,\n        downloadPath: sliceBasePath,\n        url,\n        userAgent,\n        appendContentEncodingExtension: true,\n        acceptEncoding: dataFeedCompression === 'gzip' ? 'gzip' : 'zstd, gzip'\n      })\n    ).downloadPath\n\n  if (cachedSlicePath === undefined) {\n    debug('getDataFeedSlice fetched from API and cached, %s', sliceKey)\n  } else {\n    debug('getDataFeedSlice already cached: %s', sliceKey)\n  }\n\n  // everything went well (already cached or successfull cached) let's communicate it to parent thread\n  const message: WorkerMessage = {\n    sliceKey,\n    slicePath\n  }\n  parentPort!.postMessage(message)\n}\n\nexport type WorkerMessage = {\n  sliceKey: string\n  slicePath: string\n}\n\nexport type WorkerJobPayload = {\n  cacheDir: string\n  endpoint: string\n  apiKey: string\n  dataFeedCompression: DataFeedCompression\n  userAgent: string\n  fromDate: Date\n  toDate: Date\n  exchange: Exchange\n  filters: Filter<any>[]\n  waitWhenDataNotYetAvailable?: boolean | number\n}\n\nexport const enum WorkerSignal {\n  BEFORE_TERMINATE = 'BEFORE_TERMINATE',\n  READY_TO_TERMINATE = 'READY_TO_TERMINATE'\n}\n"
  },
  {
    "path": "test/__snapshots__/combine.test.ts.snap",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`combine(...asyncIterators) should correctly combine iterables based on localTimestamp value 1`] = `\n[\n  {\n    \"localTimestamp\": 2019-08-01T00:52:00.132Z,\n  },\n  {\n    \"localTimestamp\": 2019-08-01T00:52:00.133Z,\n  },\n  {\n    \"localTimestamp\": 2019-08-01T08:52:00.132Z,\n  },\n  {\n    \"localTimestamp\": 2019-08-01T08:53:00.130Z,\n  },\n  {\n    \"localTimestamp\": 2019-08-01T08:53:00.130Z,\n  },\n  {\n    \"localTimestamp\": 2019-08-01T08:53:00.131Z,\n  },\n]\n`;\n\nexports[`combine(...asyncIterators) should correctly combine iterables based on localTimestamp value 2`] = `\n[\n  {\n    \"localTimestamp\": 2019-08-01T00:52:00.102Z,\n  },\n  {\n    \"localTimestamp\": 2019-08-01T00:52:00.132Z,\n  },\n  {\n    \"localTimestamp\": 2019-08-01T00:52:00.133Z,\n  },\n  {\n    \"localTimestamp\": 2019-08-01T00:53:00.130Z,\n  },\n  {\n    \"localTimestamp\": 2019-08-01T08:53:00.130Z,\n  },\n  {\n    \"localTimestamp\": 2019-08-01T08:53:00.131Z,\n  },\n  {\n    \"localTimestamp\": 2019-08-02T08:53:00.131Z,\n  },\n]\n`;\n\nexports[`combine(...asyncIterators) should correctly combine iterables based on localTimestamp value 3`] = `\n[\n  {\n    \"localTimestamp\": 2019-08-01T00:52:00.102102Z,\n    \"name\": \"iter2\",\n  },\n  {\n    \"localTimestamp\": 2019-08-01T00:52:00.102202Z,\n    \"name\": \"iter1\",\n  },\n]\n`;\n\nexports[`combine(...asyncIterators) should produce combined iterable from two replayNormalized iterables 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 481310,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 145180,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 75700,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 42730,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 33640,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 53360,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 121750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 54950,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 66780,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 19900,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 87330,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 89040,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 282400,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 60040,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 48080,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 8600,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 80400,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 6700,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 1390,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 9290,\n        \"price\": 4097.25,\n      },\n      {\n        \"amount\": 67600,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 5040,\n        \"price\": 4097.75,\n      },\n      {\n        \"amount\": 5700,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 48090,\n        \"price\": 4098.25,\n      },\n      {\n        \"amount\": 960,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 29430,\n        \"price\": 4098.75,\n      },\n      {\n        \"amount\": 15200,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 9400,\n        \"price\": 4099.25,\n      },\n      {\n        \"amount\": 10250,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 9700,\n        \"price\": 4099.75,\n      },\n      {\n        \"amount\": 12300,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 42700,\n        \"price\": 4100.25,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4100.75,\n      },\n      {\n        \"amount\": 25100,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4101.25,\n      },\n      {\n        \"amount\": 43780,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 5040,\n        \"price\": 4101.75,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 42090,\n        \"price\": 4102.25,\n      },\n      {\n        \"amount\": 4550,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 4800,\n        \"price\": 4102.75,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4103.25,\n      },\n      {\n        \"amount\": 4590,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 4103.75,\n      },\n      {\n        \"amount\": 12100,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 42460,\n        \"price\": 4104.25,\n      },\n      {\n        \"amount\": 20520,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 76400,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 29200,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4105.75,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2060,\n        \"price\": 4106.25,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4106.75,\n      },\n      {\n        \"amount\": 180,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4107.75,\n      },\n      {\n        \"amount\": 46100,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 56630,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 4108.75,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4109.75,\n      },\n      {\n        \"amount\": 11200,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4110.75,\n      },\n      {\n        \"amount\": 13070,\n        \"price\": 4111,\n      },\n      {\n        \"amount\": 54080,\n        \"price\": 4111.25,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4111.75,\n      },\n      {\n        \"amount\": 54210,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4112.5,\n      },\n      {\n        \"amount\": 102000,\n        \"price\": 4112.75,\n      },\n      {\n        \"amount\": 46000,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 40130,\n        \"price\": 4113.75,\n      },\n      {\n        \"amount\": 59410,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 29180,\n        \"price\": 4114.25,\n      },\n      {\n        \"amount\": 540,\n        \"price\": 4115.75,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4116.25,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4116.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 30670,\n        \"price\": 4117.25,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4117.75,\n      },\n      {\n        \"amount\": 21600,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4119.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4119.75,\n      },\n      {\n        \"amount\": 207300,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 4120.25,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 4120.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 29200,\n        \"price\": 4121.5,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 4121.75,\n      },\n      {\n        \"amount\": 58000,\n        \"price\": 4122,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4123,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4123.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4123.75,\n      },\n      {\n        \"amount\": 9300,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 40040,\n        \"price\": 4125.75,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 13250,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 109990,\n        \"price\": 4127.25,\n      },\n      {\n        \"amount\": 6160,\n        \"price\": 4127.75,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4128,\n      },\n      {\n        \"amount\": 12020,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4129.75,\n      },\n      {\n        \"amount\": 159530,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4131.25,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4131.5,\n      },\n      {\n        \"amount\": 10090,\n        \"price\": 4131.75,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 4132,\n      },\n      {\n        \"amount\": 11070,\n        \"price\": 4133,\n      },\n      {\n        \"amount\": 50040,\n        \"price\": 4133.75,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4134,\n      },\n      {\n        \"amount\": 1840,\n        \"price\": 4135,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4135.75,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4137.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4137.75,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4138.25,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4138.75,\n      },\n      {\n        \"amount\": 50100,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4139.25,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4139.75,\n      },\n      {\n        \"amount\": 103160,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4141,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4141.75,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4142,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4142.25,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 4143,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4143.25,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4143.75,\n      },\n      {\n        \"amount\": 10300,\n        \"price\": 4144,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4144.25,\n      },\n      {\n        \"amount\": 3250,\n        \"price\": 4145,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4145.75,\n      },\n      {\n        \"amount\": 2700,\n        \"price\": 4146,\n      },\n      {\n        \"amount\": 40050,\n        \"price\": 4146.75,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4147,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 4147.25,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4147.75,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4148,\n      },\n      {\n        \"amount\": 25100,\n        \"price\": 4149,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4149.75,\n      },\n      {\n        \"amount\": 410550,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4150.75,\n      },\n      {\n        \"amount\": 11000,\n        \"price\": 4151,\n      },\n      {\n        \"amount\": 10230,\n        \"price\": 4152,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4153,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4154,\n      },\n      {\n        \"amount\": 92510,\n        \"price\": 4155,\n      },\n      {\n        \"amount\": 40010,\n        \"price\": 4155.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4156,\n      },\n      {\n        \"amount\": 16010,\n        \"price\": 4157,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4157.5,\n      },\n      {\n        \"amount\": 7560,\n        \"price\": 4158,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4158.5,\n      },\n      {\n        \"amount\": 32950,\n        \"price\": 4160,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4161.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4162,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4163,\n      },\n      {\n        \"amount\": 8370,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 21700,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 159990,\n        \"price\": 4165.25,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4166,\n      },\n      {\n        \"amount\": 8440,\n        \"price\": 4167,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4167.5,\n      },\n      {\n        \"amount\": 120580,\n        \"price\": 4170,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4172,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4172.5,\n      },\n      {\n        \"amount\": 540,\n        \"price\": 4174,\n      },\n      {\n        \"amount\": 21400,\n        \"price\": 4175,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4176,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4176.25,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4177.5,\n      },\n      {\n        \"amount\": 9840,\n        \"price\": 4180,\n      },\n      {\n        \"amount\": 820,\n        \"price\": 4181,\n      },\n      {\n        \"amount\": 42120,\n        \"price\": 4182,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4182.5,\n      },\n      {\n        \"amount\": 11000,\n        \"price\": 4185,\n      },\n      {\n        \"amount\": 43710,\n        \"price\": 4185.25,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4187.5,\n      },\n      {\n        \"amount\": 33600,\n        \"price\": 4188,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4189.75,\n      },\n      {\n        \"amount\": 107010,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4192.25,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4192.5,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 4194.5,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 5300,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4198,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 4199,\n      },\n      {\n        \"amount\": 23150,\n        \"price\": 4200,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4200.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4205,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4208,\n      },\n      {\n        \"amount\": 7010,\n        \"price\": 4210,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4211,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4212,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4215,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4215.75,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4217,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4218,\n      },\n      {\n        \"amount\": 4220,\n        \"price\": 4219,\n      },\n      {\n        \"amount\": 510,\n        \"price\": 4220,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4221,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4223.25,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4223.75,\n      },\n      {\n        \"amount\": 650,\n        \"price\": 4225,\n      },\n      {\n        \"amount\": 84510,\n        \"price\": 4225.25,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4228.25,\n      },\n      {\n        \"amount\": 5060,\n        \"price\": 4230,\n      },\n      {\n        \"amount\": 8500,\n        \"price\": 4235,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4238,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4238.5,\n      },\n      {\n        \"amount\": 60010,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4241,\n      },\n      {\n        \"amount\": 22000,\n        \"price\": 4242,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4244,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4245,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 4246,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4247.5,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4247.75,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4248,\n      },\n      {\n        \"amount\": 60620,\n        \"price\": 4249,\n      },\n      {\n        \"amount\": 32280,\n        \"price\": 4250,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4250.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4253,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4254,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4255.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4258,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4260,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4260.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4263,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 4266,\n      },\n      {\n        \"amount\": 80100,\n        \"price\": 4268,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4270,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4273,\n      },\n      {\n        \"amount\": 40020,\n        \"price\": 4275,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 4276,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4278,\n      },\n      {\n        \"amount\": 10010,\n        \"price\": 4280,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4280.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4283,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4284,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 4285,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 4286,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4287,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 4288,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 4292.25,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4295,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4297.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4298,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4299,\n      },\n      {\n        \"amount\": 11090,\n        \"price\": 4300,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4300.75,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4308,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4321,\n      },\n      {\n        \"amount\": 44350,\n        \"price\": 4325,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4328,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4336,\n      },\n      {\n        \"amount\": 4230,\n        \"price\": 4345,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4348,\n      },\n      {\n        \"amount\": 44350,\n        \"price\": 4350,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4361,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 4365,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 4370,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4375,\n      },\n      {\n        \"amount\": 40250,\n        \"price\": 4377,\n      },\n      {\n        \"amount\": 130,\n        \"price\": 4378,\n      },\n      {\n        \"amount\": 4380,\n        \"price\": 4380,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4383,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 4386,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4391,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4393,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4395,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 4400,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4403,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4409,\n      },\n      {\n        \"amount\": 14410,\n        \"price\": 4410,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4412,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4423,\n      },\n      {\n        \"amount\": 8950,\n        \"price\": 4444,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4448,\n      },\n      {\n        \"amount\": 10230,\n        \"price\": 4450,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4451,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4468,\n      },\n      {\n        \"amount\": 11000,\n        \"price\": 4473,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4478,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4488,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4490,\n      },\n      {\n        \"amount\": 1600,\n        \"price\": 4492.25,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4495,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4499,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4500,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4505,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4513,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4520,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4532,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4540,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 4544,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4548,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4574,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4576,\n      },\n      {\n        \"amount\": 180,\n        \"price\": 4578,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4579,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4600,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4658,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4678,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4688,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4690,\n      },\n      {\n        \"amount\": 1340,\n        \"price\": 4700,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4708,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4717,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4722.75,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4728,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4731,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4748,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4771,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 4778,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4779,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4782,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4832,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4849,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4878,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4888,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4900,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4907,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4909,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4920,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4990,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5000,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5010,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5016,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5020,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5083,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 5161,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 5175,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5250,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5380,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5615,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5655,\n      },\n      {\n        \"amount\": 570,\n        \"price\": 5750,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5780,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 5794,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 5845,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6115,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6141.5,\n      },\n      {\n        \"amount\": 160,\n        \"price\": 6600,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 6698,\n      },\n      {\n        \"amount\": 170,\n        \"price\": 6700,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6790,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 6898,\n      },\n      {\n        \"amount\": 7410,\n        \"price\": 7050,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7080,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 7550,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 9330,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 261880,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 161740,\n        \"price\": 4091.75,\n      },\n      {\n        \"amount\": 239800,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 12430,\n        \"price\": 4091.25,\n      },\n      {\n        \"amount\": 20030,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 40400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1410,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 19470,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 127540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 49990,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 35070,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 138240,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 9760,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 130790,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 14500,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 25780,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 59190,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 28360,\n        \"price\": 4086.25,\n      },\n      {\n        \"amount\": 9720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 119710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 16340,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 18930,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 21600,\n        \"price\": 4083.25,\n      },\n      {\n        \"amount\": 48140,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4082.25,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4081.75,\n      },\n      {\n        \"amount\": 10200,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 75800,\n        \"price\": 4081.25,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 29000,\n        \"price\": 4080.75,\n      },\n      {\n        \"amount\": 2120,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 1600,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 58800,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 1600,\n        \"price\": 4077.75,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4077.25,\n      },\n      {\n        \"amount\": 17370,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 144200,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 5140,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 49550,\n        \"price\": 4075.75,\n      },\n      {\n        \"amount\": 1600,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 4640,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1680,\n        \"price\": 4073.75,\n      },\n      {\n        \"amount\": 4560,\n        \"price\": 4073.5,\n      },\n      {\n        \"amount\": 1600,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4072.75,\n      },\n      {\n        \"amount\": 3600,\n        \"price\": 4072.25,\n      },\n      {\n        \"amount\": 1640,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 79370,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 101040,\n        \"price\": 4070.75,\n      },\n      {\n        \"amount\": 42690,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 4300,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4069.25,\n      },\n      {\n        \"amount\": 2040,\n        \"price\": 4067.75,\n      },\n      {\n        \"amount\": 165580,\n        \"price\": 4067.25,\n      },\n      {\n        \"amount\": 21610,\n        \"price\": 4067,\n      },\n      {\n        \"amount\": 1090,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 4710,\n        \"price\": 4066.25,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4065.75,\n      },\n      {\n        \"amount\": 20330,\n        \"price\": 4065.25,\n      },\n      {\n        \"amount\": 2060,\n        \"price\": 4065,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4064.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4064,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4063,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4062,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 4061,\n      },\n      {\n        \"amount\": 41100,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4059.25,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 320,\n        \"price\": 4058.25,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4057.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4057.25,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4057,\n      },\n      {\n        \"amount\": 10140,\n        \"price\": 4056,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4055.75,\n      },\n      {\n        \"amount\": 16760,\n        \"price\": 4055,\n      },\n      {\n        \"amount\": 40030,\n        \"price\": 4054,\n      },\n      {\n        \"amount\": 100030,\n        \"price\": 4053.75,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 4052.25,\n      },\n      {\n        \"amount\": 10040,\n        \"price\": 4052,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4051.75,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 4051,\n      },\n      {\n        \"amount\": 59260,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 50050,\n        \"price\": 4049.75,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 4048,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4047.75,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4047.5,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 4046.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4046,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4045.75,\n      },\n      {\n        \"amount\": 4700,\n        \"price\": 4045.5,\n      },\n      {\n        \"amount\": 26520,\n        \"price\": 4045,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4044,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4043.75,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4043.25,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4043,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4042.5,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 4042,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4041.75,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4041,\n      },\n      {\n        \"amount\": 46000,\n        \"price\": 4040.75,\n      },\n      {\n        \"amount\": 26000,\n        \"price\": 4040.5,\n      },\n      {\n        \"amount\": 54450,\n        \"price\": 4040,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4039.75,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 12270,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 1580,\n        \"price\": 4038.25,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4037.75,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 4037,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 4036,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 4035.75,\n      },\n      {\n        \"amount\": 5110,\n        \"price\": 4035,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4034,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4033.75,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4033.5,\n      },\n      {\n        \"amount\": 40010,\n        \"price\": 4033.25,\n      },\n      {\n        \"amount\": 900000,\n        \"price\": 4032,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4031.75,\n      },\n      {\n        \"amount\": 6250,\n        \"price\": 4031,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4030.75,\n      },\n      {\n        \"amount\": 7270,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4029.75,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4028.5,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4028,\n      },\n      {\n        \"amount\": 170,\n        \"price\": 4027,\n      },\n      {\n        \"amount\": 4700,\n        \"price\": 4026.25,\n      },\n      {\n        \"amount\": 44300,\n        \"price\": 4026,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4025.5,\n      },\n      {\n        \"amount\": 12500,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4024.5,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4024.25,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4023.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4023.25,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1780,\n        \"price\": 4022,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4021.75,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 4021,\n      },\n      {\n        \"amount\": 7280,\n        \"price\": 4020,\n      },\n      {\n        \"amount\": 2410,\n        \"price\": 4019.5,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4019,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 4018.5,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4018.25,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 4017,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 4016,\n      },\n      {\n        \"amount\": 160000,\n        \"price\": 4015.75,\n      },\n      {\n        \"amount\": 3100,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 42000,\n        \"price\": 4013.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4013,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4012,\n      },\n      {\n        \"amount\": 4250,\n        \"price\": 4011,\n      },\n      {\n        \"amount\": 53000,\n        \"price\": 4010.75,\n      },\n      {\n        \"amount\": 35750,\n        \"price\": 4010,\n      },\n      {\n        \"amount\": 66000,\n        \"price\": 4009,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4008.5,\n      },\n      {\n        \"amount\": 17260,\n        \"price\": 4008,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 4007,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4006.75,\n      },\n      {\n        \"amount\": 51000,\n        \"price\": 4006,\n      },\n      {\n        \"amount\": 140000,\n        \"price\": 4005.75,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4005.25,\n      },\n      {\n        \"amount\": 20030,\n        \"price\": 4005,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4004.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4003.75,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4003,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 4002.5,\n      },\n      {\n        \"amount\": 11500,\n        \"price\": 4002,\n      },\n      {\n        \"amount\": 630,\n        \"price\": 4001.25,\n      },\n      {\n        \"amount\": 12550,\n        \"price\": 4001,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4000.25,\n      },\n      {\n        \"amount\": 38100,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3999.5,\n      },\n      {\n        \"amount\": 51000,\n        \"price\": 3998,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 3997.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3996.75,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 3993.25,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3993,\n      },\n      {\n        \"amount\": 180,\n        \"price\": 3992.75,\n      },\n      {\n        \"amount\": 750,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 2900,\n        \"price\": 3990,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3988,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3986.75,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 3985.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 3985,\n      },\n      {\n        \"amount\": 3620,\n        \"price\": 3984.25,\n      },\n      {\n        \"amount\": 13000,\n        \"price\": 3983,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 3981.25,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3981,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 3980.75,\n      },\n      {\n        \"amount\": 11300,\n        \"price\": 3980,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3978,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3977.25,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 3977,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 3976.25,\n      },\n      {\n        \"amount\": 10800,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 10250,\n        \"price\": 3974,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3973.75,\n      },\n      {\n        \"amount\": 51000,\n        \"price\": 3973,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3972.25,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3972,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 3971.75,\n      },\n      {\n        \"amount\": 26650,\n        \"price\": 3971,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 3970.75,\n      },\n      {\n        \"amount\": 5700,\n        \"price\": 3970,\n      },\n      {\n        \"amount\": 11000,\n        \"price\": 3968,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3967.25,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3966.75,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3966,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 3965.5,\n      },\n      {\n        \"amount\": 51800,\n        \"price\": 3965,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3962,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3961.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 3961,\n      },\n      {\n        \"amount\": 12070,\n        \"price\": 3960,\n      },\n      {\n        \"amount\": 105000,\n        \"price\": 3958,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 3957,\n      },\n      {\n        \"amount\": 36000,\n        \"price\": 3956,\n      },\n      {\n        \"amount\": 138000,\n        \"price\": 3955,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3954,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3952.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3952,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3951.75,\n      },\n      {\n        \"amount\": 750,\n        \"price\": 3951,\n      },\n      {\n        \"amount\": 51000,\n        \"price\": 3950.5,\n      },\n      {\n        \"amount\": 82500,\n        \"price\": 3950,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 3948.25,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3946.5,\n      },\n      {\n        \"amount\": 840,\n        \"price\": 3945,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 3944,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3943.25,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 3943,\n      },\n      {\n        \"amount\": 10050,\n        \"price\": 3941.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 3941,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 3940,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3937,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3935,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 3933,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3932.5,\n      },\n      {\n        \"amount\": 850,\n        \"price\": 3931,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 3930,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3929.25,\n      },\n      {\n        \"amount\": 3780,\n        \"price\": 3928,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3927.5,\n      },\n      {\n        \"amount\": 160,\n        \"price\": 3927.25,\n      },\n      {\n        \"amount\": 15020,\n        \"price\": 3927,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 3926.75,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 3925,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3924,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3923.25,\n      },\n      {\n        \"amount\": 50030,\n        \"price\": 3923,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3922.5,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 3921,\n      },\n      {\n        \"amount\": 15440,\n        \"price\": 3920,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3914,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3912,\n      },\n      {\n        \"amount\": 2950,\n        \"price\": 3911,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3910.25,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3910,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3908,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3906.25,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3905,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 3904,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3902.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3902,\n      },\n      {\n        \"amount\": 20730,\n        \"price\": 3900,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3896,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3894.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3894,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3892,\n      },\n      {\n        \"amount\": 1350,\n        \"price\": 3891,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3890,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3889,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3888.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3882.25,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3882,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 3881.25,\n      },\n      {\n        \"amount\": 1900,\n        \"price\": 3881,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3880,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3875.75,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 3875,\n      },\n      {\n        \"amount\": 3880,\n        \"price\": 3874.75,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3872.75,\n      },\n      {\n        \"amount\": 1150,\n        \"price\": 3871,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 3870,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3868,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 3864.75,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 3861.75,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 3861,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 3860.75,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3860,\n      },\n      {\n        \"amount\": 42000,\n        \"price\": 3857,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3855.5,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 3854.75,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3851,\n      },\n      {\n        \"amount\": 11130,\n        \"price\": 3850,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 3847,\n      },\n      {\n        \"amount\": 1300,\n        \"price\": 3841,\n      },\n      {\n        \"amount\": 143560,\n        \"price\": 3840,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 3839,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 3837.25,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3837,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3834,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3833,\n      },\n      {\n        \"amount\": 1350,\n        \"price\": 3831,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 3830,\n      },\n      {\n        \"amount\": 130,\n        \"price\": 3829,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 3828.5,\n      },\n      {\n        \"amount\": 10100,\n        \"price\": 3825,\n      },\n      {\n        \"amount\": 9040,\n        \"price\": 3821,\n      },\n      {\n        \"amount\": 160,\n        \"price\": 3820,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3816,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 3812,\n      },\n      {\n        \"amount\": 1450,\n        \"price\": 3811,\n      },\n      {\n        \"amount\": 830,\n        \"price\": 3810,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 3804.25,\n      },\n      {\n        \"amount\": 11410,\n        \"price\": 3803,\n      },\n      {\n        \"amount\": 1630,\n        \"price\": 3802,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3801.75,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3801,\n      },\n      {\n        \"amount\": 11400,\n        \"price\": 3800,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 3799.5,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 3796.25,\n      },\n      {\n        \"amount\": 18960,\n        \"price\": 3792,\n      },\n      {\n        \"amount\": 1550,\n        \"price\": 3791,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3790,\n      },\n      {\n        \"amount\": 1600,\n        \"price\": 3781,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 3780,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3778.25,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3775.5,\n      },\n      {\n        \"amount\": 10110,\n        \"price\": 3775,\n      },\n      {\n        \"amount\": 1650,\n        \"price\": 3771,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3770,\n      },\n      {\n        \"amount\": 40200,\n        \"price\": 3766.75,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 3763.5,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 3761,\n      },\n      {\n        \"amount\": 270,\n        \"price\": 3760,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3755.75,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3755.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3755.25,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3755,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3754,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3751.5,\n      },\n      {\n        \"amount\": 1750,\n        \"price\": 3751,\n      },\n      {\n        \"amount\": 23180,\n        \"price\": 3750,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3743,\n      },\n      {\n        \"amount\": 1800,\n        \"price\": 3741,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3740,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3739.75,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3736.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3735,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3733,\n      },\n      {\n        \"amount\": 2250,\n        \"price\": 3731,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 3730.75,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3730,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3728.25,\n      },\n      {\n        \"amount\": 13480,\n        \"price\": 3725.5,\n      },\n      {\n        \"amount\": 10080,\n        \"price\": 3725,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3723,\n      },\n      {\n        \"amount\": 1900,\n        \"price\": 3721,\n      },\n      {\n        \"amount\": 3100,\n        \"price\": 3720,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3717.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3714,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3713,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3712.75,\n      },\n      {\n        \"amount\": 2330,\n        \"price\": 3711,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 3710,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3705.75,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3703,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3701,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 3700,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3698.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3698.25,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 3691,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3689.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3685.5,\n      },\n      {\n        \"amount\": 670,\n        \"price\": 3685,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3684,\n      },\n      {\n        \"amount\": 480,\n        \"price\": 3683,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 3681,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3679,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3676.25,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3675.75,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3673,\n      },\n      {\n        \"amount\": 2150,\n        \"price\": 3671,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 3669,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3667,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3666.5,\n      },\n      {\n        \"amount\": 61560,\n        \"price\": 3666,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3665.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3663,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3662.75,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 3661,\n      },\n      {\n        \"amount\": 9050,\n        \"price\": 3660,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3659.75,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3656.25,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3653,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 3651,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3650.25,\n      },\n      {\n        \"amount\": 650,\n        \"price\": 3650,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3649,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 3645,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3642,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 3641,\n      },\n      {\n        \"amount\": 710,\n        \"price\": 3636,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 3632.75,\n      },\n      {\n        \"amount\": 2350,\n        \"price\": 3631,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3630.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3630,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3629,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3625,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 3621,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3616,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3615,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3613,\n      },\n      {\n        \"amount\": 4950,\n        \"price\": 3611,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 3610.25,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3610,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3609,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3604,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3603,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3602.25,\n      },\n      {\n        \"amount\": 2750,\n        \"price\": 3601,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 3600,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3595.75,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3593,\n      },\n      {\n        \"amount\": 2550,\n        \"price\": 3591,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 3589.75,\n      },\n      {\n        \"amount\": 180,\n        \"price\": 3588.75,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 3588,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3584.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3583,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 3581,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 3580,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3577,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3575,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3573,\n      },\n      {\n        \"amount\": 2650,\n        \"price\": 3571,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 3567.25,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3567,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3563,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3562,\n      },\n      {\n        \"amount\": 2700,\n        \"price\": 3561,\n      },\n      {\n        \"amount\": 750,\n        \"price\": 3560,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3557,\n      },\n      {\n        \"amount\": 750,\n        \"price\": 3555,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3553,\n      },\n      {\n        \"amount\": 2750,\n        \"price\": 3551,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 3550,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3547,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3545,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 3542,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 3541,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 3540,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3537,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3535,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 3534.5,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3534,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3532,\n      },\n      {\n        \"amount\": 2850,\n        \"price\": 3531,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3527,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3526.25,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3525.5,\n      },\n      {\n        \"amount\": 520,\n        \"price\": 3525,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 3522,\n      },\n      {\n        \"amount\": 2900,\n        \"price\": 3521,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3520,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3517,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 3515,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3514.25,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3512,\n      },\n      {\n        \"amount\": 2950,\n        \"price\": 3511,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3510,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3508.75,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3503,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 3502.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3502,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 3501.75,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 3501,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3500.25,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3500,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3496.25,\n      },\n      {\n        \"amount\": 3050,\n        \"price\": 3491,\n      },\n      {\n        \"amount\": 1020,\n        \"price\": 3482,\n      },\n      {\n        \"amount\": 3100,\n        \"price\": 3481,\n      },\n      {\n        \"amount\": 250000,\n        \"price\": 3475,\n      },\n      {\n        \"amount\": 3150,\n        \"price\": 3471,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3469,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3465,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3464,\n      },\n      {\n        \"amount\": 3200,\n        \"price\": 3461,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3458.75,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 3458,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 3456,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3452,\n      },\n      {\n        \"amount\": 5520,\n        \"price\": 3451,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3443,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3442,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 3441,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3436.25,\n      },\n      {\n        \"amount\": 3350,\n        \"price\": 3431,\n      },\n      {\n        \"amount\": 510,\n        \"price\": 3426,\n      },\n      {\n        \"amount\": 3420,\n        \"price\": 3421,\n      },\n      {\n        \"amount\": 3450,\n        \"price\": 3411,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3403.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3403,\n      },\n      {\n        \"amount\": 4320,\n        \"price\": 3401,\n      },\n      {\n        \"amount\": 8780,\n        \"price\": 3400,\n      },\n      {\n        \"amount\": 3550,\n        \"price\": 3391,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3385,\n      },\n      {\n        \"amount\": 3600,\n        \"price\": 3381,\n      },\n      {\n        \"amount\": 3380,\n        \"price\": 3375,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3374.75,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3370.75,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3366,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3353,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3338.25,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3335,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3333,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3322,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3315,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3311,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3305.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3303.25,\n      },\n      {\n        \"amount\": 10100,\n        \"price\": 3300.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3300,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3299,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3295,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3288,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3277,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 3272.75,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3266,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3265,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3264.25,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 3260,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3258.25,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3255,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 3240,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3233,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3230,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3228,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3215,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3214,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 3210,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3208,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 3207.25,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3201,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3200,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3198,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3176,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3174.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3156.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3151.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3150,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3143,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3141.75,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 3140,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3130,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3109,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 3105,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3100,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3098,\n      },\n      {\n        \"amount\": 750,\n        \"price\": 3081,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3076.25,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 3055,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3043.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3021,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3010.75,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 3005,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3003,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 3001,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 3000,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2978,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2961,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2955,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2950,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2945.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2925,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2912.75,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2910,\n      },\n      {\n        \"amount\": 540,\n        \"price\": 2880,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2875,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2857,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2855,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2850,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2847.25,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2814.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2810,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2805,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2781.75,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 2765,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2757,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2749,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2720,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2716.25,\n      },\n      {\n        \"amount\": 22840,\n        \"price\": 2700,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2683.5,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2665,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 2651,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2650.75,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 2625,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2620,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2618,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2585.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2552.75,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 2551,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 2525,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2520,\n      },\n      {\n        \"amount\": 188600,\n        \"price\": 2505,\n      },\n      {\n        \"amount\": 8070,\n        \"price\": 2500,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2487.25,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 2425,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2422,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2415,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2315,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2215,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2115,\n      },\n      {\n        \"amount\": 2150,\n        \"price\": 2050,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 2001,\n      },\n      {\n        \"amount\": 30050,\n        \"price\": 2000,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 1904,\n      },\n      {\n        \"amount\": 48100,\n        \"price\": 1850,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1800,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 1780,\n      },\n      {\n        \"amount\": 12460,\n        \"price\": 1600,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 1400,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-04-01T00:00:00.284668Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.336181Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29100,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.336230Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130180,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 90700,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.336278Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.294Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59490,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.336349Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.306Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 89490,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.336793Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.336803Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51780,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 57750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.421310Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 119490,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.432085Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.417Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 114950,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.436038Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.425Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 57900,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.524250Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.511Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23330,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 25040,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 218400,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 175800,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.566104Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.511Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 57760,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.566992Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.538Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4040.5,\n      },\n      {\n        \"amount\": 27000,\n        \"price\": 4039.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.581341Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 108240,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 34200,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.600536Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.591Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 99710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.758201Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.725Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 79710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 49720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.794367Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.783Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 37760,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 49100,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.839921Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.830Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 31750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 144950,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.865015Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53360,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.874061Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29100,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 73360,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.890700Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.879Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48290,\n        \"price\": 4098.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.912106Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.901Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12450,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.956167Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.945Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149490,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.962205Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.952Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 37800,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.964380Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.954Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144950,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.053088Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.040Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77900,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.138864Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 99710,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.143173Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.130Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 119710,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.162082Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22800,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 92900,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.165012Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12420,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.335230Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.319Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.336626Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.327Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 457310,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.340226Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.327Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88360,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.370080Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.361Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 114950,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 81780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.419329Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75700,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 37750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.423016Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 73360,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 52750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.437434Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 119490,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.459007Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.448Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9100,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 93360,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.461054Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60700,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 67750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.476663Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 89490,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 111780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.484700Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.474Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45700,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.497830Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.481Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59490,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.497895Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.484Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30700,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 24100,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.498360Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.489Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29490,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 141780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.513485Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.502Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7500,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.536271Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24950,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.614565Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.593Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.626752Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.614Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.641556Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 171780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.648379Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.635Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 97900,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.706137Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 220100,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.723389Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12460,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.729327Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82760,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.740420Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24560,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.940094Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77900,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 51750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.123727Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:01.984Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67760,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 92900,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.189233Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 99710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.197376Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 79710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 49720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.203837Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.190Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12500,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.245353Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.230Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67790,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.249229Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 239800,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.522752Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 89040,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.543502Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.516Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88560,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.574175Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4492.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.644083Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.625Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 284100,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.660681Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1830,\n        \"price\": 1000000,\n      },\n      {\n        \"amount\": 245,\n        \"price\": 999999,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 999998,\n      },\n      {\n        \"amount\": 214,\n        \"price\": 406504.5,\n      },\n      {\n        \"amount\": 2008,\n        \"price\": 403226,\n      },\n      {\n        \"amount\": 1203,\n        \"price\": 401606.5,\n      },\n      {\n        \"amount\": 102,\n        \"price\": 400000,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 351450,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 320919,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 250000,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 199999,\n      },\n      {\n        \"amount\": 6800,\n        \"price\": 141250,\n      },\n      {\n        \"amount\": 127,\n        \"price\": 100000,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 88888,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 80000,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 71175,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 71045,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 66494,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 64758.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 63225,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 61317,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 58800,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 52000,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 50000,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 49789,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 46450.5,\n      },\n      {\n        \"amount\": 55000,\n        \"price\": 44556,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 43190,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 41200,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 40825,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 40700,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 40332,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 40170.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 40094.5,\n      },\n      {\n        \"amount\": 10931,\n        \"price\": 40013.5,\n      },\n      {\n        \"amount\": 4302,\n        \"price\": 40000,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 39520,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 38873,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 38500,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 38305,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 38222,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 37638.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 37050,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 36250,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 36012,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 35000,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 34900,\n      },\n      {\n        \"amount\": 279960,\n        \"price\": 34850,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 34505,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 34038.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 34008,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 33328,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 31505,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 30000,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 26019,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 24000,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 20658,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 20450,\n      },\n      {\n        \"amount\": 100071,\n        \"price\": 20000,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 19888,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 19667,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 19664,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 19400,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 19389,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 19386,\n      },\n      {\n        \"amount\": 95000,\n        \"price\": 19000,\n      },\n      {\n        \"amount\": 8700,\n        \"price\": 18844,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 18700,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 18620,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 18400,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 18256,\n      },\n      {\n        \"amount\": 90040,\n        \"price\": 18000,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 17980,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 17896,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 17800,\n      },\n      {\n        \"amount\": 1772,\n        \"price\": 17716,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 17650,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 17535.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 17476,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 17453.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 17438.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 17433,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 17431,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 17400,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 17146,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 17050,\n      },\n      {\n        \"amount\": 85050,\n        \"price\": 17000,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 16950,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 16910,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 16900,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 16877,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 16850,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 16846,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 16446,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 16400,\n      },\n      {\n        \"amount\": 148,\n        \"price\": 16340,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 16310,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 16298,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 16294,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 16292,\n      },\n      {\n        \"amount\": 1611,\n        \"price\": 16105,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 16046,\n      },\n      {\n        \"amount\": 82000,\n        \"price\": 16000,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 15766,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 15760,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 15679,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 15660,\n      },\n      {\n        \"amount\": 7,\n        \"price\": 15555,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 15500,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 15496,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 15466,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 15400,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 15321.5,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 15295.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 15230,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 15136,\n      },\n      {\n        \"amount\": 431262,\n        \"price\": 15000,\n      },\n      {\n        \"amount\": 43,\n        \"price\": 14894,\n      },\n      {\n        \"amount\": 48,\n        \"price\": 14850,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 14822,\n      },\n      {\n        \"amount\": 1465,\n        \"price\": 14641,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 14500,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 14471.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 14447,\n      },\n      {\n        \"amount\": 5040,\n        \"price\": 14400,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 14388,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 14242,\n      },\n      {\n        \"amount\": 329,\n        \"price\": 14000,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 13987,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 13890,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 13647,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 13556.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 13400,\n      },\n      {\n        \"amount\": 1332,\n        \"price\": 13310,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 13250,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 13214,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 13200,\n      },\n      {\n        \"amount\": 150500,\n        \"price\": 13000,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 12979.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 12877,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 12820.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 12760,\n      },\n      {\n        \"amount\": 631,\n        \"price\": 12613,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 12547,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 12500,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 12400,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 12200,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 12192.5,\n      },\n      {\n        \"amount\": 1211,\n        \"price\": 12100,\n      },\n      {\n        \"amount\": 15848,\n        \"price\": 12000,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 11944,\n      },\n      {\n        \"amount\": 48,\n        \"price\": 11900,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 11890,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 11879,\n      },\n      {\n        \"amount\": 5162,\n        \"price\": 11876,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 11848.5,\n      },\n      {\n        \"amount\": 5348,\n        \"price\": 11800,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 11778.5,\n      },\n      {\n        \"amount\": 8189,\n        \"price\": 11777,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 11750,\n      },\n      {\n        \"amount\": 35148,\n        \"price\": 11700,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 11644,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 11605,\n      },\n      {\n        \"amount\": 348,\n        \"price\": 11600,\n      },\n      {\n        \"amount\": 1159,\n        \"price\": 11583,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 11582,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 11518,\n      },\n      {\n        \"amount\": 48548,\n        \"price\": 11500,\n      },\n      {\n        \"amount\": 348,\n        \"price\": 11400,\n      },\n      {\n        \"amount\": 48,\n        \"price\": 11300,\n      },\n      {\n        \"amount\": 50650,\n        \"price\": 11290,\n      },\n      {\n        \"amount\": 29,\n        \"price\": 11248.5,\n      },\n      {\n        \"amount\": 11000,\n        \"price\": 11209,\n      },\n      {\n        \"amount\": 348,\n        \"price\": 11200,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 11183,\n      },\n      {\n        \"amount\": 48,\n        \"price\": 11100,\n      },\n      {\n        \"amount\": 41308,\n        \"price\": 11000,\n      },\n      {\n        \"amount\": 28,\n        \"price\": 10968.5,\n      },\n      {\n        \"amount\": 80048,\n        \"price\": 10900,\n      },\n      {\n        \"amount\": 28,\n        \"price\": 10868.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 10815,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 10744,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 10712,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 10700,\n      },\n      {\n        \"amount\": 27,\n        \"price\": 10698.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 10625,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 10621,\n      },\n      {\n        \"amount\": 27,\n        \"price\": 10488.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 10444,\n      },\n      {\n        \"amount\": 1043,\n        \"price\": 10424,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 10368,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 10300,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 10250,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 10247,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 10168,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 10077,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 10075,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 10030,\n      },\n      {\n        \"amount\": 62863,\n        \"price\": 10000,\n      },\n      {\n        \"amount\": 274,\n        \"price\": 9995.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9990,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 9988.5,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 9987,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 9978,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 9964,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9940,\n      },\n      {\n        \"amount\": 125,\n        \"price\": 9906,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 9903,\n      },\n      {\n        \"amount\": 990,\n        \"price\": 9900,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 9890,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 9889,\n      },\n      {\n        \"amount\": 4180,\n        \"price\": 9850,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 9827,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 9800,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 9790,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 9788,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 9750,\n      },\n      {\n        \"amount\": 974,\n        \"price\": 9734,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 9722,\n      },\n      {\n        \"amount\": 32290,\n        \"price\": 9700,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 9697,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 9690,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 9685,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 9661,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 9650,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 9644.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 9629.5,\n      },\n      {\n        \"amount\": 1800,\n        \"price\": 9600,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 9590,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 9551.5,\n      },\n      {\n        \"amount\": 10590,\n        \"price\": 9500,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9499.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 9483.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 9471,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 9450,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 9439,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9416.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9415.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9415,\n      },\n      {\n        \"amount\": 86,\n        \"price\": 9402,\n      },\n      {\n        \"amount\": 501,\n        \"price\": 9400,\n      },\n      {\n        \"amount\": 202,\n        \"price\": 9399,\n      },\n      {\n        \"amount\": 2710,\n        \"price\": 9380,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 9348,\n      },\n      {\n        \"amount\": 467,\n        \"price\": 9330,\n      },\n      {\n        \"amount\": 125,\n        \"price\": 9326,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 9300,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 9291,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 9244,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 9243,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 9205,\n      },\n      {\n        \"amount\": 202,\n        \"price\": 9199.5,\n      },\n      {\n        \"amount\": 460,\n        \"price\": 9196,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 9182,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 9175,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 9100,\n      },\n      {\n        \"amount\": 1454,\n        \"price\": 9079,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9044.5,\n      },\n      {\n        \"amount\": 452,\n        \"price\": 9040,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 9021,\n      },\n      {\n        \"amount\": 17540,\n        \"price\": 9000,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 8999,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8990,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 8988,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8973,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8950,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 8946.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 8920,\n      },\n      {\n        \"amount\": 13650,\n        \"price\": 8906.5,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 8899,\n      },\n      {\n        \"amount\": 20800,\n        \"price\": 8888,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 8879,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 8869,\n      },\n      {\n        \"amount\": 4050,\n        \"price\": 8850,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 8848,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 8804.5,\n      },\n      {\n        \"amount\": 1470,\n        \"price\": 8799,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 8767,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 8758,\n      },\n      {\n        \"amount\": 310,\n        \"price\": 8750,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8706,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8700,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 8699,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8647.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8644,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8631,\n      },\n      {\n        \"amount\": 125,\n        \"price\": 8626,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 8600,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 8599,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 8588,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8567,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 8539.5,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 8516.5,\n      },\n      {\n        \"amount\": 1332,\n        \"price\": 8512.5,\n      },\n      {\n        \"amount\": 11100,\n        \"price\": 8500,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 8499,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8481,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8479,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 8459,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 8450,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8449,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 8444,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8427,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8425,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 8421.5,\n      },\n      {\n        \"amount\": 2541,\n        \"price\": 8400,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8399,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 8397,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 8377.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 8362.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8357.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8350,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 8349,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8344,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8306,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8300,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8299,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8261.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 8250,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8249,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 8215,\n      },\n      {\n        \"amount\": 2940,\n        \"price\": 8200,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8199,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 8175,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 8172,\n      },\n      {\n        \"amount\": 679,\n        \"price\": 8155,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8149.5,\n      },\n      {\n        \"amount\": 1206,\n        \"price\": 8149,\n      },\n      {\n        \"amount\": 1919,\n        \"price\": 8147,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8146.5,\n      },\n      {\n        \"amount\": 3034,\n        \"price\": 8146,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 8113.5,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 8113,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 8106.5,\n      },\n      {\n        \"amount\": 1350,\n        \"price\": 8100,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8099,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8049,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8044,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 8033,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 8023,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 8017.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 8010,\n      },\n      {\n        \"amount\": 32201,\n        \"price\": 8000,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7999,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7994,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7990,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 7988,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 7975,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7973,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 7950,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7949,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7941.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7928.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7923,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 7913,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7901,\n      },\n      {\n        \"amount\": 3680,\n        \"price\": 7900,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7899,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 7885,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 7875.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7873,\n      },\n      {\n        \"amount\": 1195,\n        \"price\": 7866.5,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 7865,\n      },\n      {\n        \"amount\": 2020,\n        \"price\": 7850,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7849,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7823,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 7806,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7800.5,\n      },\n      {\n        \"amount\": 366870,\n        \"price\": 7800,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7799,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7790.5,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 7788,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 7778,\n      },\n      {\n        \"amount\": 1111,\n        \"price\": 7777,\n      },\n      {\n        \"amount\": 650,\n        \"price\": 7767.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 7763,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7758.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7750,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 7749,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7744,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7736,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7731,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7700.5,\n      },\n      {\n        \"amount\": 5337,\n        \"price\": 7700,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 7699,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 7688,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 7685,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7680,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 7655,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 7650,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7649,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 7646,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7600.5,\n      },\n      {\n        \"amount\": 2370,\n        \"price\": 7600,\n      },\n      {\n        \"amount\": 3800,\n        \"price\": 7599,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 7596,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 7595,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7576,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7565.5,\n      },\n      {\n        \"amount\": 1213,\n        \"price\": 7563.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7562.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7550.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7549,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7548.5,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 7546,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 7525.5,\n      },\n      {\n        \"amount\": 245,\n        \"price\": 7524,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7506.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7500.5,\n      },\n      {\n        \"amount\": 26658,\n        \"price\": 7500,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 7499,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 7498,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 7495,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 7490,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 7480,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 7479,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 7471.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 7468,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 7464,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 7458.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7450.5,\n      },\n      {\n        \"amount\": 5020,\n        \"price\": 7450,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 7449,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 7446,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7444,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 7443,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 7430,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 7424,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 7420,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7400.5,\n      },\n      {\n        \"amount\": 149390,\n        \"price\": 7400,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7399.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7399,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7397.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7395.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7395,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 7393,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 7390,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7387,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7384,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 7380,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7376,\n      },\n      {\n        \"amount\": 2216,\n        \"price\": 7375.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7350.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7350,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7349,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 7343.5,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 7333,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 7324,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7300.5,\n      },\n      {\n        \"amount\": 470,\n        \"price\": 7300,\n      },\n      {\n        \"amount\": 7400,\n        \"price\": 7299,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7297,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 7288,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 7280,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7276,\n      },\n      {\n        \"amount\": 1232,\n        \"price\": 7273,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 7260,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7250.5,\n      },\n      {\n        \"amount\": 4320,\n        \"price\": 7250,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7249,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7248,\n      },\n      {\n        \"amount\": 10020,\n        \"price\": 7236,\n      },\n      {\n        \"amount\": 75100,\n        \"price\": 7200.5,\n      },\n      {\n        \"amount\": 1420,\n        \"price\": 7200,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7199,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7197,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7195,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7190,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 7185.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7176,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7175,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7167,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7166,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7150.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7149,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7144,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 7133,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7132,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 7109.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7100.5,\n      },\n      {\n        \"amount\": 1630,\n        \"price\": 7100,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7099,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 7090,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7077.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 7060,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7050.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 7050,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7049,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 7029,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 7028,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 7021,\n      },\n      {\n        \"amount\": 1075,\n        \"price\": 7020,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7000.5,\n      },\n      {\n        \"amount\": 3055,\n        \"price\": 7000,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6999,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 6996,\n      },\n      {\n        \"amount\": 1008,\n        \"price\": 6995,\n      },\n      {\n        \"amount\": 1251,\n        \"price\": 6993,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6991,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6990,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 6985,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 6984,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 6980,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6975,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6968,\n      },\n      {\n        \"amount\": 139,\n        \"price\": 6967,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 6958,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6950.5,\n      },\n      {\n        \"amount\": 4050,\n        \"price\": 6950,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6949,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6948,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6945,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6944,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6940,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6930,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6926,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6925,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 6924,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6919,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 6913,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6909,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6907.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6902,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6900.5,\n      },\n      {\n        \"amount\": 2379,\n        \"price\": 6900,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 6899.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6899,\n      },\n      {\n        \"amount\": 1008,\n        \"price\": 6895,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 6889,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 6888,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6887.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6880.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6880,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6879,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6875,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6874.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6874,\n      },\n      {\n        \"amount\": 9025,\n        \"price\": 6870,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6869,\n      },\n      {\n        \"amount\": 88,\n        \"price\": 6868,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6862.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6852,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6850.5,\n      },\n      {\n        \"amount\": 820,\n        \"price\": 6850,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6849,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6846.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6845,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6837.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6834.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6830,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 6829.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6825,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6824,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6820,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6818,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6812.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6809.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 6807.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6806,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6804,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6802,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6800.5,\n      },\n      {\n        \"amount\": 4559,\n        \"price\": 6800,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6799,\n      },\n      {\n        \"amount\": 385,\n        \"price\": 6798,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6796.5,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 6796,\n      },\n      {\n        \"amount\": 8,\n        \"price\": 6795,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 6788,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6787.5,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 6787,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6786,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6783,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6780,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6777,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6775,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6768,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6764.5,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 6764,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6762.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 6762,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6759.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6753,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6750.5,\n      },\n      {\n        \"amount\": 4285,\n        \"price\": 6750,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6749,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6745,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6744,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6742,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 6740,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6738,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6737.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6737,\n      },\n      {\n        \"amount\": 756,\n        \"price\": 6735,\n      },\n      {\n        \"amount\": 206,\n        \"price\": 6725,\n      },\n      {\n        \"amount\": 1270,\n        \"price\": 6724,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6723.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6723,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6715,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6714,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6712.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6711.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6710,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6709.5,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 6708.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6708,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6707,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6700.5,\n      },\n      {\n        \"amount\": 6430,\n        \"price\": 6700,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6699,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6695,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6693,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6691,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6690,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6687.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6682.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6681.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6678,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 6675.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6675,\n      },\n      {\n        \"amount\": 1320,\n        \"price\": 6670,\n      },\n      {\n        \"amount\": 12266,\n        \"price\": 6666,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 6665,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6664.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6663,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6662.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 6660,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6659.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6658,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6657,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6656,\n      },\n      {\n        \"amount\": 970,\n        \"price\": 6654,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6650.5,\n      },\n      {\n        \"amount\": 1330,\n        \"price\": 6650,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6649,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6648,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6645,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6637.5,\n      },\n      {\n        \"amount\": 88,\n        \"price\": 6637,\n      },\n      {\n        \"amount\": 135,\n        \"price\": 6636,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6633,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6632,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6630,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 6625.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6625,\n      },\n      {\n        \"amount\": 370,\n        \"price\": 6620,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6618,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6617,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6615,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6612.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6611,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6609.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6607,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6603.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6603,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6600.5,\n      },\n      {\n        \"amount\": 3880,\n        \"price\": 6600,\n      },\n      {\n        \"amount\": 2384,\n        \"price\": 6599,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6598,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6592.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 6590,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6589.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6588,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6587.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6587,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6581.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6580.5,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 6580,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 6578,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 6575.5,\n      },\n      {\n        \"amount\": 200050,\n        \"price\": 6575,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6573,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6567.5,\n      },\n      {\n        \"amount\": 10100,\n        \"price\": 6564.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6562,\n      },\n      {\n        \"amount\": 1830,\n        \"price\": 6560,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6558,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6555,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6554,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6553.5,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 6550,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6549,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 6548,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6545,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6544.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6544,\n      },\n      {\n        \"amount\": 341,\n        \"price\": 6543,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6542.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6541,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6540,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6537,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6534,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6531.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6530,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6528,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 6527,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6526.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6525,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6524.5,\n      },\n      {\n        \"amount\": 971,\n        \"price\": 6520,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6514,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6513,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6512.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 6510,\n      },\n      {\n        \"amount\": 2150,\n        \"price\": 6507.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6504.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6504,\n      },\n      {\n        \"amount\": 4106,\n        \"price\": 6500,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6499,\n      },\n      {\n        \"amount\": 18285,\n        \"price\": 6498,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6495,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6491.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6490,\n      },\n      {\n        \"amount\": 465,\n        \"price\": 6488,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6487.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6485,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6484.5,\n      },\n      {\n        \"amount\": 21869,\n        \"price\": 6483,\n      },\n      {\n        \"amount\": 3513,\n        \"price\": 6482,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 6480,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 6479,\n      },\n      {\n        \"amount\": 1691,\n        \"price\": 6477,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6475,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6474,\n      },\n      {\n        \"amount\": 170,\n        \"price\": 6470,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6468,\n      },\n      {\n        \"amount\": 1289,\n        \"price\": 6465.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6464.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6462.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6460,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6454,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6453,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6452,\n      },\n      {\n        \"amount\": 640,\n        \"price\": 6450,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6449,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6445,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6444.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6440,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6438.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6438,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6437.5,\n      },\n      {\n        \"amount\": 210,\n        \"price\": 6430,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6427,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6425,\n      },\n      {\n        \"amount\": 11584,\n        \"price\": 6424.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6424,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6423,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6421.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 6420,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6412.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 6410,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6408,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6404.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6404,\n      },\n      {\n        \"amount\": 34160,\n        \"price\": 6400,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6399,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6393,\n      },\n      {\n        \"amount\": 2340,\n        \"price\": 6390,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6389,\n      },\n      {\n        \"amount\": 8600,\n        \"price\": 6388,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6384.5,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 6383.5,\n      },\n      {\n        \"amount\": 290,\n        \"price\": 6380,\n      },\n      {\n        \"amount\": 989,\n        \"price\": 6378.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6378,\n      },\n      {\n        \"amount\": 161,\n        \"price\": 6375,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 6370,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6366.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6366,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6364.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6363,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6360.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 6360,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6359,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 6357.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6354,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 6350,\n      },\n      {\n        \"amount\": 114,\n        \"price\": 6348.5,\n      },\n      {\n        \"amount\": 808,\n        \"price\": 6348,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6347.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6346.5,\n      },\n      {\n        \"amount\": 114,\n        \"price\": 6346,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6345.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6345,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6344.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6343.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6341.5,\n      },\n      {\n        \"amount\": 114,\n        \"price\": 6341,\n      },\n      {\n        \"amount\": 114,\n        \"price\": 6339.5,\n      },\n      {\n        \"amount\": 171,\n        \"price\": 6338.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6338,\n      },\n      {\n        \"amount\": 171,\n        \"price\": 6337.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6336,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6334.5,\n      },\n      {\n        \"amount\": 684,\n        \"price\": 6334,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6333,\n      },\n      {\n        \"amount\": 507,\n        \"price\": 6330.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6330,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6328.5,\n      },\n      {\n        \"amount\": 171,\n        \"price\": 6327.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6326.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6325,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6324.5,\n      },\n      {\n        \"amount\": 2656,\n        \"price\": 6323.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6318,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 6317.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6308.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6308,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6304.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6303,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6302,\n      },\n      {\n        \"amount\": 3726,\n        \"price\": 6300,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6299,\n      },\n      {\n        \"amount\": 49,\n        \"price\": 6297,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6293.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6293,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6292,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6291.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6291,\n      },\n      {\n        \"amount\": 5120,\n        \"price\": 6290,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6289.5,\n      },\n      {\n        \"amount\": 785,\n        \"price\": 6288,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6284.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6283.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 6283,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 6282,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6280,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6279,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6275,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6273,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6272,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6271.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6271,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6270.5,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 6270,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6269,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6268,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6267,\n      },\n      {\n        \"amount\": 10900,\n        \"price\": 6264.5,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6263.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6260,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6259.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6258,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6255.5,\n      },\n      {\n        \"amount\": 1684,\n        \"price\": 6250.5,\n      },\n      {\n        \"amount\": 3550,\n        \"price\": 6250,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6249.5,\n      },\n      {\n        \"amount\": 3096,\n        \"price\": 6249,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 6246,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6244.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6244,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6243,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6240,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6239,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6233.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6230,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6228,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6225,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6224.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6220,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 6218.5,\n      },\n      {\n        \"amount\": 1309,\n        \"price\": 6217,\n      },\n      {\n        \"amount\": 645,\n        \"price\": 6216,\n      },\n      {\n        \"amount\": 8207,\n        \"price\": 6215,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6214,\n      },\n      {\n        \"amount\": 465,\n        \"price\": 6213,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6211,\n      },\n      {\n        \"amount\": 4160,\n        \"price\": 6210,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6209.5,\n      },\n      {\n        \"amount\": 766,\n        \"price\": 6205,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6204.5,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 6204,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 6202,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6201,\n      },\n      {\n        \"amount\": 70395,\n        \"price\": 6200,\n      },\n      {\n        \"amount\": 281,\n        \"price\": 6199,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6198,\n      },\n      {\n        \"amount\": 470,\n        \"price\": 6197.5,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6195,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6192.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6191.5,\n      },\n      {\n        \"amount\": 2240,\n        \"price\": 6190,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 6189,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6188,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6184.5,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6183.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6183,\n      },\n      {\n        \"amount\": 3450,\n        \"price\": 6182.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6182,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6181.5,\n      },\n      {\n        \"amount\": 440,\n        \"price\": 6180,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6178.5,\n      },\n      {\n        \"amount\": 75,\n        \"price\": 6175,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6170,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6168,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6160,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6153,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6152,\n      },\n      {\n        \"amount\": 1450,\n        \"price\": 6150,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6145,\n      },\n      {\n        \"amount\": 73,\n        \"price\": 6144,\n      },\n      {\n        \"amount\": 640,\n        \"price\": 6140,\n      },\n      {\n        \"amount\": 485,\n        \"price\": 6138,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6134.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6133.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6133,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6131,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6130,\n      },\n      {\n        \"amount\": 163,\n        \"price\": 6128,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6125,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6123,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 6121,\n      },\n      {\n        \"amount\": 160,\n        \"price\": 6120,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6118.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6118,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6117.5,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6113,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6110,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6108,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6105,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6103,\n      },\n      {\n        \"amount\": 3062,\n        \"price\": 6100,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6093,\n      },\n      {\n        \"amount\": 2164,\n        \"price\": 6090,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6081.5,\n      },\n      {\n        \"amount\": 5140,\n        \"price\": 6080,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6078,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6077.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6076.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6075.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6075,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 6074.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6070,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6066.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6063,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6060,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6056.5,\n      },\n      {\n        \"amount\": 65739,\n        \"price\": 6050,\n      },\n      {\n        \"amount\": 618,\n        \"price\": 6048,\n      },\n      {\n        \"amount\": 49,\n        \"price\": 6047,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6045,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6043,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6040,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6033,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6030,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6028,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6025,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6024,\n      },\n      {\n        \"amount\": 863,\n        \"price\": 6020,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6018.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6018,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6017.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 6011.5,\n      },\n      {\n        \"amount\": 640,\n        \"price\": 6010,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6003.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6003,\n      },\n      {\n        \"amount\": 29675,\n        \"price\": 6000,\n      },\n      {\n        \"amount\": 9500,\n        \"price\": 5999,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5996,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5994,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 5992,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5991,\n      },\n      {\n        \"amount\": 4465,\n        \"price\": 5990,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5989,\n      },\n      {\n        \"amount\": 9285,\n        \"price\": 5988,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 5986,\n      },\n      {\n        \"amount\": 123,\n        \"price\": 5984.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5984,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5982,\n      },\n      {\n        \"amount\": 1140,\n        \"price\": 5980,\n      },\n      {\n        \"amount\": 1329,\n        \"price\": 5977.5,\n      },\n      {\n        \"amount\": 10700,\n        \"price\": 5977,\n      },\n      {\n        \"amount\": 180000,\n        \"price\": 5976,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5975.5,\n      },\n      {\n        \"amount\": 246,\n        \"price\": 5975,\n      },\n      {\n        \"amount\": 9,\n        \"price\": 5973.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5973,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 5971.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5970,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5968.5,\n      },\n      {\n        \"amount\": 489,\n        \"price\": 5968,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5964,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5960.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5960,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5959.5,\n      },\n      {\n        \"amount\": 2285,\n        \"price\": 5958,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5956,\n      },\n      {\n        \"amount\": 2190,\n        \"price\": 5950,\n      },\n      {\n        \"amount\": 2150,\n        \"price\": 5945,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5944,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5943,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 5942,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5940,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5935,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5928,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5925,\n      },\n      {\n        \"amount\": 105,\n        \"price\": 5921,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 5920.5,\n      },\n      {\n        \"amount\": 540,\n        \"price\": 5920,\n      },\n      {\n        \"amount\": 8202,\n        \"price\": 5916,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5913,\n      },\n      {\n        \"amount\": 3040,\n        \"price\": 5910,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5905.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5902,\n      },\n      {\n        \"amount\": 3957,\n        \"price\": 5901.5,\n      },\n      {\n        \"amount\": 11280,\n        \"price\": 5900,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5898,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5894,\n      },\n      {\n        \"amount\": 2840,\n        \"price\": 5890,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5889,\n      },\n      {\n        \"amount\": 132,\n        \"price\": 5887,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5883,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5880,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 5879,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 5878,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5875,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5874.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5870,\n      },\n      {\n        \"amount\": 735,\n        \"price\": 5868,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 5866,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5865,\n      },\n      {\n        \"amount\": 55,\n        \"price\": 5861.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5860,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5859.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5853,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5852,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5850.5,\n      },\n      {\n        \"amount\": 8250,\n        \"price\": 5850,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5845,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5844,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5843.5,\n      },\n      {\n        \"amount\": 16,\n        \"price\": 5843,\n      },\n      {\n        \"amount\": 325,\n        \"price\": 5841,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 5840.5,\n      },\n      {\n        \"amount\": 5240,\n        \"price\": 5840,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5838,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 5837,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5836.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 5835,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 5834,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5832,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5831,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5830,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5825,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 5824,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 5823.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5823,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5822,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5820,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5819,\n      },\n      {\n        \"amount\": 180,\n        \"price\": 5815,\n      },\n      {\n        \"amount\": 256,\n        \"price\": 5813.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5810,\n      },\n      {\n        \"amount\": 6100,\n        \"price\": 5809.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5808,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5806.5,\n      },\n      {\n        \"amount\": 1970,\n        \"price\": 5801.5,\n      },\n      {\n        \"amount\": 130,\n        \"price\": 5801,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5800.5,\n      },\n      {\n        \"amount\": 14425,\n        \"price\": 5800,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 5799,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5796.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5794,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5793,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5792.5,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 5792,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5791,\n      },\n      {\n        \"amount\": 2540,\n        \"price\": 5790,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 5789.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5789,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 5788,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5786,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5785.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5785,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5782,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5781.5,\n      },\n      {\n        \"amount\": 17400,\n        \"price\": 5780,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5779.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 5779,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5778,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5777,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 5775.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5775,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5772,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 5770,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5769,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5766.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5766,\n      },\n      {\n        \"amount\": 305,\n        \"price\": 5763,\n      },\n      {\n        \"amount\": 740,\n        \"price\": 5761.5,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 5760.5,\n      },\n      {\n        \"amount\": 1090,\n        \"price\": 5760,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5756.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 5753.5,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5753,\n      },\n      {\n        \"amount\": 32335,\n        \"price\": 5750,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5749.5,\n      },\n      {\n        \"amount\": 7285,\n        \"price\": 5748,\n      },\n      {\n        \"amount\": 1649,\n        \"price\": 5747.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5745,\n      },\n      {\n        \"amount\": 1315,\n        \"price\": 5744,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5743,\n      },\n      {\n        \"amount\": 2090,\n        \"price\": 5740,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5733,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5732,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5731.5,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5730,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5728,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5727.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5726,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5725,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5722.5,\n      },\n      {\n        \"amount\": 8618,\n        \"price\": 5720,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5719,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5718,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5717.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5715.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5712,\n      },\n      {\n        \"amount\": 7640,\n        \"price\": 5710,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5709.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5707,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5706.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5705,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5703,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5702.5,\n      },\n      {\n        \"amount\": 37530,\n        \"price\": 5700,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5699,\n      },\n      {\n        \"amount\": 7310,\n        \"price\": 5698,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 5697.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5697,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 5694,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5692,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 5690.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5690,\n      },\n      {\n        \"amount\": 236,\n        \"price\": 5689,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5688,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5687.5,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5687,\n      },\n      {\n        \"amount\": 371,\n        \"price\": 5680,\n      },\n      {\n        \"amount\": 6677,\n        \"price\": 5677,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 5675,\n      },\n      {\n        \"amount\": 2174,\n        \"price\": 5670,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5669.5,\n      },\n      {\n        \"amount\": 313,\n        \"price\": 5667,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 5666,\n      },\n      {\n        \"amount\": 2210,\n        \"price\": 5660,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5657.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5656,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5655.5,\n      },\n      {\n        \"amount\": 11966,\n        \"price\": 5650.5,\n      },\n      {\n        \"amount\": 9885,\n        \"price\": 5650,\n      },\n      {\n        \"amount\": 18700,\n        \"price\": 5649,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5647,\n      },\n      {\n        \"amount\": 675,\n        \"price\": 5645,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 5643.5,\n      },\n      {\n        \"amount\": 190,\n        \"price\": 5640,\n      },\n      {\n        \"amount\": 320,\n        \"price\": 5639.5,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5637,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 5633,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5631.5,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5630,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 5629.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5629,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5628,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5627,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5625,\n      },\n      {\n        \"amount\": 4300,\n        \"price\": 5624.5,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5620,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5619,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5613,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5612.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5612,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5611.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5611,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5610,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5607,\n      },\n      {\n        \"amount\": 1045,\n        \"price\": 5604,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 5602.5,\n      },\n      {\n        \"amount\": 8990,\n        \"price\": 5600,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5599,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5597,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5593,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5592.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5591,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5590,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5589,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 5588,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5587.5,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5587,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5584,\n      },\n      {\n        \"amount\": 10090,\n        \"price\": 5580,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5577,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5576,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5575,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5570.5,\n      },\n      {\n        \"amount\": 190,\n        \"price\": 5570,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5567,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 5564,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5560,\n      },\n      {\n        \"amount\": 28,\n        \"price\": 5558,\n      },\n      {\n        \"amount\": 105,\n        \"price\": 5557,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5555,\n      },\n      {\n        \"amount\": 2777,\n        \"price\": 5554.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5554,\n      },\n      {\n        \"amount\": 18000,\n        \"price\": 5553.5,\n      },\n      {\n        \"amount\": 3745,\n        \"price\": 5553,\n      },\n      {\n        \"amount\": 11966,\n        \"price\": 5550.5,\n      },\n      {\n        \"amount\": 381050,\n        \"price\": 5550,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 5549.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5548,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5547.5,\n      },\n      {\n        \"amount\": 275,\n        \"price\": 5547,\n      },\n      {\n        \"amount\": 35000,\n        \"price\": 5546.5,\n      },\n      {\n        \"amount\": 24650,\n        \"price\": 5545,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 5544,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5540,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5538.5,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 5538,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5537,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 5533,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5530,\n      },\n      {\n        \"amount\": 186,\n        \"price\": 5528.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5528,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5527,\n      },\n      {\n        \"amount\": 1369,\n        \"price\": 5526.5,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 5525,\n      },\n      {\n        \"amount\": 3721,\n        \"price\": 5520,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5518.5,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5517,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5516.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5515,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 5513.5,\n      },\n      {\n        \"amount\": 556,\n        \"price\": 5510,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5509,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5507,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5504.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 5503,\n      },\n      {\n        \"amount\": 100959,\n        \"price\": 5500,\n      },\n      {\n        \"amount\": 780,\n        \"price\": 5499,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5497.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5496.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5496,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5495,\n      },\n      {\n        \"amount\": 180000,\n        \"price\": 5494,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 5490,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 5489,\n      },\n      {\n        \"amount\": 65510,\n        \"price\": 5488,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5487.5,\n      },\n      {\n        \"amount\": 275,\n        \"price\": 5487,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5485,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 5480,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5478,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5477,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 5475,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5474.5,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 5473,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5470,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5469,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5468.5,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 5466,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 5463,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5462.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5461.5,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 5460,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5458.5,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 5455,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 5454,\n      },\n      {\n        \"amount\": 11966,\n        \"price\": 5450.5,\n      },\n      {\n        \"amount\": 7875,\n        \"price\": 5450,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5449,\n      },\n      {\n        \"amount\": 650,\n        \"price\": 5445,\n      },\n      {\n        \"amount\": 10206,\n        \"price\": 5444,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5443,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5441.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5440,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5439.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5439,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5438,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5437,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5433,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5431.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5430.5,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5430,\n      },\n      {\n        \"amount\": 405,\n        \"price\": 5428,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5425,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5424,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 5421.5,\n      },\n      {\n        \"amount\": 3595,\n        \"price\": 5420,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5419,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5416.5,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 5416,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 5413,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5412.5,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 5410,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 5409.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5406.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5406,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5405,\n      },\n      {\n        \"amount\": 1288,\n        \"price\": 5401,\n      },\n      {\n        \"amount\": 86002,\n        \"price\": 5400,\n      },\n      {\n        \"amount\": 127,\n        \"price\": 5399,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5398,\n      },\n      {\n        \"amount\": 2040,\n        \"price\": 5397.5,\n      },\n      {\n        \"amount\": 60150,\n        \"price\": 5397,\n      },\n      {\n        \"amount\": 165,\n        \"price\": 5395,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5394,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5392,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5390,\n      },\n      {\n        \"amount\": 85900,\n        \"price\": 5389,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5388.5,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 5388,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 5387.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5387,\n      },\n      {\n        \"amount\": 61020,\n        \"price\": 5386.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5385.5,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 5384,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5383,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5382.5,\n      },\n      {\n        \"amount\": 7774,\n        \"price\": 5380,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5379,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5378,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5377.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5375,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5370,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5368,\n      },\n      {\n        \"amount\": 538,\n        \"price\": 5363,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5361,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5360,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5356.5,\n      },\n      {\n        \"amount\": 11966,\n        \"price\": 5350.5,\n      },\n      {\n        \"amount\": 21655,\n        \"price\": 5350,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5348.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5345,\n      },\n      {\n        \"amount\": 1098,\n        \"price\": 5344,\n      },\n      {\n        \"amount\": 501,\n        \"price\": 5342,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5340,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5338.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5335,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5334,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 5333,\n      },\n      {\n        \"amount\": 333,\n        \"price\": 5332.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5331,\n      },\n      {\n        \"amount\": 11090,\n        \"price\": 5330,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 5328.5,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5327.5,\n      },\n      {\n        \"amount\": 4480,\n        \"price\": 5327,\n      },\n      {\n        \"amount\": 338,\n        \"price\": 5325,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5323.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5322,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5321,\n      },\n      {\n        \"amount\": 1090,\n        \"price\": 5320,\n      },\n      {\n        \"amount\": 14,\n        \"price\": 5318,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 5317,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5316,\n      },\n      {\n        \"amount\": 300000,\n        \"price\": 5315,\n      },\n      {\n        \"amount\": 1590,\n        \"price\": 5314,\n      },\n      {\n        \"amount\": 1078,\n        \"price\": 5313,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5312.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 5310,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5308,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 5306.5,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 5305.5,\n      },\n      {\n        \"amount\": 556,\n        \"price\": 5301.5,\n      },\n      {\n        \"amount\": 23225,\n        \"price\": 5300,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5299.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5299,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5298,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5297.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5297,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 5295,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 5294,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5293.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5290,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 5289,\n      },\n      {\n        \"amount\": 20209,\n        \"price\": 5287,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5286,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5283.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5282,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5281,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 5280.5,\n      },\n      {\n        \"amount\": 190,\n        \"price\": 5280,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5279.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5275,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5273.5,\n      },\n      {\n        \"amount\": 1992,\n        \"price\": 5270.5,\n      },\n      {\n        \"amount\": 8500,\n        \"price\": 5270,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5267,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5266,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5264.5,\n      },\n      {\n        \"amount\": 111,\n        \"price\": 5264,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5263.5,\n      },\n      {\n        \"amount\": 3957,\n        \"price\": 5263,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5260,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5258.5,\n      },\n      {\n        \"amount\": 2630,\n        \"price\": 5258,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5253,\n      },\n      {\n        \"amount\": 37400,\n        \"price\": 5250,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5249,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 5248.5,\n      },\n      {\n        \"amount\": 5538,\n        \"price\": 5248,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5245,\n      },\n      {\n        \"amount\": 16455,\n        \"price\": 5244,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5243,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 5241.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5241,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 5240.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5240,\n      },\n      {\n        \"amount\": 16000,\n        \"price\": 5234.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5230,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5227,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 5226,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5225,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 5224,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5223.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5223,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 5222,\n      },\n      {\n        \"amount\": 13022,\n        \"price\": 5220,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5219,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 5218.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5218,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5216.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5216,\n      },\n      {\n        \"amount\": 618,\n        \"price\": 5214,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5213.5,\n      },\n      {\n        \"amount\": 378,\n        \"price\": 5210,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5206,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5205.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5205,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5201.5,\n      },\n      {\n        \"amount\": 77866,\n        \"price\": 5200,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5199.5,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5198,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5196.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5195,\n      },\n      {\n        \"amount\": 88,\n        \"price\": 5194.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5193.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5192.5,\n      },\n      {\n        \"amount\": 10740,\n        \"price\": 5190,\n      },\n      {\n        \"amount\": 1090,\n        \"price\": 5189,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5188.5,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 5188,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 5187.5,\n      },\n      {\n        \"amount\": 72,\n        \"price\": 5185,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5182.5,\n      },\n      {\n        \"amount\": 180,\n        \"price\": 5181,\n      },\n      {\n        \"amount\": 12450,\n        \"price\": 5180,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5179.5,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 5179,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5178,\n      },\n      {\n        \"amount\": 309,\n        \"price\": 5176.5,\n      },\n      {\n        \"amount\": 668,\n        \"price\": 5176,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5175.5,\n      },\n      {\n        \"amount\": 13550,\n        \"price\": 5175,\n      },\n      {\n        \"amount\": 2538,\n        \"price\": 5172,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 5171,\n      },\n      {\n        \"amount\": 690,\n        \"price\": 5170,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5168.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5167,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 5165,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 5163.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5162,\n      },\n      {\n        \"amount\": 7138,\n        \"price\": 5160,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5159,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5158.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5156,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5155.5,\n      },\n      {\n        \"amount\": 930,\n        \"price\": 5153,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5152,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5151.5,\n      },\n      {\n        \"amount\": 64040,\n        \"price\": 5150,\n      },\n      {\n        \"amount\": 18,\n        \"price\": 5149.5,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 5148.5,\n      },\n      {\n        \"amount\": 1604,\n        \"price\": 5147.5,\n      },\n      {\n        \"amount\": 3517,\n        \"price\": 5147,\n      },\n      {\n        \"amount\": 5800,\n        \"price\": 5146,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5145.5,\n      },\n      {\n        \"amount\": 185,\n        \"price\": 5145,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 5144,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5143.5,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 5143,\n      },\n      {\n        \"amount\": 19495,\n        \"price\": 5142,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5140.5,\n      },\n      {\n        \"amount\": 65140,\n        \"price\": 5140,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5139.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5139,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5138,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5137.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 5136,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5135,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5134,\n      },\n      {\n        \"amount\": 1570,\n        \"price\": 5130,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 5129.5,\n      },\n      {\n        \"amount\": 18,\n        \"price\": 5129,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5128,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5125,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 5124.5,\n      },\n      {\n        \"amount\": 20050,\n        \"price\": 5124,\n      },\n      {\n        \"amount\": 370,\n        \"price\": 5123.5,\n      },\n      {\n        \"amount\": 490,\n        \"price\": 5120,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5119,\n      },\n      {\n        \"amount\": 48,\n        \"price\": 5118,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 5116.5,\n      },\n      {\n        \"amount\": 12500,\n        \"price\": 5114.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5113.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5113,\n      },\n      {\n        \"amount\": 13100,\n        \"price\": 5111,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 5110,\n      },\n      {\n        \"amount\": 1412,\n        \"price\": 5109.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 5100.5,\n      },\n      {\n        \"amount\": 143584,\n        \"price\": 5100,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5099.5,\n      },\n      {\n        \"amount\": 6300,\n        \"price\": 5099,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 5096.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5096,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5095,\n      },\n      {\n        \"amount\": 19314,\n        \"price\": 5091,\n      },\n      {\n        \"amount\": 5140,\n        \"price\": 5090,\n      },\n      {\n        \"amount\": 3584,\n        \"price\": 5089.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5089,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5087.5,\n      },\n      {\n        \"amount\": 2250,\n        \"price\": 5087,\n      },\n      {\n        \"amount\": 62000,\n        \"price\": 5086.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5086,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5084.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5083,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5081.5,\n      },\n      {\n        \"amount\": 9090,\n        \"price\": 5080,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 5079,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5077,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5075,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5073,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5071,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 5070,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5066.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5065,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5062.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 5060,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5058,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5055,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 5054.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5054,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5052,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5051.5,\n      },\n      {\n        \"amount\": 12600,\n        \"price\": 5050,\n      },\n      {\n        \"amount\": 3634,\n        \"price\": 5048,\n      },\n      {\n        \"amount\": 17449,\n        \"price\": 5047.5,\n      },\n      {\n        \"amount\": 200100,\n        \"price\": 5045,\n      },\n      {\n        \"amount\": 33700,\n        \"price\": 5043,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5042.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 5041,\n      },\n      {\n        \"amount\": 10325,\n        \"price\": 5040,\n      },\n      {\n        \"amount\": 3010,\n        \"price\": 5038,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5037.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5037,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5034,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 5033,\n      },\n      {\n        \"amount\": 11584,\n        \"price\": 5031.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5031,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5030.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 5030,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5028.5,\n      },\n      {\n        \"amount\": 1450,\n        \"price\": 5027.5,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 5027,\n      },\n      {\n        \"amount\": 363,\n        \"price\": 5025,\n      },\n      {\n        \"amount\": 616,\n        \"price\": 5023.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5021.5,\n      },\n      {\n        \"amount\": 1771,\n        \"price\": 5020,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5019.5,\n      },\n      {\n        \"amount\": 4639,\n        \"price\": 5014,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5012.5,\n      },\n      {\n        \"amount\": 2322,\n        \"price\": 5012,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5011.5,\n      },\n      {\n        \"amount\": 70040,\n        \"price\": 5010,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 5008,\n      },\n      {\n        \"amount\": 44,\n        \"price\": 5005.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5003.5,\n      },\n      {\n        \"amount\": 4830,\n        \"price\": 5003,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5002.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5002,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 5000.5,\n      },\n      {\n        \"amount\": 173618,\n        \"price\": 5000,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4999.5,\n      },\n      {\n        \"amount\": 27345,\n        \"price\": 4999,\n      },\n      {\n        \"amount\": 2110,\n        \"price\": 4998.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 4998,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4997.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4997,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4996,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4995.5,\n      },\n      {\n        \"amount\": 19099,\n        \"price\": 4995,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4994,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 4993,\n      },\n      {\n        \"amount\": 905,\n        \"price\": 4990,\n      },\n      {\n        \"amount\": 3010,\n        \"price\": 4989.5,\n      },\n      {\n        \"amount\": 300100,\n        \"price\": 4989,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4988.5,\n      },\n      {\n        \"amount\": 139288,\n        \"price\": 4988,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4987.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4987,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 4986,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4985,\n      },\n      {\n        \"amount\": 16300,\n        \"price\": 4984,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4983,\n      },\n      {\n        \"amount\": 8732,\n        \"price\": 4982,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4981.5,\n      },\n      {\n        \"amount\": 52179,\n        \"price\": 4980,\n      },\n      {\n        \"amount\": 35,\n        \"price\": 4979,\n      },\n      {\n        \"amount\": 5410,\n        \"price\": 4978,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4977,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4976.5,\n      },\n      {\n        \"amount\": 1361,\n        \"price\": 4975,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 4973.5,\n      },\n      {\n        \"amount\": 3957,\n        \"price\": 4973,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 4970,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4968,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4967.5,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 4966.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4966,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 4965.5,\n      },\n      {\n        \"amount\": 845,\n        \"price\": 4965,\n      },\n      {\n        \"amount\": 10250,\n        \"price\": 4964,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 4963,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4962.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4960.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4960,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4958,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4957,\n      },\n      {\n        \"amount\": 39000,\n        \"price\": 4955,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4953.5,\n      },\n      {\n        \"amount\": 27,\n        \"price\": 4953,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 4951,\n      },\n      {\n        \"amount\": 3984,\n        \"price\": 4950.5,\n      },\n      {\n        \"amount\": 130839,\n        \"price\": 4950,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4949.5,\n      },\n      {\n        \"amount\": 3050,\n        \"price\": 4949,\n      },\n      {\n        \"amount\": 2900,\n        \"price\": 4948,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4947,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 4946,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4945,\n      },\n      {\n        \"amount\": 22288,\n        \"price\": 4944,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4943,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4941.5,\n      },\n      {\n        \"amount\": 3010,\n        \"price\": 4941,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4940.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4940,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 4939.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4938,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 4937,\n      },\n      {\n        \"amount\": 7,\n        \"price\": 4934.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4934,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4933,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4932.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 4931.5,\n      },\n      {\n        \"amount\": 40950,\n        \"price\": 4930,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4928,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4927,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4925.5,\n      },\n      {\n        \"amount\": 7050,\n        \"price\": 4925,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4924,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4923.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 4923,\n      },\n      {\n        \"amount\": 3600,\n        \"price\": 4922.5,\n      },\n      {\n        \"amount\": 12300,\n        \"price\": 4920,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 4919,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 4918,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 4916.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 4915.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4915,\n      },\n      {\n        \"amount\": 1506,\n        \"price\": 4913,\n      },\n      {\n        \"amount\": 812,\n        \"price\": 4912,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4909.5,\n      },\n      {\n        \"amount\": 49,\n        \"price\": 4909,\n      },\n      {\n        \"amount\": 1480,\n        \"price\": 4908,\n      },\n      {\n        \"amount\": 552,\n        \"price\": 4907.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4907,\n      },\n      {\n        \"amount\": 52,\n        \"price\": 4906.5,\n      },\n      {\n        \"amount\": 468,\n        \"price\": 4906,\n      },\n      {\n        \"amount\": 5700,\n        \"price\": 4905.5,\n      },\n      {\n        \"amount\": 19,\n        \"price\": 4904.5,\n      },\n      {\n        \"amount\": 22316,\n        \"price\": 4903,\n      },\n      {\n        \"amount\": 3890,\n        \"price\": 4902,\n      },\n      {\n        \"amount\": 2061,\n        \"price\": 4901.5,\n      },\n      {\n        \"amount\": 2041,\n        \"price\": 4901,\n      },\n      {\n        \"amount\": 1216,\n        \"price\": 4900.5,\n      },\n      {\n        \"amount\": 989800,\n        \"price\": 4900,\n      },\n      {\n        \"amount\": 16331,\n        \"price\": 4899,\n      },\n      {\n        \"amount\": 577,\n        \"price\": 4898.5,\n      },\n      {\n        \"amount\": 18363,\n        \"price\": 4898,\n      },\n      {\n        \"amount\": 41,\n        \"price\": 4897.5,\n      },\n      {\n        \"amount\": 301,\n        \"price\": 4897,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 4896,\n      },\n      {\n        \"amount\": 2215,\n        \"price\": 4895,\n      },\n      {\n        \"amount\": 171,\n        \"price\": 4894.5,\n      },\n      {\n        \"amount\": 1800,\n        \"price\": 4894,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4893.5,\n      },\n      {\n        \"amount\": 12680,\n        \"price\": 4893,\n      },\n      {\n        \"amount\": 3264,\n        \"price\": 4892.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4892,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4891,\n      },\n      {\n        \"amount\": 6520,\n        \"price\": 4890,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4889.5,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 4889,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 4888.5,\n      },\n      {\n        \"amount\": 24251,\n        \"price\": 4888,\n      },\n      {\n        \"amount\": 1257,\n        \"price\": 4887.5,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4886.5,\n      },\n      {\n        \"amount\": 58,\n        \"price\": 4886,\n      },\n      {\n        \"amount\": 69,\n        \"price\": 4885.5,\n      },\n      {\n        \"amount\": 1203,\n        \"price\": 4885,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4884,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4883,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4881.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4880.5,\n      },\n      {\n        \"amount\": 925,\n        \"price\": 4880,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4879.5,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 4879,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4878.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4876,\n      },\n      {\n        \"amount\": 27066,\n        \"price\": 4875,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4874,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4873,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4872,\n      },\n      {\n        \"amount\": 10160,\n        \"price\": 4871,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4870,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4869,\n      },\n      {\n        \"amount\": 788,\n        \"price\": 4868,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4867,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4865,\n      },\n      {\n        \"amount\": 2700,\n        \"price\": 4863.5,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 4863,\n      },\n      {\n        \"amount\": 3589,\n        \"price\": 4862,\n      },\n      {\n        \"amount\": 10001,\n        \"price\": 4861.5,\n      },\n      {\n        \"amount\": 4080,\n        \"price\": 4860,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 4859,\n      },\n      {\n        \"amount\": 5700,\n        \"price\": 4858,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 4857.5,\n      },\n      {\n        \"amount\": 1350,\n        \"price\": 4857,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4856.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4855.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4855,\n      },\n      {\n        \"amount\": 3634,\n        \"price\": 4853.5,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 4851,\n      },\n      {\n        \"amount\": 274496,\n        \"price\": 4850,\n      },\n      {\n        \"amount\": 10300,\n        \"price\": 4849.5,\n      },\n      {\n        \"amount\": 11000,\n        \"price\": 4849,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4848.5,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4848,\n      },\n      {\n        \"amount\": 11008,\n        \"price\": 4847,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4846,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 4845.5,\n      },\n      {\n        \"amount\": 2450,\n        \"price\": 4845,\n      },\n      {\n        \"amount\": 2422,\n        \"price\": 4844.5,\n      },\n      {\n        \"amount\": 13010,\n        \"price\": 4844,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 4843,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4842.5,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 4841.5,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 4841,\n      },\n      {\n        \"amount\": 39900,\n        \"price\": 4840,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4839.5,\n      },\n      {\n        \"amount\": 14900,\n        \"price\": 4836.5,\n      },\n      {\n        \"amount\": 5380,\n        \"price\": 4836,\n      },\n      {\n        \"amount\": 100655,\n        \"price\": 4833,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4832.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4830.5,\n      },\n      {\n        \"amount\": 53138,\n        \"price\": 4830,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4828,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4826.5,\n      },\n      {\n        \"amount\": 3020,\n        \"price\": 4826,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4825,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4824,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 4822.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4822,\n      },\n      {\n        \"amount\": 6440,\n        \"price\": 4821.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4821,\n      },\n      {\n        \"amount\": 300650,\n        \"price\": 4820,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4819.5,\n      },\n      {\n        \"amount\": 11008,\n        \"price\": 4819,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4818.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4818,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4817.5,\n      },\n      {\n        \"amount\": 58000,\n        \"price\": 4817,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4816,\n      },\n      {\n        \"amount\": 188,\n        \"price\": 4813.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4812.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4811.5,\n      },\n      {\n        \"amount\": 3428,\n        \"price\": 4810,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4807.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4807,\n      },\n      {\n        \"amount\": 3763,\n        \"price\": 4805.5,\n      },\n      {\n        \"amount\": 3634,\n        \"price\": 4805,\n      },\n      {\n        \"amount\": 68300,\n        \"price\": 4804,\n      },\n      {\n        \"amount\": 100020,\n        \"price\": 4802,\n      },\n      {\n        \"amount\": 770,\n        \"price\": 4800.5,\n      },\n      {\n        \"amount\": 138932,\n        \"price\": 4800,\n      },\n      {\n        \"amount\": 2584,\n        \"price\": 4799.5,\n      },\n      {\n        \"amount\": 19060,\n        \"price\": 4799,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4798.5,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4798,\n      },\n      {\n        \"amount\": 44,\n        \"price\": 4797,\n      },\n      {\n        \"amount\": 3010,\n        \"price\": 4796,\n      },\n      {\n        \"amount\": 865,\n        \"price\": 4795,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 4794,\n      },\n      {\n        \"amount\": 1030,\n        \"price\": 4793,\n      },\n      {\n        \"amount\": 1103,\n        \"price\": 4792,\n      },\n      {\n        \"amount\": 5504,\n        \"price\": 4791,\n      },\n      {\n        \"amount\": 31360,\n        \"price\": 4790,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 4789,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 4788.5,\n      },\n      {\n        \"amount\": 53488,\n        \"price\": 4788,\n      },\n      {\n        \"amount\": 368,\n        \"price\": 4787,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4786.5,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 4786,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4785,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 4784.5,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 4783.5,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 4783,\n      },\n      {\n        \"amount\": 101000,\n        \"price\": 4782,\n      },\n      {\n        \"amount\": 14471,\n        \"price\": 4781.5,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 4780.5,\n      },\n      {\n        \"amount\": 4213,\n        \"price\": 4780,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4778,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4777.5,\n      },\n      {\n        \"amount\": 104650,\n        \"price\": 4777,\n      },\n      {\n        \"amount\": 16550,\n        \"price\": 4776,\n      },\n      {\n        \"amount\": 11929,\n        \"price\": 4775.5,\n      },\n      {\n        \"amount\": 17050,\n        \"price\": 4775,\n      },\n      {\n        \"amount\": 12050,\n        \"price\": 4774,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 4771,\n      },\n      {\n        \"amount\": 850,\n        \"price\": 4770,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 4769.5,\n      },\n      {\n        \"amount\": 1420,\n        \"price\": 4768.5,\n      },\n      {\n        \"amount\": 684,\n        \"price\": 4768,\n      },\n      {\n        \"amount\": 3763,\n        \"price\": 4767,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 4766.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4765,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4763.5,\n      },\n      {\n        \"amount\": 10524,\n        \"price\": 4763,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4762.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4761.5,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 4761,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 4760.5,\n      },\n      {\n        \"amount\": 1150,\n        \"price\": 4760,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 4759,\n      },\n      {\n        \"amount\": 14000,\n        \"price\": 4758,\n      },\n      {\n        \"amount\": 410,\n        \"price\": 4757,\n      },\n      {\n        \"amount\": 3634,\n        \"price\": 4756.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4756,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4755.5,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4755,\n      },\n      {\n        \"amount\": 538,\n        \"price\": 4754,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4753.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4751,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4750.5,\n      },\n      {\n        \"amount\": 555058,\n        \"price\": 4750,\n      },\n      {\n        \"amount\": 14920,\n        \"price\": 4749,\n      },\n      {\n        \"amount\": 3200,\n        \"price\": 4748,\n      },\n      {\n        \"amount\": 3010,\n        \"price\": 4747.5,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 4747,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4746.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4745,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4744.5,\n      },\n      {\n        \"amount\": 41200,\n        \"price\": 4744,\n      },\n      {\n        \"amount\": 40100,\n        \"price\": 4743.5,\n      },\n      {\n        \"amount\": 3824,\n        \"price\": 4741,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4740.5,\n      },\n      {\n        \"amount\": 47040,\n        \"price\": 4740,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4739.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4737.5,\n      },\n      {\n        \"amount\": 60808,\n        \"price\": 4737,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4736.5,\n      },\n      {\n        \"amount\": 25984,\n        \"price\": 4736,\n      },\n      {\n        \"amount\": 180,\n        \"price\": 4735.5,\n      },\n      {\n        \"amount\": 7052,\n        \"price\": 4735,\n      },\n      {\n        \"amount\": 89100,\n        \"price\": 4734,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 4733.5,\n      },\n      {\n        \"amount\": 5025,\n        \"price\": 4733,\n      },\n      {\n        \"amount\": 130872,\n        \"price\": 4732,\n      },\n      {\n        \"amount\": 33046,\n        \"price\": 4730.5,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4729,\n      },\n      {\n        \"amount\": 6763,\n        \"price\": 4728,\n      },\n      {\n        \"amount\": 65286,\n        \"price\": 4727,\n      },\n      {\n        \"amount\": 1011350,\n        \"price\": 4725,\n      },\n      {\n        \"amount\": 11455,\n        \"price\": 4724,\n      },\n      {\n        \"amount\": 10400,\n        \"price\": 4723.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4722,\n      },\n      {\n        \"amount\": 5270,\n        \"price\": 4721.5,\n      },\n      {\n        \"amount\": 31000,\n        \"price\": 4721,\n      },\n      {\n        \"amount\": 11873,\n        \"price\": 4720,\n      },\n      {\n        \"amount\": 475,\n        \"price\": 4719,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4717.5,\n      },\n      {\n        \"amount\": 101,\n        \"price\": 4717,\n      },\n      {\n        \"amount\": 13664,\n        \"price\": 4716,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4714,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4713,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4712.5,\n      },\n      {\n        \"amount\": 2850,\n        \"price\": 4712,\n      },\n      {\n        \"amount\": 10124,\n        \"price\": 4711.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4711,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4710,\n      },\n      {\n        \"amount\": 1572,\n        \"price\": 4709,\n      },\n      {\n        \"amount\": 11634,\n        \"price\": 4708,\n      },\n      {\n        \"amount\": 2752,\n        \"price\": 4707,\n      },\n      {\n        \"amount\": 40960,\n        \"price\": 4705,\n      },\n      {\n        \"amount\": 384,\n        \"price\": 4704,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 4703.5,\n      },\n      {\n        \"amount\": 23300,\n        \"price\": 4703,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4702,\n      },\n      {\n        \"amount\": 4900,\n        \"price\": 4701,\n      },\n      {\n        \"amount\": 770,\n        \"price\": 4700.5,\n      },\n      {\n        \"amount\": 3125665,\n        \"price\": 4700,\n      },\n      {\n        \"amount\": 7310,\n        \"price\": 4699,\n      },\n      {\n        \"amount\": 8999,\n        \"price\": 4698,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4697.5,\n      },\n      {\n        \"amount\": 101,\n        \"price\": 4697,\n      },\n      {\n        \"amount\": 1300,\n        \"price\": 4696,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4695.5,\n      },\n      {\n        \"amount\": 20600,\n        \"price\": 4695,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4694.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4694,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4692.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4691.5,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 4691,\n      },\n      {\n        \"amount\": 20209,\n        \"price\": 4690,\n      },\n      {\n        \"amount\": 1235,\n        \"price\": 4689.5,\n      },\n      {\n        \"amount\": 15366,\n        \"price\": 4689,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4688.5,\n      },\n      {\n        \"amount\": 94062,\n        \"price\": 4688,\n      },\n      {\n        \"amount\": 1300,\n        \"price\": 4687.5,\n      },\n      {\n        \"amount\": 4787,\n        \"price\": 4686,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 4685,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4684,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 4683,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4682.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4681.5,\n      },\n      {\n        \"amount\": 144000,\n        \"price\": 4680.5,\n      },\n      {\n        \"amount\": 8050,\n        \"price\": 4680,\n      },\n      {\n        \"amount\": 34986,\n        \"price\": 4679,\n      },\n      {\n        \"amount\": 13110,\n        \"price\": 4678.5,\n      },\n      {\n        \"amount\": 2947,\n        \"price\": 4678,\n      },\n      {\n        \"amount\": 2751,\n        \"price\": 4677.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4677,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4676.5,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 4675.5,\n      },\n      {\n        \"amount\": 40905,\n        \"price\": 4675,\n      },\n      {\n        \"amount\": 4660,\n        \"price\": 4673,\n      },\n      {\n        \"amount\": 384,\n        \"price\": 4672,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 4671.5,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 4671,\n      },\n      {\n        \"amount\": 41280,\n        \"price\": 4670,\n      },\n      {\n        \"amount\": 1150,\n        \"price\": 4668,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4667.5,\n      },\n      {\n        \"amount\": 264,\n        \"price\": 4666.5,\n      },\n      {\n        \"amount\": 206030,\n        \"price\": 4666,\n      },\n      {\n        \"amount\": 8200,\n        \"price\": 4665,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 4664,\n      },\n      {\n        \"amount\": 4374,\n        \"price\": 4663,\n      },\n      {\n        \"amount\": 11300,\n        \"price\": 4662.5,\n      },\n      {\n        \"amount\": 225,\n        \"price\": 4662,\n      },\n      {\n        \"amount\": 13150,\n        \"price\": 4660,\n      },\n      {\n        \"amount\": 3634,\n        \"price\": 4659.5,\n      },\n      {\n        \"amount\": 25456,\n        \"price\": 4659,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 4655.5,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 4654,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4652.5,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 4652,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4651.5,\n      },\n      {\n        \"amount\": 1876,\n        \"price\": 4651,\n      },\n      {\n        \"amount\": 11909,\n        \"price\": 4650.5,\n      },\n      {\n        \"amount\": 94625,\n        \"price\": 4650,\n      },\n      {\n        \"amount\": 62500,\n        \"price\": 4648,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4647,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 4645,\n      },\n      {\n        \"amount\": 28948,\n        \"price\": 4644.5,\n      },\n      {\n        \"amount\": 39300,\n        \"price\": 4644,\n      },\n      {\n        \"amount\": 1521,\n        \"price\": 4642,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 4641,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4640.5,\n      },\n      {\n        \"amount\": 15932,\n        \"price\": 4640,\n      },\n      {\n        \"amount\": 3096,\n        \"price\": 4639,\n      },\n      {\n        \"amount\": 5175,\n        \"price\": 4638,\n      },\n      {\n        \"amount\": 11300,\n        \"price\": 4637.5,\n      },\n      {\n        \"amount\": 12274,\n        \"price\": 4637,\n      },\n      {\n        \"amount\": 7500,\n        \"price\": 4636.5,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 4636,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4635.5,\n      },\n      {\n        \"amount\": 13540,\n        \"price\": 4635,\n      },\n      {\n        \"amount\": 462,\n        \"price\": 4633.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4632.5,\n      },\n      {\n        \"amount\": 102611,\n        \"price\": 4630,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4629.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4629,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4628,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4627.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4625.5,\n      },\n      {\n        \"amount\": 12634,\n        \"price\": 4625,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4624.5,\n      },\n      {\n        \"amount\": 26238,\n        \"price\": 4624,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4623,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4622.5,\n      },\n      {\n        \"amount\": 10089,\n        \"price\": 4622,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4621,\n      },\n      {\n        \"amount\": 16000,\n        \"price\": 4620,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4619,\n      },\n      {\n        \"amount\": 18888,\n        \"price\": 4618,\n      },\n      {\n        \"amount\": 19971,\n        \"price\": 4616.5,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 4616,\n      },\n      {\n        \"amount\": 20100,\n        \"price\": 4615,\n      },\n      {\n        \"amount\": 26780,\n        \"price\": 4614,\n      },\n      {\n        \"amount\": 27945,\n        \"price\": 4612.5,\n      },\n      {\n        \"amount\": 28172,\n        \"price\": 4612,\n      },\n      {\n        \"amount\": 4682,\n        \"price\": 4611,\n      },\n      {\n        \"amount\": 12997,\n        \"price\": 4610.5,\n      },\n      {\n        \"amount\": 8130,\n        \"price\": 4610,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4609.5,\n      },\n      {\n        \"amount\": 4475,\n        \"price\": 4609,\n      },\n      {\n        \"amount\": 3384,\n        \"price\": 4608,\n      },\n      {\n        \"amount\": 25677,\n        \"price\": 4607.5,\n      },\n      {\n        \"amount\": 4300,\n        \"price\": 4606,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4605,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 4604,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4603,\n      },\n      {\n        \"amount\": 3298,\n        \"price\": 4602,\n      },\n      {\n        \"amount\": 5250,\n        \"price\": 4601,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4600.5,\n      },\n      {\n        \"amount\": 673876,\n        \"price\": 4600,\n      },\n      {\n        \"amount\": 810,\n        \"price\": 4599.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4599,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 4598.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4598,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4597.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4597,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 4596.5,\n      },\n      {\n        \"amount\": 16388,\n        \"price\": 4596,\n      },\n      {\n        \"amount\": 114950,\n        \"price\": 4595,\n      },\n      {\n        \"amount\": 5700,\n        \"price\": 4594,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4593.5,\n      },\n      {\n        \"amount\": 112918,\n        \"price\": 4593,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4591.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4590.5,\n      },\n      {\n        \"amount\": 4160,\n        \"price\": 4590,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4589.5,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 4589,\n      },\n      {\n        \"amount\": 336,\n        \"price\": 4588.5,\n      },\n      {\n        \"amount\": 214508,\n        \"price\": 4588,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4587.5,\n      },\n      {\n        \"amount\": 206,\n        \"price\": 4587,\n      },\n      {\n        \"amount\": 16969,\n        \"price\": 4586.5,\n      },\n      {\n        \"amount\": 151015,\n        \"price\": 4586,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4585.5,\n      },\n      {\n        \"amount\": 1110,\n        \"price\": 4585,\n      },\n      {\n        \"amount\": 3099,\n        \"price\": 4584.5,\n      },\n      {\n        \"amount\": 30050,\n        \"price\": 4584,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4583.5,\n      },\n      {\n        \"amount\": 20932,\n        \"price\": 4583,\n      },\n      {\n        \"amount\": 100500,\n        \"price\": 4582,\n      },\n      {\n        \"amount\": 2700,\n        \"price\": 4581.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4581,\n      },\n      {\n        \"amount\": 50963,\n        \"price\": 4580,\n      },\n      {\n        \"amount\": 3900,\n        \"price\": 4579.5,\n      },\n      {\n        \"amount\": 3597,\n        \"price\": 4579,\n      },\n      {\n        \"amount\": 322050,\n        \"price\": 4578,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4577.5,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 4577,\n      },\n      {\n        \"amount\": 840,\n        \"price\": 4576.5,\n      },\n      {\n        \"amount\": 730,\n        \"price\": 4576,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4575.5,\n      },\n      {\n        \"amount\": 200605,\n        \"price\": 4575,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4574.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4574,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4573.5,\n      },\n      {\n        \"amount\": 3763,\n        \"price\": 4573,\n      },\n      {\n        \"amount\": 840,\n        \"price\": 4571.5,\n      },\n      {\n        \"amount\": 1125,\n        \"price\": 4571,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4570.5,\n      },\n      {\n        \"amount\": 422598,\n        \"price\": 4570,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4569,\n      },\n      {\n        \"amount\": 60744,\n        \"price\": 4568,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 4567,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4566.5,\n      },\n      {\n        \"amount\": 1135,\n        \"price\": 4566,\n      },\n      {\n        \"amount\": 42000,\n        \"price\": 4565.5,\n      },\n      {\n        \"amount\": 2960,\n        \"price\": 4565,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 4564,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4563.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4563,\n      },\n      {\n        \"amount\": 3634,\n        \"price\": 4562.5,\n      },\n      {\n        \"amount\": 725,\n        \"price\": 4562,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4561.5,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 4561,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4560.5,\n      },\n      {\n        \"amount\": 6050,\n        \"price\": 4560,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4559.5,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4559,\n      },\n      {\n        \"amount\": 13212,\n        \"price\": 4558,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 4557.5,\n      },\n      {\n        \"amount\": 2503,\n        \"price\": 4557,\n      },\n      {\n        \"amount\": 10600,\n        \"price\": 4556.5,\n      },\n      {\n        \"amount\": 1350,\n        \"price\": 4556,\n      },\n      {\n        \"amount\": 580,\n        \"price\": 4555.5,\n      },\n      {\n        \"amount\": 20600,\n        \"price\": 4555,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4554,\n      },\n      {\n        \"amount\": 11120,\n        \"price\": 4553.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4553,\n      },\n      {\n        \"amount\": 830,\n        \"price\": 4552,\n      },\n      {\n        \"amount\": 2120,\n        \"price\": 4551.5,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 4551,\n      },\n      {\n        \"amount\": 5450,\n        \"price\": 4550.5,\n      },\n      {\n        \"amount\": 907009,\n        \"price\": 4550,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4549.5,\n      },\n      {\n        \"amount\": 1080,\n        \"price\": 4549,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 4548.5,\n      },\n      {\n        \"amount\": 66100,\n        \"price\": 4548,\n      },\n      {\n        \"amount\": 62500,\n        \"price\": 4547,\n      },\n      {\n        \"amount\": 83000,\n        \"price\": 4546,\n      },\n      {\n        \"amount\": 100020,\n        \"price\": 4545.5,\n      },\n      {\n        \"amount\": 57950,\n        \"price\": 4545,\n      },\n      {\n        \"amount\": 23384,\n        \"price\": 4544,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4543.5,\n      },\n      {\n        \"amount\": 251,\n        \"price\": 4543,\n      },\n      {\n        \"amount\": 101477,\n        \"price\": 4542.5,\n      },\n      {\n        \"amount\": 1150,\n        \"price\": 4542,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4541.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4541,\n      },\n      {\n        \"amount\": 34194,\n        \"price\": 4540,\n      },\n      {\n        \"amount\": 11780,\n        \"price\": 4539,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4538.5,\n      },\n      {\n        \"amount\": 51750,\n        \"price\": 4538,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 4537.5,\n      },\n      {\n        \"amount\": 5070,\n        \"price\": 4537,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4536.5,\n      },\n      {\n        \"amount\": 65500,\n        \"price\": 4536,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 4535.5,\n      },\n      {\n        \"amount\": 239500,\n        \"price\": 4535,\n      },\n      {\n        \"amount\": 6063,\n        \"price\": 4534,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4533.5,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 4533,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4532.5,\n      },\n      {\n        \"amount\": 10900,\n        \"price\": 4532,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4531.5,\n      },\n      {\n        \"amount\": 18894,\n        \"price\": 4531,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4530.5,\n      },\n      {\n        \"amount\": 49805,\n        \"price\": 4530,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 4529.5,\n      },\n      {\n        \"amount\": 2900,\n        \"price\": 4529,\n      },\n      {\n        \"amount\": 18722,\n        \"price\": 4528,\n      },\n      {\n        \"amount\": 7100,\n        \"price\": 4527.5,\n      },\n      {\n        \"amount\": 17000,\n        \"price\": 4527,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4526.5,\n      },\n      {\n        \"amount\": 6288,\n        \"price\": 4526,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 4525.5,\n      },\n      {\n        \"amount\": 57050,\n        \"price\": 4525,\n      },\n      {\n        \"amount\": 702,\n        \"price\": 4524,\n      },\n      {\n        \"amount\": 14075,\n        \"price\": 4523,\n      },\n      {\n        \"amount\": 45000,\n        \"price\": 4522.5,\n      },\n      {\n        \"amount\": 37000,\n        \"price\": 4522,\n      },\n      {\n        \"amount\": 15500,\n        \"price\": 4521,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4520.5,\n      },\n      {\n        \"amount\": 66408,\n        \"price\": 4520,\n      },\n      {\n        \"amount\": 10835,\n        \"price\": 4519.5,\n      },\n      {\n        \"amount\": 2631,\n        \"price\": 4519,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4518.5,\n      },\n      {\n        \"amount\": 12600,\n        \"price\": 4518,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4517,\n      },\n      {\n        \"amount\": 5650,\n        \"price\": 4516.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 4516,\n      },\n      {\n        \"amount\": 34340,\n        \"price\": 4515,\n      },\n      {\n        \"amount\": 3734,\n        \"price\": 4514,\n      },\n      {\n        \"amount\": 4102,\n        \"price\": 4513.5,\n      },\n      {\n        \"amount\": 2021,\n        \"price\": 4513,\n      },\n      {\n        \"amount\": 3983,\n        \"price\": 4512,\n      },\n      {\n        \"amount\": 205,\n        \"price\": 4511.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4511,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 4510.5,\n      },\n      {\n        \"amount\": 77653,\n        \"price\": 4510,\n      },\n      {\n        \"amount\": 6584,\n        \"price\": 4509,\n      },\n      {\n        \"amount\": 14267,\n        \"price\": 4508.5,\n      },\n      {\n        \"amount\": 123380,\n        \"price\": 4508,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4507,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 4506,\n      },\n      {\n        \"amount\": 195,\n        \"price\": 4505.5,\n      },\n      {\n        \"amount\": 40120,\n        \"price\": 4505,\n      },\n      {\n        \"amount\": 14450,\n        \"price\": 4504,\n      },\n      {\n        \"amount\": 13990,\n        \"price\": 4503.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4503,\n      },\n      {\n        \"amount\": 13170,\n        \"price\": 4502,\n      },\n      {\n        \"amount\": 4080,\n        \"price\": 4501,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 4500.5,\n      },\n      {\n        \"amount\": 1389042,\n        \"price\": 4500,\n      },\n      {\n        \"amount\": 6496,\n        \"price\": 4499.5,\n      },\n      {\n        \"amount\": 17467,\n        \"price\": 4499,\n      },\n      {\n        \"amount\": 1875,\n        \"price\": 4498.5,\n      },\n      {\n        \"amount\": 90320,\n        \"price\": 4498,\n      },\n      {\n        \"amount\": 4932,\n        \"price\": 4497,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4496.5,\n      },\n      {\n        \"amount\": 40500,\n        \"price\": 4496,\n      },\n      {\n        \"amount\": 8013,\n        \"price\": 4495.5,\n      },\n      {\n        \"amount\": 26270,\n        \"price\": 4495,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 4494.5,\n      },\n      {\n        \"amount\": 101700,\n        \"price\": 4494,\n      },\n      {\n        \"amount\": 395,\n        \"price\": 4493.5,\n      },\n      {\n        \"amount\": 1202,\n        \"price\": 4493,\n      },\n      {\n        \"amount\": 512,\n        \"price\": 4492,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 4491,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 4490.5,\n      },\n      {\n        \"amount\": 94945,\n        \"price\": 4490,\n      },\n      {\n        \"amount\": 16065,\n        \"price\": 4489.5,\n      },\n      {\n        \"amount\": 225480,\n        \"price\": 4489,\n      },\n      {\n        \"amount\": 7500,\n        \"price\": 4488.5,\n      },\n      {\n        \"amount\": 37079,\n        \"price\": 4488,\n      },\n      {\n        \"amount\": 39751,\n        \"price\": 4487,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4486.5,\n      },\n      {\n        \"amount\": 1150,\n        \"price\": 4486,\n      },\n      {\n        \"amount\": 8195,\n        \"price\": 4485,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 4484.5,\n      },\n      {\n        \"amount\": 6374,\n        \"price\": 4484,\n      },\n      {\n        \"amount\": 263000,\n        \"price\": 4483.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 4483,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 4482.5,\n      },\n      {\n        \"amount\": 195,\n        \"price\": 4482,\n      },\n      {\n        \"amount\": 1516,\n        \"price\": 4481,\n      },\n      {\n        \"amount\": 94049,\n        \"price\": 4480,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4479.5,\n      },\n      {\n        \"amount\": 17734,\n        \"price\": 4479,\n      },\n      {\n        \"amount\": 5850,\n        \"price\": 4478.5,\n      },\n      {\n        \"amount\": 32351,\n        \"price\": 4478,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4477.5,\n      },\n      {\n        \"amount\": 656,\n        \"price\": 4477,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4476.5,\n      },\n      {\n        \"amount\": 3168,\n        \"price\": 4476,\n      },\n      {\n        \"amount\": 43447,\n        \"price\": 4475,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4474.5,\n      },\n      {\n        \"amount\": 703,\n        \"price\": 4474,\n      },\n      {\n        \"amount\": 1115,\n        \"price\": 4473.5,\n      },\n      {\n        \"amount\": 16,\n        \"price\": 4473,\n      },\n      {\n        \"amount\": 6243,\n        \"price\": 4472,\n      },\n      {\n        \"amount\": 22172,\n        \"price\": 4471.5,\n      },\n      {\n        \"amount\": 24678,\n        \"price\": 4471,\n      },\n      {\n        \"amount\": 347166,\n        \"price\": 4470,\n      },\n      {\n        \"amount\": 4800,\n        \"price\": 4469.5,\n      },\n      {\n        \"amount\": 30350,\n        \"price\": 4469,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 4468.5,\n      },\n      {\n        \"amount\": 15368,\n        \"price\": 4468,\n      },\n      {\n        \"amount\": 12250,\n        \"price\": 4467.5,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 4467,\n      },\n      {\n        \"amount\": 1198,\n        \"price\": 4466.5,\n      },\n      {\n        \"amount\": 3768,\n        \"price\": 4466,\n      },\n      {\n        \"amount\": 3684,\n        \"price\": 4465.5,\n      },\n      {\n        \"amount\": 29410,\n        \"price\": 4465,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4464.5,\n      },\n      {\n        \"amount\": 6629,\n        \"price\": 4464,\n      },\n      {\n        \"amount\": 105,\n        \"price\": 4463,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4462.5,\n      },\n      {\n        \"amount\": 97800,\n        \"price\": 4462,\n      },\n      {\n        \"amount\": 12050,\n        \"price\": 4461.5,\n      },\n      {\n        \"amount\": 45100,\n        \"price\": 4461,\n      },\n      {\n        \"amount\": 2385,\n        \"price\": 4460.5,\n      },\n      {\n        \"amount\": 110718,\n        \"price\": 4460,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 4459.5,\n      },\n      {\n        \"amount\": 10298,\n        \"price\": 4459,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 4458.5,\n      },\n      {\n        \"amount\": 12222,\n        \"price\": 4458,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4457.5,\n      },\n      {\n        \"amount\": 53977,\n        \"price\": 4457,\n      },\n      {\n        \"amount\": 5052,\n        \"price\": 4456.5,\n      },\n      {\n        \"amount\": 11554,\n        \"price\": 4456,\n      },\n      {\n        \"amount\": 104265,\n        \"price\": 4455.5,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4455,\n      },\n      {\n        \"amount\": 18517,\n        \"price\": 4454,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4453,\n      },\n      {\n        \"amount\": 1160,\n        \"price\": 4452.5,\n      },\n      {\n        \"amount\": 5284,\n        \"price\": 4452,\n      },\n      {\n        \"amount\": 4225,\n        \"price\": 4451.5,\n      },\n      {\n        \"amount\": 21096,\n        \"price\": 4451,\n      },\n      {\n        \"amount\": 9137,\n        \"price\": 4450.5,\n      },\n      {\n        \"amount\": 1878892,\n        \"price\": 4450,\n      },\n      {\n        \"amount\": 209144,\n        \"price\": 4449.5,\n      },\n      {\n        \"amount\": 3850,\n        \"price\": 4449,\n      },\n      {\n        \"amount\": 6140,\n        \"price\": 4448.5,\n      },\n      {\n        \"amount\": 40251,\n        \"price\": 4448,\n      },\n      {\n        \"amount\": 158500,\n        \"price\": 4447.5,\n      },\n      {\n        \"amount\": 74000,\n        \"price\": 4447,\n      },\n      {\n        \"amount\": 4171,\n        \"price\": 4446.5,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 4446,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4445.5,\n      },\n      {\n        \"amount\": 165099,\n        \"price\": 4445,\n      },\n      {\n        \"amount\": 13669,\n        \"price\": 4444.5,\n      },\n      {\n        \"amount\": 165346,\n        \"price\": 4444,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 4443.5,\n      },\n      {\n        \"amount\": 12700,\n        \"price\": 4443,\n      },\n      {\n        \"amount\": 1004,\n        \"price\": 4442,\n      },\n      {\n        \"amount\": 6300,\n        \"price\": 4441,\n      },\n      {\n        \"amount\": 1040,\n        \"price\": 4440.5,\n      },\n      {\n        \"amount\": 85618,\n        \"price\": 4440,\n      },\n      {\n        \"amount\": 1335,\n        \"price\": 4439.5,\n      },\n      {\n        \"amount\": 119600,\n        \"price\": 4439,\n      },\n      {\n        \"amount\": 5924,\n        \"price\": 4438.5,\n      },\n      {\n        \"amount\": 11325,\n        \"price\": 4438,\n      },\n      {\n        \"amount\": 1786,\n        \"price\": 4437.5,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 4437,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4436.5,\n      },\n      {\n        \"amount\": 1368,\n        \"price\": 4436,\n      },\n      {\n        \"amount\": 114500,\n        \"price\": 4435,\n      },\n      {\n        \"amount\": 195,\n        \"price\": 4434.5,\n      },\n      {\n        \"amount\": 40390,\n        \"price\": 4434,\n      },\n      {\n        \"amount\": 12398,\n        \"price\": 4433.5,\n      },\n      {\n        \"amount\": 8954,\n        \"price\": 4433,\n      },\n      {\n        \"amount\": 42000,\n        \"price\": 4432.5,\n      },\n      {\n        \"amount\": 6168,\n        \"price\": 4432,\n      },\n      {\n        \"amount\": 10350,\n        \"price\": 4431.5,\n      },\n      {\n        \"amount\": 249178,\n        \"price\": 4431,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 4430.5,\n      },\n      {\n        \"amount\": 126951,\n        \"price\": 4430,\n      },\n      {\n        \"amount\": 5800,\n        \"price\": 4429.5,\n      },\n      {\n        \"amount\": 3330,\n        \"price\": 4429,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 4428.5,\n      },\n      {\n        \"amount\": 18424,\n        \"price\": 4428,\n      },\n      {\n        \"amount\": 18600,\n        \"price\": 4427.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4427,\n      },\n      {\n        \"amount\": 110200,\n        \"price\": 4426.5,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 4426,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4425.5,\n      },\n      {\n        \"amount\": 25617,\n        \"price\": 4425,\n      },\n      {\n        \"amount\": 6618,\n        \"price\": 4424,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 4423.5,\n      },\n      {\n        \"amount\": 18942,\n        \"price\": 4423,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4422.5,\n      },\n      {\n        \"amount\": 1742,\n        \"price\": 4422,\n      },\n      {\n        \"amount\": 20800,\n        \"price\": 4421.5,\n      },\n      {\n        \"amount\": 11300,\n        \"price\": 4421,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4420.5,\n      },\n      {\n        \"amount\": 525123,\n        \"price\": 4420,\n      },\n      {\n        \"amount\": 10830,\n        \"price\": 4419,\n      },\n      {\n        \"amount\": 3800,\n        \"price\": 4418.5,\n      },\n      {\n        \"amount\": 14596,\n        \"price\": 4418,\n      },\n      {\n        \"amount\": 1800,\n        \"price\": 4417.5,\n      },\n      {\n        \"amount\": 30886,\n        \"price\": 4417,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4416.5,\n      },\n      {\n        \"amount\": 1816,\n        \"price\": 4416,\n      },\n      {\n        \"amount\": 773708,\n        \"price\": 4415,\n      },\n      {\n        \"amount\": 160000,\n        \"price\": 4414.5,\n      },\n      {\n        \"amount\": 13913,\n        \"price\": 4414,\n      },\n      {\n        \"amount\": 751150,\n        \"price\": 4413.5,\n      },\n      {\n        \"amount\": 50815,\n        \"price\": 4413,\n      },\n      {\n        \"amount\": 12446,\n        \"price\": 4412.5,\n      },\n      {\n        \"amount\": 15186,\n        \"price\": 4412,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 4411.5,\n      },\n      {\n        \"amount\": 73613,\n        \"price\": 4411,\n      },\n      {\n        \"amount\": 10030,\n        \"price\": 4410.5,\n      },\n      {\n        \"amount\": 175257,\n        \"price\": 4410,\n      },\n      {\n        \"amount\": 240000,\n        \"price\": 4409.5,\n      },\n      {\n        \"amount\": 8850,\n        \"price\": 4409,\n      },\n      {\n        \"amount\": 10303,\n        \"price\": 4408.5,\n      },\n      {\n        \"amount\": 23573,\n        \"price\": 4408,\n      },\n      {\n        \"amount\": 6600,\n        \"price\": 4407.5,\n      },\n      {\n        \"amount\": 234040,\n        \"price\": 4407,\n      },\n      {\n        \"amount\": 19983,\n        \"price\": 4406.5,\n      },\n      {\n        \"amount\": 7228,\n        \"price\": 4406,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 4405.5,\n      },\n      {\n        \"amount\": 21700,\n        \"price\": 4405,\n      },\n      {\n        \"amount\": 12649,\n        \"price\": 4404.5,\n      },\n      {\n        \"amount\": 5768,\n        \"price\": 4404,\n      },\n      {\n        \"amount\": 1439,\n        \"price\": 4403.5,\n      },\n      {\n        \"amount\": 21403,\n        \"price\": 4403,\n      },\n      {\n        \"amount\": 10730,\n        \"price\": 4402.5,\n      },\n      {\n        \"amount\": 1811,\n        \"price\": 4402,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4401.5,\n      },\n      {\n        \"amount\": 5280,\n        \"price\": 4401,\n      },\n      {\n        \"amount\": 1930,\n        \"price\": 4400.5,\n      },\n      {\n        \"amount\": 1295290,\n        \"price\": 4400,\n      },\n      {\n        \"amount\": 50827,\n        \"price\": 4399.5,\n      },\n      {\n        \"amount\": 15732,\n        \"price\": 4399,\n      },\n      {\n        \"amount\": 1298,\n        \"price\": 4398.5,\n      },\n      {\n        \"amount\": 38739,\n        \"price\": 4398,\n      },\n      {\n        \"amount\": 8077,\n        \"price\": 4397.5,\n      },\n      {\n        \"amount\": 4703,\n        \"price\": 4397,\n      },\n      {\n        \"amount\": 1783,\n        \"price\": 4396.5,\n      },\n      {\n        \"amount\": 1268,\n        \"price\": 4396,\n      },\n      {\n        \"amount\": 8101,\n        \"price\": 4395.5,\n      },\n      {\n        \"amount\": 344164,\n        \"price\": 4395,\n      },\n      {\n        \"amount\": 4103,\n        \"price\": 4394.5,\n      },\n      {\n        \"amount\": 36180,\n        \"price\": 4394,\n      },\n      {\n        \"amount\": 42400,\n        \"price\": 4393.5,\n      },\n      {\n        \"amount\": 4694,\n        \"price\": 4393,\n      },\n      {\n        \"amount\": 15560,\n        \"price\": 4392.5,\n      },\n      {\n        \"amount\": 2483,\n        \"price\": 4392,\n      },\n      {\n        \"amount\": 20100,\n        \"price\": 4391.5,\n      },\n      {\n        \"amount\": 105128,\n        \"price\": 4391,\n      },\n      {\n        \"amount\": 10200,\n        \"price\": 4390.5,\n      },\n      {\n        \"amount\": 237254,\n        \"price\": 4390,\n      },\n      {\n        \"amount\": 270,\n        \"price\": 4389.5,\n      },\n      {\n        \"amount\": 80674,\n        \"price\": 4389,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 4388.5,\n      },\n      {\n        \"amount\": 20309,\n        \"price\": 4388,\n      },\n      {\n        \"amount\": 19845,\n        \"price\": 4387.5,\n      },\n      {\n        \"amount\": 6739,\n        \"price\": 4387,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4386.5,\n      },\n      {\n        \"amount\": 59700,\n        \"price\": 4386,\n      },\n      {\n        \"amount\": 10369,\n        \"price\": 4385.5,\n      },\n      {\n        \"amount\": 70042,\n        \"price\": 4385,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4384.5,\n      },\n      {\n        \"amount\": 12235,\n        \"price\": 4384,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4383.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4383,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4382.5,\n      },\n      {\n        \"amount\": 71313,\n        \"price\": 4382,\n      },\n      {\n        \"amount\": 14628,\n        \"price\": 4381.5,\n      },\n      {\n        \"amount\": 34431,\n        \"price\": 4381,\n      },\n      {\n        \"amount\": 40302,\n        \"price\": 4380.5,\n      },\n      {\n        \"amount\": 164320,\n        \"price\": 4380,\n      },\n      {\n        \"amount\": 23350,\n        \"price\": 4379.5,\n      },\n      {\n        \"amount\": 44779,\n        \"price\": 4379,\n      },\n      {\n        \"amount\": 258276,\n        \"price\": 4378.5,\n      },\n      {\n        \"amount\": 70860,\n        \"price\": 4378,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4377.5,\n      },\n      {\n        \"amount\": 101298,\n        \"price\": 4377,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4376.5,\n      },\n      {\n        \"amount\": 81698,\n        \"price\": 4376,\n      },\n      {\n        \"amount\": 3195,\n        \"price\": 4375.5,\n      },\n      {\n        \"amount\": 91387,\n        \"price\": 4375,\n      },\n      {\n        \"amount\": 1622,\n        \"price\": 4374.5,\n      },\n      {\n        \"amount\": 21663,\n        \"price\": 4374,\n      },\n      {\n        \"amount\": 17754,\n        \"price\": 4373.5,\n      },\n      {\n        \"amount\": 2345,\n        \"price\": 4373,\n      },\n      {\n        \"amount\": 1252,\n        \"price\": 4372.5,\n      },\n      {\n        \"amount\": 20154,\n        \"price\": 4372,\n      },\n      {\n        \"amount\": 9352,\n        \"price\": 4371.5,\n      },\n      {\n        \"amount\": 12702,\n        \"price\": 4371,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 4370.5,\n      },\n      {\n        \"amount\": 591992,\n        \"price\": 4370,\n      },\n      {\n        \"amount\": 9272,\n        \"price\": 4369.5,\n      },\n      {\n        \"amount\": 15252,\n        \"price\": 4369,\n      },\n      {\n        \"amount\": 6450,\n        \"price\": 4368.5,\n      },\n      {\n        \"amount\": 154462,\n        \"price\": 4368,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 4367.5,\n      },\n      {\n        \"amount\": 263440,\n        \"price\": 4367,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4366.5,\n      },\n      {\n        \"amount\": 11299,\n        \"price\": 4366,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4365.5,\n      },\n      {\n        \"amount\": 21325,\n        \"price\": 4365,\n      },\n      {\n        \"amount\": 51802,\n        \"price\": 4364.5,\n      },\n      {\n        \"amount\": 11914,\n        \"price\": 4364,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 4363.5,\n      },\n      {\n        \"amount\": 6495,\n        \"price\": 4363,\n      },\n      {\n        \"amount\": 255,\n        \"price\": 4362.5,\n      },\n      {\n        \"amount\": 14800,\n        \"price\": 4362,\n      },\n      {\n        \"amount\": 101,\n        \"price\": 4361.5,\n      },\n      {\n        \"amount\": 16100,\n        \"price\": 4361,\n      },\n      {\n        \"amount\": 3580,\n        \"price\": 4360.5,\n      },\n      {\n        \"amount\": 135315,\n        \"price\": 4360,\n      },\n      {\n        \"amount\": 101,\n        \"price\": 4359.5,\n      },\n      {\n        \"amount\": 736720,\n        \"price\": 4359,\n      },\n      {\n        \"amount\": 9101,\n        \"price\": 4358.5,\n      },\n      {\n        \"amount\": 24840,\n        \"price\": 4358,\n      },\n      {\n        \"amount\": 8280,\n        \"price\": 4357.5,\n      },\n      {\n        \"amount\": 5586,\n        \"price\": 4357,\n      },\n      {\n        \"amount\": 1601,\n        \"price\": 4356.5,\n      },\n      {\n        \"amount\": 1919,\n        \"price\": 4356,\n      },\n      {\n        \"amount\": 308,\n        \"price\": 4355.5,\n      },\n      {\n        \"amount\": 69425,\n        \"price\": 4355,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 4354.5,\n      },\n      {\n        \"amount\": 21051,\n        \"price\": 4354,\n      },\n      {\n        \"amount\": 8355,\n        \"price\": 4353.5,\n      },\n      {\n        \"amount\": 10052,\n        \"price\": 4353,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 4352.5,\n      },\n      {\n        \"amount\": 79406,\n        \"price\": 4352,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4351.5,\n      },\n      {\n        \"amount\": 17300,\n        \"price\": 4351,\n      },\n      {\n        \"amount\": 6611,\n        \"price\": 4350.5,\n      },\n      {\n        \"amount\": 332487,\n        \"price\": 4350,\n      },\n      {\n        \"amount\": 200025,\n        \"price\": 4349.5,\n      },\n      {\n        \"amount\": 173376,\n        \"price\": 4349,\n      },\n      {\n        \"amount\": 8700,\n        \"price\": 4348.5,\n      },\n      {\n        \"amount\": 110677,\n        \"price\": 4348,\n      },\n      {\n        \"amount\": 44449,\n        \"price\": 4347.5,\n      },\n      {\n        \"amount\": 44980,\n        \"price\": 4347,\n      },\n      {\n        \"amount\": 1415,\n        \"price\": 4346.5,\n      },\n      {\n        \"amount\": 12175,\n        \"price\": 4346,\n      },\n      {\n        \"amount\": 8520,\n        \"price\": 4345.5,\n      },\n      {\n        \"amount\": 18060,\n        \"price\": 4345,\n      },\n      {\n        \"amount\": 1957,\n        \"price\": 4344.5,\n      },\n      {\n        \"amount\": 169284,\n        \"price\": 4344,\n      },\n      {\n        \"amount\": 3200,\n        \"price\": 4343.5,\n      },\n      {\n        \"amount\": 50552,\n        \"price\": 4343,\n      },\n      {\n        \"amount\": 121060,\n        \"price\": 4342.5,\n      },\n      {\n        \"amount\": 20900,\n        \"price\": 4342,\n      },\n      {\n        \"amount\": 348,\n        \"price\": 4341.5,\n      },\n      {\n        \"amount\": 7450,\n        \"price\": 4341,\n      },\n      {\n        \"amount\": 174633,\n        \"price\": 4340.5,\n      },\n      {\n        \"amount\": 182598,\n        \"price\": 4340,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 4339.5,\n      },\n      {\n        \"amount\": 24023,\n        \"price\": 4339,\n      },\n      {\n        \"amount\": 10508,\n        \"price\": 4338.5,\n      },\n      {\n        \"amount\": 13775,\n        \"price\": 4338,\n      },\n      {\n        \"amount\": 18710,\n        \"price\": 4337.5,\n      },\n      {\n        \"amount\": 12591,\n        \"price\": 4337,\n      },\n      {\n        \"amount\": 1748,\n        \"price\": 4336,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 4335.5,\n      },\n      {\n        \"amount\": 48594,\n        \"price\": 4335,\n      },\n      {\n        \"amount\": 10057,\n        \"price\": 4334.5,\n      },\n      {\n        \"amount\": 94215,\n        \"price\": 4334,\n      },\n      {\n        \"amount\": 15452,\n        \"price\": 4333.5,\n      },\n      {\n        \"amount\": 58892,\n        \"price\": 4333,\n      },\n      {\n        \"amount\": 140000,\n        \"price\": 4332.5,\n      },\n      {\n        \"amount\": 11368,\n        \"price\": 4332,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4331.5,\n      },\n      {\n        \"amount\": 17100,\n        \"price\": 4331,\n      },\n      {\n        \"amount\": 2700,\n        \"price\": 4330.5,\n      },\n      {\n        \"amount\": 170428,\n        \"price\": 4330,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4329.5,\n      },\n      {\n        \"amount\": 10620,\n        \"price\": 4329,\n      },\n      {\n        \"amount\": 2195,\n        \"price\": 4328.5,\n      },\n      {\n        \"amount\": 143308,\n        \"price\": 4328,\n      },\n      {\n        \"amount\": 45750,\n        \"price\": 4327.5,\n      },\n      {\n        \"amount\": 30750,\n        \"price\": 4327,\n      },\n      {\n        \"amount\": 4815,\n        \"price\": 4326.5,\n      },\n      {\n        \"amount\": 68646,\n        \"price\": 4326,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4325.5,\n      },\n      {\n        \"amount\": 21752,\n        \"price\": 4325,\n      },\n      {\n        \"amount\": 3245,\n        \"price\": 4324.5,\n      },\n      {\n        \"amount\": 15998,\n        \"price\": 4324,\n      },\n      {\n        \"amount\": 1252,\n        \"price\": 4323.5,\n      },\n      {\n        \"amount\": 3970,\n        \"price\": 4323,\n      },\n      {\n        \"amount\": 2906,\n        \"price\": 4322.5,\n      },\n      {\n        \"amount\": 18125,\n        \"price\": 4322,\n      },\n      {\n        \"amount\": 822343,\n        \"price\": 4321.5,\n      },\n      {\n        \"amount\": 15650,\n        \"price\": 4321,\n      },\n      {\n        \"amount\": 1641,\n        \"price\": 4320.5,\n      },\n      {\n        \"amount\": 416714,\n        \"price\": 4320,\n      },\n      {\n        \"amount\": 365,\n        \"price\": 4319.5,\n      },\n      {\n        \"amount\": 21744,\n        \"price\": 4319,\n      },\n      {\n        \"amount\": 8669,\n        \"price\": 4318.5,\n      },\n      {\n        \"amount\": 162705,\n        \"price\": 4318,\n      },\n      {\n        \"amount\": 16757,\n        \"price\": 4317.5,\n      },\n      {\n        \"amount\": 6045,\n        \"price\": 4317,\n      },\n      {\n        \"amount\": 82109,\n        \"price\": 4316.5,\n      },\n      {\n        \"amount\": 104156,\n        \"price\": 4316,\n      },\n      {\n        \"amount\": 1306,\n        \"price\": 4315.5,\n      },\n      {\n        \"amount\": 329527,\n        \"price\": 4315,\n      },\n      {\n        \"amount\": 6200,\n        \"price\": 4314.5,\n      },\n      {\n        \"amount\": 84136,\n        \"price\": 4314,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4313.5,\n      },\n      {\n        \"amount\": 13509,\n        \"price\": 4313,\n      },\n      {\n        \"amount\": 11375,\n        \"price\": 4312.5,\n      },\n      {\n        \"amount\": 20768,\n        \"price\": 4312,\n      },\n      {\n        \"amount\": 9431,\n        \"price\": 4311.5,\n      },\n      {\n        \"amount\": 65745,\n        \"price\": 4311,\n      },\n      {\n        \"amount\": 82,\n        \"price\": 4310.5,\n      },\n      {\n        \"amount\": 508664,\n        \"price\": 4310,\n      },\n      {\n        \"amount\": 3539,\n        \"price\": 4309.5,\n      },\n      {\n        \"amount\": 8279,\n        \"price\": 4309,\n      },\n      {\n        \"amount\": 61142,\n        \"price\": 4308.5,\n      },\n      {\n        \"amount\": 13518,\n        \"price\": 4308,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 4307.5,\n      },\n      {\n        \"amount\": 1503,\n        \"price\": 4307,\n      },\n      {\n        \"amount\": 830,\n        \"price\": 4306.5,\n      },\n      {\n        \"amount\": 30044,\n        \"price\": 4306,\n      },\n      {\n        \"amount\": 12265,\n        \"price\": 4305.5,\n      },\n      {\n        \"amount\": 7070,\n        \"price\": 4305,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4304.5,\n      },\n      {\n        \"amount\": 25912,\n        \"price\": 4304,\n      },\n      {\n        \"amount\": 1472,\n        \"price\": 4303.5,\n      },\n      {\n        \"amount\": 5700,\n        \"price\": 4303,\n      },\n      {\n        \"amount\": 650,\n        \"price\": 4302.5,\n      },\n      {\n        \"amount\": 4373,\n        \"price\": 4302,\n      },\n      {\n        \"amount\": 22300,\n        \"price\": 4301.5,\n      },\n      {\n        \"amount\": 22240,\n        \"price\": 4301,\n      },\n      {\n        \"amount\": 10550,\n        \"price\": 4300.5,\n      },\n      {\n        \"amount\": 770161,\n        \"price\": 4300,\n      },\n      {\n        \"amount\": 63112,\n        \"price\": 4299.5,\n      },\n      {\n        \"amount\": 26050,\n        \"price\": 4299,\n      },\n      {\n        \"amount\": 109,\n        \"price\": 4298.5,\n      },\n      {\n        \"amount\": 972835,\n        \"price\": 4298,\n      },\n      {\n        \"amount\": 66311,\n        \"price\": 4297.5,\n      },\n      {\n        \"amount\": 6738,\n        \"price\": 4297,\n      },\n      {\n        \"amount\": 2566,\n        \"price\": 4296.5,\n      },\n      {\n        \"amount\": 123421,\n        \"price\": 4296,\n      },\n      {\n        \"amount\": 15291,\n        \"price\": 4295.5,\n      },\n      {\n        \"amount\": 61470,\n        \"price\": 4295,\n      },\n      {\n        \"amount\": 12920,\n        \"price\": 4294.5,\n      },\n      {\n        \"amount\": 40972,\n        \"price\": 4294,\n      },\n      {\n        \"amount\": 13595,\n        \"price\": 4293.5,\n      },\n      {\n        \"amount\": 66876,\n        \"price\": 4293,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4292.5,\n      },\n      {\n        \"amount\": 158140,\n        \"price\": 4292,\n      },\n      {\n        \"amount\": 3463,\n        \"price\": 4291,\n      },\n      {\n        \"amount\": 46350,\n        \"price\": 4290.5,\n      },\n      {\n        \"amount\": 142043,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 11604,\n        \"price\": 4289.5,\n      },\n      {\n        \"amount\": 11831,\n        \"price\": 4289,\n      },\n      {\n        \"amount\": 76820,\n        \"price\": 4288.5,\n      },\n      {\n        \"amount\": 111992,\n        \"price\": 4288,\n      },\n      {\n        \"amount\": 15572,\n        \"price\": 4287.5,\n      },\n      {\n        \"amount\": 20485,\n        \"price\": 4287,\n      },\n      {\n        \"amount\": 2164,\n        \"price\": 4286.5,\n      },\n      {\n        \"amount\": 79346,\n        \"price\": 4286,\n      },\n      {\n        \"amount\": 18055,\n        \"price\": 4285.5,\n      },\n      {\n        \"amount\": 11689,\n        \"price\": 4285,\n      },\n      {\n        \"amount\": 9255,\n        \"price\": 4284.5,\n      },\n      {\n        \"amount\": 28025,\n        \"price\": 4284,\n      },\n      {\n        \"amount\": 23445,\n        \"price\": 4283.5,\n      },\n      {\n        \"amount\": 134514,\n        \"price\": 4283,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4282.5,\n      },\n      {\n        \"amount\": 14615,\n        \"price\": 4282,\n      },\n      {\n        \"amount\": 34938,\n        \"price\": 4281.5,\n      },\n      {\n        \"amount\": 38578,\n        \"price\": 4281,\n      },\n      {\n        \"amount\": 4715,\n        \"price\": 4280.5,\n      },\n      {\n        \"amount\": 293000,\n        \"price\": 4280,\n      },\n      {\n        \"amount\": 131150,\n        \"price\": 4279.5,\n      },\n      {\n        \"amount\": 256359,\n        \"price\": 4279,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4278.5,\n      },\n      {\n        \"amount\": 144071,\n        \"price\": 4278,\n      },\n      {\n        \"amount\": 71426,\n        \"price\": 4277.5,\n      },\n      {\n        \"amount\": 56526,\n        \"price\": 4277,\n      },\n      {\n        \"amount\": 87611,\n        \"price\": 4276.5,\n      },\n      {\n        \"amount\": 94288,\n        \"price\": 4276,\n      },\n      {\n        \"amount\": 220426,\n        \"price\": 4275.5,\n      },\n      {\n        \"amount\": 270814,\n        \"price\": 4275,\n      },\n      {\n        \"amount\": 13417,\n        \"price\": 4274.5,\n      },\n      {\n        \"amount\": 66302,\n        \"price\": 4274,\n      },\n      {\n        \"amount\": 21404,\n        \"price\": 4273.5,\n      },\n      {\n        \"amount\": 27665,\n        \"price\": 4273,\n      },\n      {\n        \"amount\": 17268,\n        \"price\": 4272.5,\n      },\n      {\n        \"amount\": 53306,\n        \"price\": 4272,\n      },\n      {\n        \"amount\": 72377,\n        \"price\": 4271,\n      },\n      {\n        \"amount\": 21308,\n        \"price\": 4270.5,\n      },\n      {\n        \"amount\": 417299,\n        \"price\": 4270,\n      },\n      {\n        \"amount\": 286593,\n        \"price\": 4269.5,\n      },\n      {\n        \"amount\": 13195,\n        \"price\": 4269,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 4268.5,\n      },\n      {\n        \"amount\": 56292,\n        \"price\": 4268,\n      },\n      {\n        \"amount\": 5057,\n        \"price\": 4267.5,\n      },\n      {\n        \"amount\": 23062,\n        \"price\": 4267,\n      },\n      {\n        \"amount\": 532,\n        \"price\": 4266.5,\n      },\n      {\n        \"amount\": 55860,\n        \"price\": 4266,\n      },\n      {\n        \"amount\": 1294,\n        \"price\": 4265.5,\n      },\n      {\n        \"amount\": 40898,\n        \"price\": 4265,\n      },\n      {\n        \"amount\": 6450,\n        \"price\": 4264.5,\n      },\n      {\n        \"amount\": 456786,\n        \"price\": 4264,\n      },\n      {\n        \"amount\": 125050,\n        \"price\": 4263.5,\n      },\n      {\n        \"amount\": 61326,\n        \"price\": 4263,\n      },\n      {\n        \"amount\": 8350,\n        \"price\": 4262.5,\n      },\n      {\n        \"amount\": 21800,\n        \"price\": 4262,\n      },\n      {\n        \"amount\": 321,\n        \"price\": 4261.5,\n      },\n      {\n        \"amount\": 11768,\n        \"price\": 4261,\n      },\n      {\n        \"amount\": 27908,\n        \"price\": 4260.5,\n      },\n      {\n        \"amount\": 391551,\n        \"price\": 4260,\n      },\n      {\n        \"amount\": 7650,\n        \"price\": 4259.5,\n      },\n      {\n        \"amount\": 71110,\n        \"price\": 4259,\n      },\n      {\n        \"amount\": 20827,\n        \"price\": 4258.5,\n      },\n      {\n        \"amount\": 49145,\n        \"price\": 4258,\n      },\n      {\n        \"amount\": 38986,\n        \"price\": 4257.5,\n      },\n      {\n        \"amount\": 4321,\n        \"price\": 4257,\n      },\n      {\n        \"amount\": 358916,\n        \"price\": 4256.5,\n      },\n      {\n        \"amount\": 15684,\n        \"price\": 4256,\n      },\n      {\n        \"amount\": 545,\n        \"price\": 4255.5,\n      },\n      {\n        \"amount\": 61125,\n        \"price\": 4255,\n      },\n      {\n        \"amount\": 15700,\n        \"price\": 4254.5,\n      },\n      {\n        \"amount\": 13106,\n        \"price\": 4254,\n      },\n      {\n        \"amount\": 9141,\n        \"price\": 4253.5,\n      },\n      {\n        \"amount\": 15500,\n        \"price\": 4253,\n      },\n      {\n        \"amount\": 5807,\n        \"price\": 4252.5,\n      },\n      {\n        \"amount\": 29718,\n        \"price\": 4252,\n      },\n      {\n        \"amount\": 41850,\n        \"price\": 4251.5,\n      },\n      {\n        \"amount\": 72347,\n        \"price\": 4251,\n      },\n      {\n        \"amount\": 30611,\n        \"price\": 4250.5,\n      },\n      {\n        \"amount\": 1283699,\n        \"price\": 4250,\n      },\n      {\n        \"amount\": 213845,\n        \"price\": 4249.5,\n      },\n      {\n        \"amount\": 87594,\n        \"price\": 4249,\n      },\n      {\n        \"amount\": 50033,\n        \"price\": 4248.5,\n      },\n      {\n        \"amount\": 133114,\n        \"price\": 4248,\n      },\n      {\n        \"amount\": 390650,\n        \"price\": 4247.5,\n      },\n      {\n        \"amount\": 90915,\n        \"price\": 4247,\n      },\n      {\n        \"amount\": 24122,\n        \"price\": 4246.5,\n      },\n      {\n        \"amount\": 27436,\n        \"price\": 4246,\n      },\n      {\n        \"amount\": 32530,\n        \"price\": 4245.5,\n      },\n      {\n        \"amount\": 136705,\n        \"price\": 4245,\n      },\n      {\n        \"amount\": 10488,\n        \"price\": 4244.5,\n      },\n      {\n        \"amount\": 56828,\n        \"price\": 4244,\n      },\n      {\n        \"amount\": 22955,\n        \"price\": 4243.5,\n      },\n      {\n        \"amount\": 4582,\n        \"price\": 4243,\n      },\n      {\n        \"amount\": 176,\n        \"price\": 4242.5,\n      },\n      {\n        \"amount\": 628837,\n        \"price\": 4242,\n      },\n      {\n        \"amount\": 98907,\n        \"price\": 4241.5,\n      },\n      {\n        \"amount\": 27043,\n        \"price\": 4241,\n      },\n      {\n        \"amount\": 65122,\n        \"price\": 4240.5,\n      },\n      {\n        \"amount\": 545597,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 17698,\n        \"price\": 4239.5,\n      },\n      {\n        \"amount\": 99706,\n        \"price\": 4239,\n      },\n      {\n        \"amount\": 30588,\n        \"price\": 4238.5,\n      },\n      {\n        \"amount\": 398044,\n        \"price\": 4238,\n      },\n      {\n        \"amount\": 3350,\n        \"price\": 4237.5,\n      },\n      {\n        \"amount\": 80176,\n        \"price\": 4237,\n      },\n      {\n        \"amount\": 16390,\n        \"price\": 4236.5,\n      },\n      {\n        \"amount\": 87590,\n        \"price\": 4236,\n      },\n      {\n        \"amount\": 14794,\n        \"price\": 4235.5,\n      },\n      {\n        \"amount\": 96498,\n        \"price\": 4235,\n      },\n      {\n        \"amount\": 337003,\n        \"price\": 4234.5,\n      },\n      {\n        \"amount\": 53300,\n        \"price\": 4234,\n      },\n      {\n        \"amount\": 124890,\n        \"price\": 4233.5,\n      },\n      {\n        \"amount\": 113369,\n        \"price\": 4233,\n      },\n      {\n        \"amount\": 6924,\n        \"price\": 4232.5,\n      },\n      {\n        \"amount\": 23787,\n        \"price\": 4232,\n      },\n      {\n        \"amount\": 33704,\n        \"price\": 4231.5,\n      },\n      {\n        \"amount\": 54200,\n        \"price\": 4231,\n      },\n      {\n        \"amount\": 84046,\n        \"price\": 4230.5,\n      },\n      {\n        \"amount\": 530123,\n        \"price\": 4230,\n      },\n      {\n        \"amount\": 16920,\n        \"price\": 4229.5,\n      },\n      {\n        \"amount\": 84344,\n        \"price\": 4229,\n      },\n      {\n        \"amount\": 269224,\n        \"price\": 4228.5,\n      },\n      {\n        \"amount\": 445320,\n        \"price\": 4228,\n      },\n      {\n        \"amount\": 1382,\n        \"price\": 4227.5,\n      },\n      {\n        \"amount\": 32518,\n        \"price\": 4227,\n      },\n      {\n        \"amount\": 78854,\n        \"price\": 4226.5,\n      },\n      {\n        \"amount\": 5508,\n        \"price\": 4226,\n      },\n      {\n        \"amount\": 4501,\n        \"price\": 4225.5,\n      },\n      {\n        \"amount\": 227606,\n        \"price\": 4225,\n      },\n      {\n        \"amount\": 56085,\n        \"price\": 4224.5,\n      },\n      {\n        \"amount\": 54640,\n        \"price\": 4224,\n      },\n      {\n        \"amount\": 31578,\n        \"price\": 4223.5,\n      },\n      {\n        \"amount\": 70089,\n        \"price\": 4223,\n      },\n      {\n        \"amount\": 78074,\n        \"price\": 4222.5,\n      },\n      {\n        \"amount\": 628730,\n        \"price\": 4222,\n      },\n      {\n        \"amount\": 51400,\n        \"price\": 4221.5,\n      },\n      {\n        \"amount\": 17581,\n        \"price\": 4221,\n      },\n      {\n        \"amount\": 11028,\n        \"price\": 4220.5,\n      },\n      {\n        \"amount\": 1270265,\n        \"price\": 4220,\n      },\n      {\n        \"amount\": 38686,\n        \"price\": 4219.5,\n      },\n      {\n        \"amount\": 131765,\n        \"price\": 4219,\n      },\n      {\n        \"amount\": 36565,\n        \"price\": 4218.5,\n      },\n      {\n        \"amount\": 220643,\n        \"price\": 4218,\n      },\n      {\n        \"amount\": 18774,\n        \"price\": 4217.5,\n      },\n      {\n        \"amount\": 62708,\n        \"price\": 4217,\n      },\n      {\n        \"amount\": 145062,\n        \"price\": 4216.5,\n      },\n      {\n        \"amount\": 81190,\n        \"price\": 4216,\n      },\n      {\n        \"amount\": 221366,\n        \"price\": 4215.5,\n      },\n      {\n        \"amount\": 403151,\n        \"price\": 4215,\n      },\n      {\n        \"amount\": 35827,\n        \"price\": 4214.5,\n      },\n      {\n        \"amount\": 43737,\n        \"price\": 4214,\n      },\n      {\n        \"amount\": 27671,\n        \"price\": 4213.5,\n      },\n      {\n        \"amount\": 475006,\n        \"price\": 4213,\n      },\n      {\n        \"amount\": 355851,\n        \"price\": 4212.5,\n      },\n      {\n        \"amount\": 198812,\n        \"price\": 4212,\n      },\n      {\n        \"amount\": 24475,\n        \"price\": 4211.5,\n      },\n      {\n        \"amount\": 331385,\n        \"price\": 4211,\n      },\n      {\n        \"amount\": 59999,\n        \"price\": 4210.5,\n      },\n      {\n        \"amount\": 594158,\n        \"price\": 4210,\n      },\n      {\n        \"amount\": 109030,\n        \"price\": 4209.5,\n      },\n      {\n        \"amount\": 43079,\n        \"price\": 4209,\n      },\n      {\n        \"amount\": 19740,\n        \"price\": 4208.5,\n      },\n      {\n        \"amount\": 79807,\n        \"price\": 4208,\n      },\n      {\n        \"amount\": 11861,\n        \"price\": 4207.5,\n      },\n      {\n        \"amount\": 10870,\n        \"price\": 4207,\n      },\n      {\n        \"amount\": 49253,\n        \"price\": 4206.5,\n      },\n      {\n        \"amount\": 117621,\n        \"price\": 4206,\n      },\n      {\n        \"amount\": 334798,\n        \"price\": 4205.5,\n      },\n      {\n        \"amount\": 73793,\n        \"price\": 4205,\n      },\n      {\n        \"amount\": 17751,\n        \"price\": 4204.5,\n      },\n      {\n        \"amount\": 58338,\n        \"price\": 4204,\n      },\n      {\n        \"amount\": 44046,\n        \"price\": 4203.5,\n      },\n      {\n        \"amount\": 46526,\n        \"price\": 4203,\n      },\n      {\n        \"amount\": 23001,\n        \"price\": 4202.5,\n      },\n      {\n        \"amount\": 52320,\n        \"price\": 4202,\n      },\n      {\n        \"amount\": 16181,\n        \"price\": 4201.5,\n      },\n      {\n        \"amount\": 18940,\n        \"price\": 4201,\n      },\n      {\n        \"amount\": 117021,\n        \"price\": 4200.5,\n      },\n      {\n        \"amount\": 4151766,\n        \"price\": 4200,\n      },\n      {\n        \"amount\": 112240,\n        \"price\": 4199.5,\n      },\n      {\n        \"amount\": 305865,\n        \"price\": 4199,\n      },\n      {\n        \"amount\": 377165,\n        \"price\": 4198.5,\n      },\n      {\n        \"amount\": 169496,\n        \"price\": 4198,\n      },\n      {\n        \"amount\": 146032,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 201364,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 399340,\n        \"price\": 4196.5,\n      },\n      {\n        \"amount\": 130156,\n        \"price\": 4196,\n      },\n      {\n        \"amount\": 20755,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 404633,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 94486,\n        \"price\": 4194.5,\n      },\n      {\n        \"amount\": 182544,\n        \"price\": 4194,\n      },\n      {\n        \"amount\": 12919,\n        \"price\": 4193.5,\n      },\n      {\n        \"amount\": 98941,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 72542,\n        \"price\": 4192.5,\n      },\n      {\n        \"amount\": 772908,\n        \"price\": 4192,\n      },\n      {\n        \"amount\": 20803,\n        \"price\": 4191.5,\n      },\n      {\n        \"amount\": 99987,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 149248,\n        \"price\": 4190.5,\n      },\n      {\n        \"amount\": 1386307,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 184619,\n        \"price\": 4189.5,\n      },\n      {\n        \"amount\": 322023,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 148531,\n        \"price\": 4188.5,\n      },\n      {\n        \"amount\": 1035213,\n        \"price\": 4188,\n      },\n      {\n        \"amount\": 256102,\n        \"price\": 4187.5,\n      },\n      {\n        \"amount\": 381218,\n        \"price\": 4187,\n      },\n      {\n        \"amount\": 670900,\n        \"price\": 4186.5,\n      },\n      {\n        \"amount\": 206437,\n        \"price\": 4186,\n      },\n      {\n        \"amount\": 33529,\n        \"price\": 4185.5,\n      },\n      {\n        \"amount\": 463493,\n        \"price\": 4185,\n      },\n      {\n        \"amount\": 271949,\n        \"price\": 4184.5,\n      },\n      {\n        \"amount\": 90262,\n        \"price\": 4184,\n      },\n      {\n        \"amount\": 75537,\n        \"price\": 4183.5,\n      },\n      {\n        \"amount\": 156968,\n        \"price\": 4183,\n      },\n      {\n        \"amount\": 34452,\n        \"price\": 4182.5,\n      },\n      {\n        \"amount\": 185935,\n        \"price\": 4182,\n      },\n      {\n        \"amount\": 142215,\n        \"price\": 4181.5,\n      },\n      {\n        \"amount\": 55845,\n        \"price\": 4181,\n      },\n      {\n        \"amount\": 67337,\n        \"price\": 4180.5,\n      },\n      {\n        \"amount\": 2024793,\n        \"price\": 4180,\n      },\n      {\n        \"amount\": 326319,\n        \"price\": 4179.5,\n      },\n      {\n        \"amount\": 290742,\n        \"price\": 4179,\n      },\n      {\n        \"amount\": 198349,\n        \"price\": 4178.5,\n      },\n      {\n        \"amount\": 318078,\n        \"price\": 4178,\n      },\n      {\n        \"amount\": 194945,\n        \"price\": 4177.5,\n      },\n      {\n        \"amount\": 577930,\n        \"price\": 4177,\n      },\n      {\n        \"amount\": 136181,\n        \"price\": 4176.5,\n      },\n      {\n        \"amount\": 2088068,\n        \"price\": 4176,\n      },\n      {\n        \"amount\": 490781,\n        \"price\": 4175.5,\n      },\n      {\n        \"amount\": 869035,\n        \"price\": 4175,\n      },\n      {\n        \"amount\": 158373,\n        \"price\": 4174.5,\n      },\n      {\n        \"amount\": 242307,\n        \"price\": 4174,\n      },\n      {\n        \"amount\": 219561,\n        \"price\": 4173.5,\n      },\n      {\n        \"amount\": 138947,\n        \"price\": 4173,\n      },\n      {\n        \"amount\": 216532,\n        \"price\": 4172.5,\n      },\n      {\n        \"amount\": 183053,\n        \"price\": 4172,\n      },\n      {\n        \"amount\": 430231,\n        \"price\": 4171.5,\n      },\n      {\n        \"amount\": 151792,\n        \"price\": 4171,\n      },\n      {\n        \"amount\": 180950,\n        \"price\": 4170.5,\n      },\n      {\n        \"amount\": 1602369,\n        \"price\": 4170,\n      },\n      {\n        \"amount\": 166617,\n        \"price\": 4169.5,\n      },\n      {\n        \"amount\": 154972,\n        \"price\": 4169,\n      },\n      {\n        \"amount\": 14814,\n        \"price\": 4168.5,\n      },\n      {\n        \"amount\": 497321,\n        \"price\": 4168,\n      },\n      {\n        \"amount\": 282941,\n        \"price\": 4167.5,\n      },\n      {\n        \"amount\": 165729,\n        \"price\": 4167,\n      },\n      {\n        \"amount\": 244676,\n        \"price\": 4166.5,\n      },\n      {\n        \"amount\": 375603,\n        \"price\": 4166,\n      },\n      {\n        \"amount\": 536483,\n        \"price\": 4165.5,\n      },\n      {\n        \"amount\": 464136,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 78107,\n        \"price\": 4164.5,\n      },\n      {\n        \"amount\": 189049,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 91098,\n        \"price\": 4163.5,\n      },\n      {\n        \"amount\": 231754,\n        \"price\": 4163,\n      },\n      {\n        \"amount\": 167590,\n        \"price\": 4162.5,\n      },\n      {\n        \"amount\": 118109,\n        \"price\": 4162,\n      },\n      {\n        \"amount\": 181285,\n        \"price\": 4161.5,\n      },\n      {\n        \"amount\": 176192,\n        \"price\": 4161,\n      },\n      {\n        \"amount\": 98479,\n        \"price\": 4160.5,\n      },\n      {\n        \"amount\": 1666999,\n        \"price\": 4160,\n      },\n      {\n        \"amount\": 159158,\n        \"price\": 4159.5,\n      },\n      {\n        \"amount\": 545368,\n        \"price\": 4159,\n      },\n      {\n        \"amount\": 197547,\n        \"price\": 4158.5,\n      },\n      {\n        \"amount\": 692871,\n        \"price\": 4158,\n      },\n      {\n        \"amount\": 492023,\n        \"price\": 4157.5,\n      },\n      {\n        \"amount\": 234335,\n        \"price\": 4157,\n      },\n      {\n        \"amount\": 175017,\n        \"price\": 4156.5,\n      },\n      {\n        \"amount\": 244204,\n        \"price\": 4156,\n      },\n      {\n        \"amount\": 122397,\n        \"price\": 4155.5,\n      },\n      {\n        \"amount\": 915032,\n        \"price\": 4155,\n      },\n      {\n        \"amount\": 23923,\n        \"price\": 4154.5,\n      },\n      {\n        \"amount\": 115275,\n        \"price\": 4154,\n      },\n      {\n        \"amount\": 231700,\n        \"price\": 4153.5,\n      },\n      {\n        \"amount\": 299138,\n        \"price\": 4153,\n      },\n      {\n        \"amount\": 295344,\n        \"price\": 4152.5,\n      },\n      {\n        \"amount\": 1602454,\n        \"price\": 4152,\n      },\n      {\n        \"amount\": 69141,\n        \"price\": 4151.5,\n      },\n      {\n        \"amount\": 449142,\n        \"price\": 4151,\n      },\n      {\n        \"amount\": 102878,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 8126978,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 445307,\n        \"price\": 4149.5,\n      },\n      {\n        \"amount\": 638567,\n        \"price\": 4149,\n      },\n      {\n        \"amount\": 786670,\n        \"price\": 4148.5,\n      },\n      {\n        \"amount\": 2676040,\n        \"price\": 4148,\n      },\n      {\n        \"amount\": 473836,\n        \"price\": 4147.5,\n      },\n      {\n        \"amount\": 454834,\n        \"price\": 4147,\n      },\n      {\n        \"amount\": 96964,\n        \"price\": 4146.5,\n      },\n      {\n        \"amount\": 1929209,\n        \"price\": 4146,\n      },\n      {\n        \"amount\": 474315,\n        \"price\": 4145.5,\n      },\n      {\n        \"amount\": 1002831,\n        \"price\": 4145,\n      },\n      {\n        \"amount\": 445999,\n        \"price\": 4144.5,\n      },\n      {\n        \"amount\": 1782436,\n        \"price\": 4144,\n      },\n      {\n        \"amount\": 65688,\n        \"price\": 4143.5,\n      },\n      {\n        \"amount\": 230488,\n        \"price\": 4143,\n      },\n      {\n        \"amount\": 213124,\n        \"price\": 4142.5,\n      },\n      {\n        \"amount\": 391330,\n        \"price\": 4142,\n      },\n      {\n        \"amount\": 138205,\n        \"price\": 4141.5,\n      },\n      {\n        \"amount\": 372820,\n        \"price\": 4141,\n      },\n      {\n        \"amount\": 103477,\n        \"price\": 4140.5,\n      },\n      {\n        \"amount\": 1301773,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 307203,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 595896,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 74322,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 935213,\n        \"price\": 4138,\n      },\n      {\n        \"amount\": 119356,\n        \"price\": 4137.5,\n      },\n      {\n        \"amount\": 242535,\n        \"price\": 4137,\n      },\n      {\n        \"amount\": 150677,\n        \"price\": 4136.5,\n      },\n      {\n        \"amount\": 196753,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 135535,\n        \"price\": 4135.5,\n      },\n      {\n        \"amount\": 817519,\n        \"price\": 4135,\n      },\n      {\n        \"amount\": 50362,\n        \"price\": 4134.5,\n      },\n      {\n        \"amount\": 1410189,\n        \"price\": 4134,\n      },\n      {\n        \"amount\": 246580,\n        \"price\": 4133.5,\n      },\n      {\n        \"amount\": 436932,\n        \"price\": 4133,\n      },\n      {\n        \"amount\": 422426,\n        \"price\": 4132.5,\n      },\n      {\n        \"amount\": 285610,\n        \"price\": 4132,\n      },\n      {\n        \"amount\": 291821,\n        \"price\": 4131.5,\n      },\n      {\n        \"amount\": 265937,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 336220,\n        \"price\": 4130.5,\n      },\n      {\n        \"amount\": 1951817,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 367013,\n        \"price\": 4129.5,\n      },\n      {\n        \"amount\": 1663432,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 270473,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 984303,\n        \"price\": 4128,\n      },\n      {\n        \"amount\": 222363,\n        \"price\": 4127.5,\n      },\n      {\n        \"amount\": 580259,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 57174,\n        \"price\": 4126.5,\n      },\n      {\n        \"amount\": 848756,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 70346,\n        \"price\": 4125.5,\n      },\n      {\n        \"amount\": 750287,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 163379,\n        \"price\": 4124.5,\n      },\n      {\n        \"amount\": 330340,\n        \"price\": 4124,\n      },\n      {\n        \"amount\": 589498,\n        \"price\": 4123.5,\n      },\n      {\n        \"amount\": 247227,\n        \"price\": 4123,\n      },\n      {\n        \"amount\": 980281,\n        \"price\": 4122.5,\n      },\n      {\n        \"amount\": 389766,\n        \"price\": 4122,\n      },\n      {\n        \"amount\": 439355,\n        \"price\": 4121.5,\n      },\n      {\n        \"amount\": 215536,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 454083,\n        \"price\": 4120.5,\n      },\n      {\n        \"amount\": 2331559,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 455387,\n        \"price\": 4119.5,\n      },\n      {\n        \"amount\": 686225,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 448071,\n        \"price\": 4118.5,\n      },\n      {\n        \"amount\": 1291276,\n        \"price\": 4118,\n      },\n      {\n        \"amount\": 530062,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 1091521,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 112228,\n        \"price\": 4116.5,\n      },\n      {\n        \"amount\": 410409,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 848665,\n        \"price\": 4115.5,\n      },\n      {\n        \"amount\": 1157511,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 256678,\n        \"price\": 4114.5,\n      },\n      {\n        \"amount\": 458139,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 301024,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 305093,\n        \"price\": 4113,\n      },\n      {\n        \"amount\": 97096,\n        \"price\": 4112.5,\n      },\n      {\n        \"amount\": 381370,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 413763,\n        \"price\": 4111.5,\n      },\n      {\n        \"amount\": 246536,\n        \"price\": 4111,\n      },\n      {\n        \"amount\": 137968,\n        \"price\": 4110.5,\n      },\n      {\n        \"amount\": 1768716,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 595038,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 480705,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 251575,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 629774,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 511001,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 359934,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 156701,\n        \"price\": 4106.5,\n      },\n      {\n        \"amount\": 500752,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 288608,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 814344,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 138236,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 250312,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 225538,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 363723,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 97942,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 236470,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 237633,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 143306,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 303955,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3380081,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 634033,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 701225,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 615552,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 1072756,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 642031,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1869388,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 349456,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 661233,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 447952,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 754535,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 517741,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 826929,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 249329,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 1710008,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 287094,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85019,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260468,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 415181,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338371,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341068,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362442,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 206440,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 489525,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 338530,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 71706,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 667137,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 228416,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 633279,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 154960,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 320503,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 156968,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 305318,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 494326,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 646779,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 86282,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 550476,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 160431,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 361340,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 154721,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 355917,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 251778,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 536986,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 272364,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 950868,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 125840,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1031424,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 102161,\n        \"price\": 4073.5,\n      },\n      {\n        \"amount\": 205504,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 138406,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 192357,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 233663,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 212862,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 362313,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 1435873,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 710607,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 308926,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 145927,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 553914,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 131711,\n        \"price\": 4067.5,\n      },\n      {\n        \"amount\": 467406,\n        \"price\": 4067,\n      },\n      {\n        \"amount\": 609881,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 433508,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 196633,\n        \"price\": 4065.5,\n      },\n      {\n        \"amount\": 721321,\n        \"price\": 4065,\n      },\n      {\n        \"amount\": 149480,\n        \"price\": 4064.5,\n      },\n      {\n        \"amount\": 126076,\n        \"price\": 4064,\n      },\n      {\n        \"amount\": 122693,\n        \"price\": 4063.5,\n      },\n      {\n        \"amount\": 497845,\n        \"price\": 4063,\n      },\n      {\n        \"amount\": 206197,\n        \"price\": 4062.5,\n      },\n      {\n        \"amount\": 1334372,\n        \"price\": 4062,\n      },\n      {\n        \"amount\": 281903,\n        \"price\": 4061.5,\n      },\n      {\n        \"amount\": 328616,\n        \"price\": 4061,\n      },\n      {\n        \"amount\": 874115,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 1178160,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 88070,\n        \"price\": 4059.5,\n      },\n      {\n        \"amount\": 123950,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 188841,\n        \"price\": 4058.5,\n      },\n      {\n        \"amount\": 359855,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 105673,\n        \"price\": 4057.5,\n      },\n      {\n        \"amount\": 127487,\n        \"price\": 4057,\n      },\n      {\n        \"amount\": 124740,\n        \"price\": 4056.5,\n      },\n      {\n        \"amount\": 479911,\n        \"price\": 4056,\n      },\n      {\n        \"amount\": 277858,\n        \"price\": 4055.5,\n      },\n      {\n        \"amount\": 706316,\n        \"price\": 4055,\n      },\n      {\n        \"amount\": 250738,\n        \"price\": 4054.5,\n      },\n      {\n        \"amount\": 193223,\n        \"price\": 4054,\n      },\n      {\n        \"amount\": 128904,\n        \"price\": 4053.5,\n      },\n      {\n        \"amount\": 127558,\n        \"price\": 4053,\n      },\n      {\n        \"amount\": 219415,\n        \"price\": 4052.5,\n      },\n      {\n        \"amount\": 587406,\n        \"price\": 4052,\n      },\n      {\n        \"amount\": 100981,\n        \"price\": 4051.5,\n      },\n      {\n        \"amount\": 235679,\n        \"price\": 4051,\n      },\n      {\n        \"amount\": 215519,\n        \"price\": 4050.5,\n      },\n      {\n        \"amount\": 1844011,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 81435,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 303553,\n        \"price\": 4049,\n      },\n      {\n        \"amount\": 109792,\n        \"price\": 4048.5,\n      },\n      {\n        \"amount\": 408298,\n        \"price\": 4048,\n      },\n      {\n        \"amount\": 107007,\n        \"price\": 4047.5,\n      },\n      {\n        \"amount\": 854538,\n        \"price\": 4047,\n      },\n      {\n        \"amount\": 189442,\n        \"price\": 4046.5,\n      },\n      {\n        \"amount\": 664030,\n        \"price\": 4046,\n      },\n      {\n        \"amount\": 182996,\n        \"price\": 4045.5,\n      },\n      {\n        \"amount\": 1603958,\n        \"price\": 4045,\n      },\n      {\n        \"amount\": 141491,\n        \"price\": 4044.5,\n      },\n      {\n        \"amount\": 1091689,\n        \"price\": 4044,\n      },\n      {\n        \"amount\": 93322,\n        \"price\": 4043.5,\n      },\n      {\n        \"amount\": 353629,\n        \"price\": 4043,\n      },\n      {\n        \"amount\": 326965,\n        \"price\": 4042.5,\n      },\n      {\n        \"amount\": 496687,\n        \"price\": 4042,\n      },\n      {\n        \"amount\": 167138,\n        \"price\": 4041.5,\n      },\n      {\n        \"amount\": 1056819,\n        \"price\": 4041,\n      },\n      {\n        \"amount\": 527221,\n        \"price\": 4040.5,\n      },\n      {\n        \"amount\": 2723201,\n        \"price\": 4040,\n      },\n      {\n        \"amount\": 244720,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 528066,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 135609,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 499183,\n        \"price\": 4038,\n      },\n      {\n        \"amount\": 383435,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 328932,\n        \"price\": 4037,\n      },\n      {\n        \"amount\": 635779,\n        \"price\": 4036.5,\n      },\n      {\n        \"amount\": 302361,\n        \"price\": 4036,\n      },\n      {\n        \"amount\": 1083180,\n        \"price\": 4035.5,\n      },\n      {\n        \"amount\": 628894,\n        \"price\": 4035,\n      },\n      {\n        \"amount\": 339948,\n        \"price\": 4034.5,\n      },\n      {\n        \"amount\": 182466,\n        \"price\": 4034,\n      },\n      {\n        \"amount\": 583444,\n        \"price\": 4033.5,\n      },\n      {\n        \"amount\": 548087,\n        \"price\": 4033,\n      },\n      {\n        \"amount\": 613299,\n        \"price\": 4032.5,\n      },\n      {\n        \"amount\": 424464,\n        \"price\": 4032,\n      },\n      {\n        \"amount\": 235817,\n        \"price\": 4031.5,\n      },\n      {\n        \"amount\": 449501,\n        \"price\": 4031,\n      },\n      {\n        \"amount\": 448590,\n        \"price\": 4030.5,\n      },\n      {\n        \"amount\": 2148319,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 133512,\n        \"price\": 4029.5,\n      },\n      {\n        \"amount\": 255763,\n        \"price\": 4029,\n      },\n      {\n        \"amount\": 562282,\n        \"price\": 4028.5,\n      },\n      {\n        \"amount\": 621897,\n        \"price\": 4028,\n      },\n      {\n        \"amount\": 182357,\n        \"price\": 4027.5,\n      },\n      {\n        \"amount\": 569803,\n        \"price\": 4027,\n      },\n      {\n        \"amount\": 1165748,\n        \"price\": 4026.5,\n      },\n      {\n        \"amount\": 424686,\n        \"price\": 4026,\n      },\n      {\n        \"amount\": 1026158,\n        \"price\": 4025.5,\n      },\n      {\n        \"amount\": 1909646,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 598270,\n        \"price\": 4024.5,\n      },\n      {\n        \"amount\": 449001,\n        \"price\": 4024,\n      },\n      {\n        \"amount\": 1551161,\n        \"price\": 4023.5,\n      },\n      {\n        \"amount\": 721659,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 502632,\n        \"price\": 4022.5,\n      },\n      {\n        \"amount\": 999221,\n        \"price\": 4022,\n      },\n      {\n        \"amount\": 133756,\n        \"price\": 4021.5,\n      },\n      {\n        \"amount\": 1420414,\n        \"price\": 4021,\n      },\n      {\n        \"amount\": 418740,\n        \"price\": 4020.5,\n      },\n      {\n        \"amount\": 2175249,\n        \"price\": 4020,\n      },\n      {\n        \"amount\": 241206,\n        \"price\": 4019.5,\n      },\n      {\n        \"amount\": 277868,\n        \"price\": 4019,\n      },\n      {\n        \"amount\": 1244943,\n        \"price\": 4018.5,\n      },\n      {\n        \"amount\": 340920,\n        \"price\": 4018,\n      },\n      {\n        \"amount\": 95815,\n        \"price\": 4017.5,\n      },\n      {\n        \"amount\": 547131,\n        \"price\": 4017,\n      },\n      {\n        \"amount\": 643410,\n        \"price\": 4016.5,\n      },\n      {\n        \"amount\": 403387,\n        \"price\": 4016,\n      },\n      {\n        \"amount\": 262828,\n        \"price\": 4015.5,\n      },\n      {\n        \"amount\": 472905,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 46139,\n        \"price\": 4014.5,\n      },\n      {\n        \"amount\": 290705,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 86624,\n        \"price\": 4013.5,\n      },\n      {\n        \"amount\": 814543,\n        \"price\": 4013,\n      },\n      {\n        \"amount\": 105237,\n        \"price\": 4012.5,\n      },\n      {\n        \"amount\": 522558,\n        \"price\": 4012,\n      },\n      {\n        \"amount\": 89709,\n        \"price\": 4011.5,\n      },\n      {\n        \"amount\": 1258911,\n        \"price\": 4011,\n      },\n      {\n        \"amount\": 420568,\n        \"price\": 4010.5,\n      },\n      {\n        \"amount\": 1821306,\n        \"price\": 4010,\n      },\n      {\n        \"amount\": 394016,\n        \"price\": 4009.5,\n      },\n      {\n        \"amount\": 171769,\n        \"price\": 4009,\n      },\n      {\n        \"amount\": 976487,\n        \"price\": 4008.5,\n      },\n      {\n        \"amount\": 249176,\n        \"price\": 4008,\n      },\n      {\n        \"amount\": 414320,\n        \"price\": 4007.5,\n      },\n      {\n        \"amount\": 177988,\n        \"price\": 4007,\n      },\n      {\n        \"amount\": 387368,\n        \"price\": 4006.5,\n      },\n      {\n        \"amount\": 426100,\n        \"price\": 4006,\n      },\n      {\n        \"amount\": 325989,\n        \"price\": 4005.5,\n      },\n      {\n        \"amount\": 1248142,\n        \"price\": 4005,\n      },\n      {\n        \"amount\": 536440,\n        \"price\": 4004.5,\n      },\n      {\n        \"amount\": 403200,\n        \"price\": 4004,\n      },\n      {\n        \"amount\": 382865,\n        \"price\": 4003.5,\n      },\n      {\n        \"amount\": 409301,\n        \"price\": 4003,\n      },\n      {\n        \"amount\": 607153,\n        \"price\": 4002.5,\n      },\n      {\n        \"amount\": 333602,\n        \"price\": 4002,\n      },\n      {\n        \"amount\": 193254,\n        \"price\": 4001.5,\n      },\n      {\n        \"amount\": 701559,\n        \"price\": 4001,\n      },\n      {\n        \"amount\": 677399,\n        \"price\": 4000.5,\n      },\n      {\n        \"amount\": 1755210,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 156407,\n        \"price\": 3999.5,\n      },\n      {\n        \"amount\": 1310165,\n        \"price\": 3999,\n      },\n      {\n        \"amount\": 225510,\n        \"price\": 3998.5,\n      },\n      {\n        \"amount\": 388022,\n        \"price\": 3998,\n      },\n      {\n        \"amount\": 48707,\n        \"price\": 3997.5,\n      },\n      {\n        \"amount\": 649228,\n        \"price\": 3997,\n      },\n      {\n        \"amount\": 71887,\n        \"price\": 3996.5,\n      },\n      {\n        \"amount\": 166727,\n        \"price\": 3996,\n      },\n      {\n        \"amount\": 114078,\n        \"price\": 3995.5,\n      },\n      {\n        \"amount\": 479202,\n        \"price\": 3995,\n      },\n      {\n        \"amount\": 51345,\n        \"price\": 3994.5,\n      },\n      {\n        \"amount\": 160433,\n        \"price\": 3994,\n      },\n      {\n        \"amount\": 536769,\n        \"price\": 3993.5,\n      },\n      {\n        \"amount\": 125754,\n        \"price\": 3993,\n      },\n      {\n        \"amount\": 141196,\n        \"price\": 3992.5,\n      },\n      {\n        \"amount\": 421773,\n        \"price\": 3992,\n      },\n      {\n        \"amount\": 116734,\n        \"price\": 3991.5,\n      },\n      {\n        \"amount\": 179752,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 383958,\n        \"price\": 3990.5,\n      },\n      {\n        \"amount\": 1309144,\n        \"price\": 3990,\n      },\n      {\n        \"amount\": 36593,\n        \"price\": 3989.5,\n      },\n      {\n        \"amount\": 282168,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 33858,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 460762,\n        \"price\": 3988,\n      },\n      {\n        \"amount\": 17173,\n        \"price\": 3987.5,\n      },\n      {\n        \"amount\": 572691,\n        \"price\": 3987,\n      },\n      {\n        \"amount\": 171526,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 391936,\n        \"price\": 3986,\n      },\n      {\n        \"amount\": 131602,\n        \"price\": 3985.5,\n      },\n      {\n        \"amount\": 1652206,\n        \"price\": 3985,\n      },\n      {\n        \"amount\": 136968,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 181721,\n        \"price\": 3984,\n      },\n      {\n        \"amount\": 60071,\n        \"price\": 3983.5,\n      },\n      {\n        \"amount\": 683591,\n        \"price\": 3983,\n      },\n      {\n        \"amount\": 270260,\n        \"price\": 3982.5,\n      },\n      {\n        \"amount\": 305742,\n        \"price\": 3982,\n      },\n      {\n        \"amount\": 33388,\n        \"price\": 3981.5,\n      },\n      {\n        \"amount\": 529542,\n        \"price\": 3981,\n      },\n      {\n        \"amount\": 218621,\n        \"price\": 3980.5,\n      },\n      {\n        \"amount\": 2524916,\n        \"price\": 3980,\n      },\n      {\n        \"amount\": 22873,\n        \"price\": 3979.5,\n      },\n      {\n        \"amount\": 319484,\n        \"price\": 3979,\n      },\n      {\n        \"amount\": 46850,\n        \"price\": 3978.5,\n      },\n      {\n        \"amount\": 235938,\n        \"price\": 3978,\n      },\n      {\n        \"amount\": 236050,\n        \"price\": 3977.5,\n      },\n      {\n        \"amount\": 903903,\n        \"price\": 3977,\n      },\n      {\n        \"amount\": 112676,\n        \"price\": 3976.5,\n      },\n      {\n        \"amount\": 210490,\n        \"price\": 3976,\n      },\n      {\n        \"amount\": 59167,\n        \"price\": 3975.5,\n      },\n      {\n        \"amount\": 508457,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 45620,\n        \"price\": 3974.5,\n      },\n      {\n        \"amount\": 260304,\n        \"price\": 3974,\n      },\n      {\n        \"amount\": 59871,\n        \"price\": 3973.5,\n      },\n      {\n        \"amount\": 185206,\n        \"price\": 3973,\n      },\n      {\n        \"amount\": 63279,\n        \"price\": 3972.5,\n      },\n      {\n        \"amount\": 390173,\n        \"price\": 3972,\n      },\n      {\n        \"amount\": 86484,\n        \"price\": 3971.5,\n      },\n      {\n        \"amount\": 371237,\n        \"price\": 3971,\n      },\n      {\n        \"amount\": 883991,\n        \"price\": 3970.5,\n      },\n      {\n        \"amount\": 1161221,\n        \"price\": 3970,\n      },\n      {\n        \"amount\": 42987,\n        \"price\": 3969.5,\n      },\n      {\n        \"amount\": 178206,\n        \"price\": 3969,\n      },\n      {\n        \"amount\": 19321,\n        \"price\": 3968.5,\n      },\n      {\n        \"amount\": 139410,\n        \"price\": 3968,\n      },\n      {\n        \"amount\": 130453,\n        \"price\": 3967.5,\n      },\n      {\n        \"amount\": 272552,\n        \"price\": 3967,\n      },\n      {\n        \"amount\": 55111,\n        \"price\": 3966.5,\n      },\n      {\n        \"amount\": 607732,\n        \"price\": 3966,\n      },\n      {\n        \"amount\": 152125,\n        \"price\": 3965.5,\n      },\n      {\n        \"amount\": 671991,\n        \"price\": 3965,\n      },\n      {\n        \"amount\": 328898,\n        \"price\": 3964.5,\n      },\n      {\n        \"amount\": 319178,\n        \"price\": 3964,\n      },\n      {\n        \"amount\": 195296,\n        \"price\": 3963.5,\n      },\n      {\n        \"amount\": 972882,\n        \"price\": 3963,\n      },\n      {\n        \"amount\": 172820,\n        \"price\": 3962.5,\n      },\n      {\n        \"amount\": 1077742,\n        \"price\": 3962,\n      },\n      {\n        \"amount\": 14154,\n        \"price\": 3961.5,\n      },\n      {\n        \"amount\": 443866,\n        \"price\": 3961,\n      },\n      {\n        \"amount\": 104289,\n        \"price\": 3960.5,\n      },\n      {\n        \"amount\": 1499078,\n        \"price\": 3960,\n      },\n      {\n        \"amount\": 92580,\n        \"price\": 3959.5,\n      },\n      {\n        \"amount\": 1022388,\n        \"price\": 3959,\n      },\n      {\n        \"amount\": 51190,\n        \"price\": 3958.5,\n      },\n      {\n        \"amount\": 481778,\n        \"price\": 3958,\n      },\n      {\n        \"amount\": 44418,\n        \"price\": 3957.5,\n      },\n      {\n        \"amount\": 307705,\n        \"price\": 3957,\n      },\n      {\n        \"amount\": 959214,\n        \"price\": 3956.5,\n      },\n      {\n        \"amount\": 663547,\n        \"price\": 3956,\n      },\n      {\n        \"amount\": 131413,\n        \"price\": 3955.5,\n      },\n      {\n        \"amount\": 1346763,\n        \"price\": 3955,\n      },\n      {\n        \"amount\": 85889,\n        \"price\": 3954.5,\n      },\n      {\n        \"amount\": 172733,\n        \"price\": 3954,\n      },\n      {\n        \"amount\": 52670,\n        \"price\": 3953.5,\n      },\n      {\n        \"amount\": 285333,\n        \"price\": 3953,\n      },\n      {\n        \"amount\": 628961,\n        \"price\": 3952.5,\n      },\n      {\n        \"amount\": 354326,\n        \"price\": 3952,\n      },\n      {\n        \"amount\": 64895,\n        \"price\": 3951.5,\n      },\n      {\n        \"amount\": 636949,\n        \"price\": 3951,\n      },\n      {\n        \"amount\": 88955,\n        \"price\": 3950.5,\n      },\n      {\n        \"amount\": 1611196,\n        \"price\": 3950,\n      },\n      {\n        \"amount\": 80866,\n        \"price\": 3949.5,\n      },\n      {\n        \"amount\": 85885,\n        \"price\": 3949,\n      },\n      {\n        \"amount\": 147745,\n        \"price\": 3948.5,\n      },\n      {\n        \"amount\": 337624,\n        \"price\": 3948,\n      },\n      {\n        \"amount\": 40334,\n        \"price\": 3947.5,\n      },\n      {\n        \"amount\": 110325,\n        \"price\": 3947,\n      },\n      {\n        \"amount\": 30946,\n        \"price\": 3946.5,\n      },\n      {\n        \"amount\": 295799,\n        \"price\": 3946,\n      },\n      {\n        \"amount\": 119610,\n        \"price\": 3945.5,\n      },\n      {\n        \"amount\": 471495,\n        \"price\": 3945,\n      },\n      {\n        \"amount\": 46631,\n        \"price\": 3944.5,\n      },\n      {\n        \"amount\": 128168,\n        \"price\": 3944,\n      },\n      {\n        \"amount\": 340215,\n        \"price\": 3943.5,\n      },\n      {\n        \"amount\": 204351,\n        \"price\": 3943,\n      },\n      {\n        \"amount\": 36920,\n        \"price\": 3942.5,\n      },\n      {\n        \"amount\": 181519,\n        \"price\": 3942,\n      },\n      {\n        \"amount\": 58923,\n        \"price\": 3941.5,\n      },\n      {\n        \"amount\": 236936,\n        \"price\": 3941,\n      },\n      {\n        \"amount\": 108952,\n        \"price\": 3940.5,\n      },\n      {\n        \"amount\": 1083833,\n        \"price\": 3940,\n      },\n      {\n        \"amount\": 15622,\n        \"price\": 3939.5,\n      },\n      {\n        \"amount\": 391425,\n        \"price\": 3939,\n      },\n      {\n        \"amount\": 13911,\n        \"price\": 3938.5,\n      },\n      {\n        \"amount\": 481447,\n        \"price\": 3938,\n      },\n      {\n        \"amount\": 26870,\n        \"price\": 3937.5,\n      },\n      {\n        \"amount\": 255331,\n        \"price\": 3937,\n      },\n      {\n        \"amount\": 42785,\n        \"price\": 3936.5,\n      },\n      {\n        \"amount\": 1026281,\n        \"price\": 3936,\n      },\n      {\n        \"amount\": 593493,\n        \"price\": 3935.5,\n      },\n      {\n        \"amount\": 292507,\n        \"price\": 3935,\n      },\n      {\n        \"amount\": 14487,\n        \"price\": 3934.5,\n      },\n      {\n        \"amount\": 221925,\n        \"price\": 3934,\n      },\n      {\n        \"amount\": 97494,\n        \"price\": 3933.5,\n      },\n      {\n        \"amount\": 578769,\n        \"price\": 3933,\n      },\n      {\n        \"amount\": 40964,\n        \"price\": 3932.5,\n      },\n      {\n        \"amount\": 581659,\n        \"price\": 3932,\n      },\n      {\n        \"amount\": 377601,\n        \"price\": 3931.5,\n      },\n      {\n        \"amount\": 322582,\n        \"price\": 3931,\n      },\n      {\n        \"amount\": 303592,\n        \"price\": 3930.5,\n      },\n      {\n        \"amount\": 659253,\n        \"price\": 3930,\n      },\n      {\n        \"amount\": 11730,\n        \"price\": 3929.5,\n      },\n      {\n        \"amount\": 279663,\n        \"price\": 3929,\n      },\n      {\n        \"amount\": 25363,\n        \"price\": 3928.5,\n      },\n      {\n        \"amount\": 121193,\n        \"price\": 3928,\n      },\n      {\n        \"amount\": 55677,\n        \"price\": 3927.5,\n      },\n      {\n        \"amount\": 139978,\n        \"price\": 3927,\n      },\n      {\n        \"amount\": 115768,\n        \"price\": 3926.5,\n      },\n      {\n        \"amount\": 223776,\n        \"price\": 3926,\n      },\n      {\n        \"amount\": 52385,\n        \"price\": 3925.5,\n      },\n      {\n        \"amount\": 1230187,\n        \"price\": 3925,\n      },\n      {\n        \"amount\": 9550,\n        \"price\": 3924.5,\n      },\n      {\n        \"amount\": 397658,\n        \"price\": 3924,\n      },\n      {\n        \"amount\": 161032,\n        \"price\": 3923.5,\n      },\n      {\n        \"amount\": 236140,\n        \"price\": 3923,\n      },\n      {\n        \"amount\": 51446,\n        \"price\": 3922.5,\n      },\n      {\n        \"amount\": 126195,\n        \"price\": 3922,\n      },\n      {\n        \"amount\": 74241,\n        \"price\": 3921.5,\n      },\n      {\n        \"amount\": 533588,\n        \"price\": 3921,\n      },\n      {\n        \"amount\": 43726,\n        \"price\": 3920.5,\n      },\n      {\n        \"amount\": 682106,\n        \"price\": 3920,\n      },\n      {\n        \"amount\": 39118,\n        \"price\": 3919.5,\n      },\n      {\n        \"amount\": 132353,\n        \"price\": 3919,\n      },\n      {\n        \"amount\": 16735,\n        \"price\": 3918.5,\n      },\n      {\n        \"amount\": 102299,\n        \"price\": 3918,\n      },\n      {\n        \"amount\": 24799,\n        \"price\": 3917.5,\n      },\n      {\n        \"amount\": 254012,\n        \"price\": 3917,\n      },\n      {\n        \"amount\": 38392,\n        \"price\": 3916.5,\n      },\n      {\n        \"amount\": 204008,\n        \"price\": 3916,\n      },\n      {\n        \"amount\": 51623,\n        \"price\": 3915.5,\n      },\n      {\n        \"amount\": 473790,\n        \"price\": 3915,\n      },\n      {\n        \"amount\": 66957,\n        \"price\": 3914.5,\n      },\n      {\n        \"amount\": 101875,\n        \"price\": 3914,\n      },\n      {\n        \"amount\": 50475,\n        \"price\": 3913.5,\n      },\n      {\n        \"amount\": 142373,\n        \"price\": 3913,\n      },\n      {\n        \"amount\": 41662,\n        \"price\": 3912.5,\n      },\n      {\n        \"amount\": 129987,\n        \"price\": 3912,\n      },\n      {\n        \"amount\": 14671,\n        \"price\": 3911.5,\n      },\n      {\n        \"amount\": 305513,\n        \"price\": 3911,\n      },\n      {\n        \"amount\": 178183,\n        \"price\": 3910.5,\n      },\n      {\n        \"amount\": 1503424,\n        \"price\": 3910,\n      },\n      {\n        \"amount\": 48864,\n        \"price\": 3909.5,\n      },\n      {\n        \"amount\": 85420,\n        \"price\": 3909,\n      },\n      {\n        \"amount\": 48856,\n        \"price\": 3908.5,\n      },\n      {\n        \"amount\": 284719,\n        \"price\": 3908,\n      },\n      {\n        \"amount\": 41953,\n        \"price\": 3907.5,\n      },\n      {\n        \"amount\": 103874,\n        \"price\": 3907,\n      },\n      {\n        \"amount\": 10689,\n        \"price\": 3906.5,\n      },\n      {\n        \"amount\": 311931,\n        \"price\": 3906,\n      },\n      {\n        \"amount\": 86572,\n        \"price\": 3905.5,\n      },\n      {\n        \"amount\": 263328,\n        \"price\": 3905,\n      },\n      {\n        \"amount\": 47748,\n        \"price\": 3904.5,\n      },\n      {\n        \"amount\": 177042,\n        \"price\": 3904,\n      },\n      {\n        \"amount\": 166844,\n        \"price\": 3903.5,\n      },\n      {\n        \"amount\": 217134,\n        \"price\": 3903,\n      },\n      {\n        \"amount\": 16400,\n        \"price\": 3902.5,\n      },\n      {\n        \"amount\": 229634,\n        \"price\": 3902,\n      },\n      {\n        \"amount\": 11520,\n        \"price\": 3901.5,\n      },\n      {\n        \"amount\": 446905,\n        \"price\": 3901,\n      },\n      {\n        \"amount\": 1428785,\n        \"price\": 3900.5,\n      },\n      {\n        \"amount\": 1318193,\n        \"price\": 3900,\n      },\n      {\n        \"amount\": 1137,\n        \"price\": 3899.5,\n      },\n      {\n        \"amount\": 114115,\n        \"price\": 3899,\n      },\n      {\n        \"amount\": 6706,\n        \"price\": 3898.5,\n      },\n      {\n        \"amount\": 55005,\n        \"price\": 3898,\n      },\n      {\n        \"amount\": 18914,\n        \"price\": 3897.5,\n      },\n      {\n        \"amount\": 20387,\n        \"price\": 3897,\n      },\n      {\n        \"amount\": 13895,\n        \"price\": 3896.5,\n      },\n      {\n        \"amount\": 46430,\n        \"price\": 3896,\n      },\n      {\n        \"amount\": 119423,\n        \"price\": 3895.5,\n      },\n      {\n        \"amount\": 101612,\n        \"price\": 3895,\n      },\n      {\n        \"amount\": 1221,\n        \"price\": 3894.5,\n      },\n      {\n        \"amount\": 58281,\n        \"price\": 3894,\n      },\n      {\n        \"amount\": 18199,\n        \"price\": 3893.5,\n      },\n      {\n        \"amount\": 50039,\n        \"price\": 3893,\n      },\n      {\n        \"amount\": 182196,\n        \"price\": 3892.5,\n      },\n      {\n        \"amount\": 210786,\n        \"price\": 3892,\n      },\n      {\n        \"amount\": 5611,\n        \"price\": 3891.5,\n      },\n      {\n        \"amount\": 425327,\n        \"price\": 3891,\n      },\n      {\n        \"amount\": 104579,\n        \"price\": 3890.5,\n      },\n      {\n        \"amount\": 768008,\n        \"price\": 3890,\n      },\n      {\n        \"amount\": 122945,\n        \"price\": 3889.5,\n      },\n      {\n        \"amount\": 712311,\n        \"price\": 3889,\n      },\n      {\n        \"amount\": 66471,\n        \"price\": 3888.5,\n      },\n      {\n        \"amount\": 369191,\n        \"price\": 3888,\n      },\n      {\n        \"amount\": 402924,\n        \"price\": 3887.5,\n      },\n      {\n        \"amount\": 200118,\n        \"price\": 3887,\n      },\n      {\n        \"amount\": 8408,\n        \"price\": 3886.5,\n      },\n      {\n        \"amount\": 168592,\n        \"price\": 3886,\n      },\n      {\n        \"amount\": 135680,\n        \"price\": 3885.5,\n      },\n      {\n        \"amount\": 262940,\n        \"price\": 3885,\n      },\n      {\n        \"amount\": 72684,\n        \"price\": 3884.5,\n      },\n      {\n        \"amount\": 486705,\n        \"price\": 3884,\n      },\n      {\n        \"amount\": 62750,\n        \"price\": 3883.5,\n      },\n      {\n        \"amount\": 151414,\n        \"price\": 3883,\n      },\n      {\n        \"amount\": 100424,\n        \"price\": 3882.5,\n      },\n      {\n        \"amount\": 468429,\n        \"price\": 3882,\n      },\n      {\n        \"amount\": 27160,\n        \"price\": 3881.5,\n      },\n      {\n        \"amount\": 181089,\n        \"price\": 3881,\n      },\n      {\n        \"amount\": 43228,\n        \"price\": 3880.5,\n      },\n      {\n        \"amount\": 1082895,\n        \"price\": 3880,\n      },\n      {\n        \"amount\": 11790,\n        \"price\": 3879.5,\n      },\n      {\n        \"amount\": 139072,\n        \"price\": 3879,\n      },\n      {\n        \"amount\": 17845,\n        \"price\": 3878.5,\n      },\n      {\n        \"amount\": 77792,\n        \"price\": 3878,\n      },\n      {\n        \"amount\": 17938,\n        \"price\": 3877.5,\n      },\n      {\n        \"amount\": 255318,\n        \"price\": 3877,\n      },\n      {\n        \"amount\": 1300,\n        \"price\": 3876.5,\n      },\n      {\n        \"amount\": 130360,\n        \"price\": 3876,\n      },\n      {\n        \"amount\": 268907,\n        \"price\": 3875.5,\n      },\n      {\n        \"amount\": 169168,\n        \"price\": 3875,\n      },\n      {\n        \"amount\": 74155,\n        \"price\": 3874.5,\n      },\n      {\n        \"amount\": 60576,\n        \"price\": 3874,\n      },\n      {\n        \"amount\": 16695,\n        \"price\": 3873.5,\n      },\n      {\n        \"amount\": 34885,\n        \"price\": 3873,\n      },\n      {\n        \"amount\": 21039,\n        \"price\": 3872.5,\n      },\n      {\n        \"amount\": 165323,\n        \"price\": 3872,\n      },\n      {\n        \"amount\": 40870,\n        \"price\": 3871.5,\n      },\n      {\n        \"amount\": 207924,\n        \"price\": 3871,\n      },\n      {\n        \"amount\": 87420,\n        \"price\": 3870.5,\n      },\n      {\n        \"amount\": 683621,\n        \"price\": 3870,\n      },\n      {\n        \"amount\": 49196,\n        \"price\": 3869.5,\n      },\n      {\n        \"amount\": 67124,\n        \"price\": 3869,\n      },\n      {\n        \"amount\": 14567,\n        \"price\": 3868.5,\n      },\n      {\n        \"amount\": 184830,\n        \"price\": 3868,\n      },\n      {\n        \"amount\": 80638,\n        \"price\": 3867.5,\n      },\n      {\n        \"amount\": 108003,\n        \"price\": 3867,\n      },\n      {\n        \"amount\": 27473,\n        \"price\": 3866.5,\n      },\n      {\n        \"amount\": 214173,\n        \"price\": 3866,\n      },\n      {\n        \"amount\": 72939,\n        \"price\": 3865.5,\n      },\n      {\n        \"amount\": 1696876,\n        \"price\": 3865,\n      },\n      {\n        \"amount\": 23135,\n        \"price\": 3864.5,\n      },\n      {\n        \"amount\": 86276,\n        \"price\": 3864,\n      },\n      {\n        \"amount\": 45378,\n        \"price\": 3863.5,\n      },\n      {\n        \"amount\": 181747,\n        \"price\": 3863,\n      },\n      {\n        \"amount\": 24243,\n        \"price\": 3862.5,\n      },\n      {\n        \"amount\": 142056,\n        \"price\": 3862,\n      },\n      {\n        \"amount\": 118230,\n        \"price\": 3861.5,\n      },\n      {\n        \"amount\": 505303,\n        \"price\": 3861,\n      },\n      {\n        \"amount\": 86730,\n        \"price\": 3860.5,\n      },\n      {\n        \"amount\": 482641,\n        \"price\": 3860,\n      },\n      {\n        \"amount\": 30774,\n        \"price\": 3859.5,\n      },\n      {\n        \"amount\": 130570,\n        \"price\": 3859,\n      },\n      {\n        \"amount\": 160601,\n        \"price\": 3858.5,\n      },\n      {\n        \"amount\": 84053,\n        \"price\": 3858,\n      },\n      {\n        \"amount\": 33934,\n        \"price\": 3857.5,\n      },\n      {\n        \"amount\": 330399,\n        \"price\": 3857,\n      },\n      {\n        \"amount\": 1260,\n        \"price\": 3856.5,\n      },\n      {\n        \"amount\": 361633,\n        \"price\": 3856,\n      },\n      {\n        \"amount\": 39767,\n        \"price\": 3855.5,\n      },\n      {\n        \"amount\": 1373851,\n        \"price\": 3855,\n      },\n      {\n        \"amount\": 10399,\n        \"price\": 3854.5,\n      },\n      {\n        \"amount\": 68155,\n        \"price\": 3854,\n      },\n      {\n        \"amount\": 115916,\n        \"price\": 3853.5,\n      },\n      {\n        \"amount\": 120875,\n        \"price\": 3853,\n      },\n      {\n        \"amount\": 19372,\n        \"price\": 3852.5,\n      },\n      {\n        \"amount\": 161728,\n        \"price\": 3852,\n      },\n      {\n        \"amount\": 60590,\n        \"price\": 3851.5,\n      },\n      {\n        \"amount\": 303031,\n        \"price\": 3851,\n      },\n      {\n        \"amount\": 79572,\n        \"price\": 3850.5,\n      },\n      {\n        \"amount\": 1671794,\n        \"price\": 3850,\n      },\n      {\n        \"amount\": 15967,\n        \"price\": 3849.5,\n      },\n      {\n        \"amount\": 32820,\n        \"price\": 3849,\n      },\n      {\n        \"amount\": 10411,\n        \"price\": 3848.5,\n      },\n      {\n        \"amount\": 79893,\n        \"price\": 3848,\n      },\n      {\n        \"amount\": 22280,\n        \"price\": 3847.5,\n      },\n      {\n        \"amount\": 24104,\n        \"price\": 3847,\n      },\n      {\n        \"amount\": 34100,\n        \"price\": 3846.5,\n      },\n      {\n        \"amount\": 34012,\n        \"price\": 3846,\n      },\n      {\n        \"amount\": 50150,\n        \"price\": 3845.5,\n      },\n      {\n        \"amount\": 160392,\n        \"price\": 3845,\n      },\n      {\n        \"amount\": 11170,\n        \"price\": 3844.5,\n      },\n      {\n        \"amount\": 226041,\n        \"price\": 3844,\n      },\n      {\n        \"amount\": 104062,\n        \"price\": 3843.5,\n      },\n      {\n        \"amount\": 38463,\n        \"price\": 3843,\n      },\n      {\n        \"amount\": 19498,\n        \"price\": 3842.5,\n      },\n      {\n        \"amount\": 44285,\n        \"price\": 3842,\n      },\n      {\n        \"amount\": 884979,\n        \"price\": 3841.5,\n      },\n      {\n        \"amount\": 17035,\n        \"price\": 3841,\n      },\n      {\n        \"amount\": 57757,\n        \"price\": 3840.5,\n      },\n      {\n        \"amount\": 217063,\n        \"price\": 3840,\n      },\n      {\n        \"amount\": 111368,\n        \"price\": 3839.5,\n      },\n      {\n        \"amount\": 260486,\n        \"price\": 3839,\n      },\n      {\n        \"amount\": 131683,\n        \"price\": 3838.5,\n      },\n      {\n        \"amount\": 233375,\n        \"price\": 3838,\n      },\n      {\n        \"amount\": 18260,\n        \"price\": 3837.5,\n      },\n      {\n        \"amount\": 117178,\n        \"price\": 3837,\n      },\n      {\n        \"amount\": 25146,\n        \"price\": 3836.5,\n      },\n      {\n        \"amount\": 393236,\n        \"price\": 3836,\n      },\n      {\n        \"amount\": 20234,\n        \"price\": 3835.5,\n      },\n      {\n        \"amount\": 133289,\n        \"price\": 3835,\n      },\n      {\n        \"amount\": 15671,\n        \"price\": 3834.5,\n      },\n      {\n        \"amount\": 16338,\n        \"price\": 3834,\n      },\n      {\n        \"amount\": 19507,\n        \"price\": 3833.5,\n      },\n      {\n        \"amount\": 75317,\n        \"price\": 3833,\n      },\n      {\n        \"amount\": 34361,\n        \"price\": 3832.5,\n      },\n      {\n        \"amount\": 730227,\n        \"price\": 3832,\n      },\n      {\n        \"amount\": 1792,\n        \"price\": 3831.5,\n      },\n      {\n        \"amount\": 121430,\n        \"price\": 3831,\n      },\n      {\n        \"amount\": 108858,\n        \"price\": 3830.5,\n      },\n      {\n        \"amount\": 310762,\n        \"price\": 3830,\n      },\n      {\n        \"amount\": 131800,\n        \"price\": 3829.5,\n      },\n      {\n        \"amount\": 23510,\n        \"price\": 3829,\n      },\n      {\n        \"amount\": 7958,\n        \"price\": 3828.5,\n      },\n      {\n        \"amount\": 768201,\n        \"price\": 3828,\n      },\n      {\n        \"amount\": 14999,\n        \"price\": 3827.5,\n      },\n      {\n        \"amount\": 46175,\n        \"price\": 3827,\n      },\n      {\n        \"amount\": 32019,\n        \"price\": 3826.5,\n      },\n      {\n        \"amount\": 25748,\n        \"price\": 3826,\n      },\n      {\n        \"amount\": 23465,\n        \"price\": 3825.5,\n      },\n      {\n        \"amount\": 893043,\n        \"price\": 3825,\n      },\n      {\n        \"amount\": 14611,\n        \"price\": 3824.5,\n      },\n      {\n        \"amount\": 104615,\n        \"price\": 3824,\n      },\n      {\n        \"amount\": 59649,\n        \"price\": 3823.5,\n      },\n      {\n        \"amount\": 37195,\n        \"price\": 3823,\n      },\n      {\n        \"amount\": 17341,\n        \"price\": 3822.5,\n      },\n      {\n        \"amount\": 181963,\n        \"price\": 3822,\n      },\n      {\n        \"amount\": 5070,\n        \"price\": 3821.5,\n      },\n      {\n        \"amount\": 20063,\n        \"price\": 3821,\n      },\n      {\n        \"amount\": 27828,\n        \"price\": 3820.5,\n      },\n      {\n        \"amount\": 391325,\n        \"price\": 3820,\n      },\n      {\n        \"amount\": 108490,\n        \"price\": 3819.5,\n      },\n      {\n        \"amount\": 43274,\n        \"price\": 3819,\n      },\n      {\n        \"amount\": 11050,\n        \"price\": 3818.5,\n      },\n      {\n        \"amount\": 163024,\n        \"price\": 3818,\n      },\n      {\n        \"amount\": 7464,\n        \"price\": 3817.5,\n      },\n      {\n        \"amount\": 47078,\n        \"price\": 3817,\n      },\n      {\n        \"amount\": 12190,\n        \"price\": 3816.5,\n      },\n      {\n        \"amount\": 265814,\n        \"price\": 3816,\n      },\n      {\n        \"amount\": 18240,\n        \"price\": 3815.5,\n      },\n      {\n        \"amount\": 287547,\n        \"price\": 3815,\n      },\n      {\n        \"amount\": 117745,\n        \"price\": 3814.5,\n      },\n      {\n        \"amount\": 27419,\n        \"price\": 3814,\n      },\n      {\n        \"amount\": 1024859,\n        \"price\": 3813.5,\n      },\n      {\n        \"amount\": 29750,\n        \"price\": 3813,\n      },\n      {\n        \"amount\": 13765,\n        \"price\": 3812.5,\n      },\n      {\n        \"amount\": 91220,\n        \"price\": 3812,\n      },\n      {\n        \"amount\": 18203,\n        \"price\": 3811.5,\n      },\n      {\n        \"amount\": 80183,\n        \"price\": 3811,\n      },\n      {\n        \"amount\": 36652,\n        \"price\": 3810.5,\n      },\n      {\n        \"amount\": 234839,\n        \"price\": 3810,\n      },\n      {\n        \"amount\": 106486,\n        \"price\": 3809.5,\n      },\n      {\n        \"amount\": 46909,\n        \"price\": 3809,\n      },\n      {\n        \"amount\": 6780,\n        \"price\": 3808.5,\n      },\n      {\n        \"amount\": 88011,\n        \"price\": 3808,\n      },\n      {\n        \"amount\": 37500,\n        \"price\": 3807.5,\n      },\n      {\n        \"amount\": 35953,\n        \"price\": 3807,\n      },\n      {\n        \"amount\": 71529,\n        \"price\": 3806.5,\n      },\n      {\n        \"amount\": 36115,\n        \"price\": 3806,\n      },\n      {\n        \"amount\": 23348,\n        \"price\": 3805.5,\n      },\n      {\n        \"amount\": 228940,\n        \"price\": 3805,\n      },\n      {\n        \"amount\": 8260,\n        \"price\": 3804.5,\n      },\n      {\n        \"amount\": 35250,\n        \"price\": 3804,\n      },\n      {\n        \"amount\": 67671,\n        \"price\": 3803.5,\n      },\n      {\n        \"amount\": 82181,\n        \"price\": 3803,\n      },\n      {\n        \"amount\": 49240,\n        \"price\": 3802.5,\n      },\n      {\n        \"amount\": 58239,\n        \"price\": 3802,\n      },\n      {\n        \"amount\": 56620,\n        \"price\": 3801.5,\n      },\n      {\n        \"amount\": 1149102,\n        \"price\": 3801,\n      },\n      {\n        \"amount\": 211955,\n        \"price\": 3800.5,\n      },\n      {\n        \"amount\": 1623608,\n        \"price\": 3800,\n      },\n      {\n        \"amount\": 51080,\n        \"price\": 3799.5,\n      },\n      {\n        \"amount\": 82986,\n        \"price\": 3799,\n      },\n      {\n        \"amount\": 3012,\n        \"price\": 3798.5,\n      },\n      {\n        \"amount\": 41220,\n        \"price\": 3798,\n      },\n      {\n        \"amount\": 62405,\n        \"price\": 3797.5,\n      },\n      {\n        \"amount\": 25076,\n        \"price\": 3797,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3796.5,\n      },\n      {\n        \"amount\": 20069,\n        \"price\": 3796,\n      },\n      {\n        \"amount\": 15887,\n        \"price\": 3795.5,\n      },\n      {\n        \"amount\": 56992,\n        \"price\": 3795,\n      },\n      {\n        \"amount\": 3475,\n        \"price\": 3794.5,\n      },\n      {\n        \"amount\": 14470,\n        \"price\": 3794,\n      },\n      {\n        \"amount\": 3150,\n        \"price\": 3793.5,\n      },\n      {\n        \"amount\": 33240,\n        \"price\": 3793,\n      },\n      {\n        \"amount\": 33336,\n        \"price\": 3792.5,\n      },\n      {\n        \"amount\": 120882,\n        \"price\": 3792,\n      },\n      {\n        \"amount\": 301638,\n        \"price\": 3791.5,\n      },\n      {\n        \"amount\": 171473,\n        \"price\": 3791,\n      },\n      {\n        \"amount\": 7388,\n        \"price\": 3790.5,\n      },\n      {\n        \"amount\": 399017,\n        \"price\": 3790,\n      },\n      {\n        \"amount\": 120348,\n        \"price\": 3789.5,\n      },\n      {\n        \"amount\": 1775,\n        \"price\": 3789,\n      },\n      {\n        \"amount\": 8526,\n        \"price\": 3788.5,\n      },\n      {\n        \"amount\": 148920,\n        \"price\": 3788,\n      },\n      {\n        \"amount\": 12953,\n        \"price\": 3787.5,\n      },\n      {\n        \"amount\": 26259,\n        \"price\": 3787,\n      },\n      {\n        \"amount\": 22420,\n        \"price\": 3786.5,\n      },\n      {\n        \"amount\": 46703,\n        \"price\": 3786,\n      },\n      {\n        \"amount\": 17610,\n        \"price\": 3785.5,\n      },\n      {\n        \"amount\": 58816,\n        \"price\": 3785,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 3784.5,\n      },\n      {\n        \"amount\": 27134,\n        \"price\": 3784,\n      },\n      {\n        \"amount\": 19160,\n        \"price\": 3783.5,\n      },\n      {\n        \"amount\": 55402,\n        \"price\": 3783,\n      },\n      {\n        \"amount\": 8350,\n        \"price\": 3782.5,\n      },\n      {\n        \"amount\": 338647,\n        \"price\": 3782,\n      },\n      {\n        \"amount\": 30680,\n        \"price\": 3781.5,\n      },\n      {\n        \"amount\": 68068,\n        \"price\": 3781,\n      },\n      {\n        \"amount\": 9087,\n        \"price\": 3780.5,\n      },\n      {\n        \"amount\": 535349,\n        \"price\": 3780,\n      },\n      {\n        \"amount\": 172650,\n        \"price\": 3779.5,\n      },\n      {\n        \"amount\": 139386,\n        \"price\": 3779,\n      },\n      {\n        \"amount\": 3532,\n        \"price\": 3778.5,\n      },\n      {\n        \"amount\": 32281,\n        \"price\": 3778,\n      },\n      {\n        \"amount\": 69387,\n        \"price\": 3777.5,\n      },\n      {\n        \"amount\": 747463,\n        \"price\": 3777,\n      },\n      {\n        \"amount\": 27590,\n        \"price\": 3776.5,\n      },\n      {\n        \"amount\": 22399,\n        \"price\": 3776,\n      },\n      {\n        \"amount\": 152614,\n        \"price\": 3775.5,\n      },\n      {\n        \"amount\": 170366,\n        \"price\": 3775,\n      },\n      {\n        \"amount\": 19916,\n        \"price\": 3774.5,\n      },\n      {\n        \"amount\": 93664,\n        \"price\": 3774,\n      },\n      {\n        \"amount\": 5219,\n        \"price\": 3773.5,\n      },\n      {\n        \"amount\": 40281,\n        \"price\": 3773,\n      },\n      {\n        \"amount\": 56215,\n        \"price\": 3772.5,\n      },\n      {\n        \"amount\": 33641,\n        \"price\": 3772,\n      },\n      {\n        \"amount\": 96573,\n        \"price\": 3771.5,\n      },\n      {\n        \"amount\": 192250,\n        \"price\": 3771,\n      },\n      {\n        \"amount\": 48750,\n        \"price\": 3770.5,\n      },\n      {\n        \"amount\": 334605,\n        \"price\": 3770,\n      },\n      {\n        \"amount\": 66406,\n        \"price\": 3769.5,\n      },\n      {\n        \"amount\": 60701,\n        \"price\": 3769,\n      },\n      {\n        \"amount\": 17850,\n        \"price\": 3768.5,\n      },\n      {\n        \"amount\": 52898,\n        \"price\": 3768,\n      },\n      {\n        \"amount\": 7460,\n        \"price\": 3767.5,\n      },\n      {\n        \"amount\": 49697,\n        \"price\": 3767,\n      },\n      {\n        \"amount\": 319972,\n        \"price\": 3766.5,\n      },\n      {\n        \"amount\": 139551,\n        \"price\": 3766,\n      },\n      {\n        \"amount\": 35376,\n        \"price\": 3765.5,\n      },\n      {\n        \"amount\": 273259,\n        \"price\": 3765,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3764.5,\n      },\n      {\n        \"amount\": 57537,\n        \"price\": 3764,\n      },\n      {\n        \"amount\": 11976,\n        \"price\": 3763.5,\n      },\n      {\n        \"amount\": 130390,\n        \"price\": 3763,\n      },\n      {\n        \"amount\": 59868,\n        \"price\": 3762.5,\n      },\n      {\n        \"amount\": 179394,\n        \"price\": 3762,\n      },\n      {\n        \"amount\": 34661,\n        \"price\": 3761.5,\n      },\n      {\n        \"amount\": 150300,\n        \"price\": 3761,\n      },\n      {\n        \"amount\": 65377,\n        \"price\": 3760.5,\n      },\n      {\n        \"amount\": 519351,\n        \"price\": 3760,\n      },\n      {\n        \"amount\": 4870,\n        \"price\": 3759.5,\n      },\n      {\n        \"amount\": 129261,\n        \"price\": 3759,\n      },\n      {\n        \"amount\": 6675,\n        \"price\": 3758.5,\n      },\n      {\n        \"amount\": 332966,\n        \"price\": 3758,\n      },\n      {\n        \"amount\": 19389,\n        \"price\": 3757.5,\n      },\n      {\n        \"amount\": 168922,\n        \"price\": 3757,\n      },\n      {\n        \"amount\": 7940,\n        \"price\": 3756.5,\n      },\n      {\n        \"amount\": 492952,\n        \"price\": 3756,\n      },\n      {\n        \"amount\": 86904,\n        \"price\": 3755.5,\n      },\n      {\n        \"amount\": 362173,\n        \"price\": 3755,\n      },\n      {\n        \"amount\": 23109,\n        \"price\": 3754.5,\n      },\n      {\n        \"amount\": 318161,\n        \"price\": 3754,\n      },\n      {\n        \"amount\": 4480,\n        \"price\": 3753.5,\n      },\n      {\n        \"amount\": 90750,\n        \"price\": 3753,\n      },\n      {\n        \"amount\": 35203,\n        \"price\": 3752.5,\n      },\n      {\n        \"amount\": 39925,\n        \"price\": 3752,\n      },\n      {\n        \"amount\": 18843,\n        \"price\": 3751.5,\n      },\n      {\n        \"amount\": 101472,\n        \"price\": 3751,\n      },\n      {\n        \"amount\": 18209,\n        \"price\": 3750.5,\n      },\n      {\n        \"amount\": 1435093,\n        \"price\": 3750,\n      },\n      {\n        \"amount\": 20956,\n        \"price\": 3749.5,\n      },\n      {\n        \"amount\": 21174,\n        \"price\": 3749,\n      },\n      {\n        \"amount\": 20732,\n        \"price\": 3748.5,\n      },\n      {\n        \"amount\": 26855,\n        \"price\": 3748,\n      },\n      {\n        \"amount\": 36200,\n        \"price\": 3747.5,\n      },\n      {\n        \"amount\": 7335,\n        \"price\": 3747,\n      },\n      {\n        \"amount\": 18817,\n        \"price\": 3746.5,\n      },\n      {\n        \"amount\": 231595,\n        \"price\": 3746,\n      },\n      {\n        \"amount\": 13625,\n        \"price\": 3745.5,\n      },\n      {\n        \"amount\": 39555,\n        \"price\": 3745,\n      },\n      {\n        \"amount\": 2220,\n        \"price\": 3744.5,\n      },\n      {\n        \"amount\": 156495,\n        \"price\": 3744,\n      },\n      {\n        \"amount\": 24800,\n        \"price\": 3743.5,\n      },\n      {\n        \"amount\": 52594,\n        \"price\": 3743,\n      },\n      {\n        \"amount\": 18155,\n        \"price\": 3742.5,\n      },\n      {\n        \"amount\": 26627,\n        \"price\": 3742,\n      },\n      {\n        \"amount\": 14251,\n        \"price\": 3741.5,\n      },\n      {\n        \"amount\": 10211,\n        \"price\": 3741,\n      },\n      {\n        \"amount\": 6685,\n        \"price\": 3740.5,\n      },\n      {\n        \"amount\": 413703,\n        \"price\": 3740,\n      },\n      {\n        \"amount\": 4700,\n        \"price\": 3739.5,\n      },\n      {\n        \"amount\": 64129,\n        \"price\": 3739,\n      },\n      {\n        \"amount\": 15650,\n        \"price\": 3738.5,\n      },\n      {\n        \"amount\": 77702,\n        \"price\": 3738,\n      },\n      {\n        \"amount\": 32407,\n        \"price\": 3737.5,\n      },\n      {\n        \"amount\": 114060,\n        \"price\": 3737,\n      },\n      {\n        \"amount\": 12601,\n        \"price\": 3736.5,\n      },\n      {\n        \"amount\": 25252,\n        \"price\": 3736,\n      },\n      {\n        \"amount\": 15282,\n        \"price\": 3735.5,\n      },\n      {\n        \"amount\": 109125,\n        \"price\": 3735,\n      },\n      {\n        \"amount\": 8158,\n        \"price\": 3734.5,\n      },\n      {\n        \"amount\": 28635,\n        \"price\": 3734,\n      },\n      {\n        \"amount\": 46582,\n        \"price\": 3733.5,\n      },\n      {\n        \"amount\": 33711,\n        \"price\": 3733,\n      },\n      {\n        \"amount\": 6940,\n        \"price\": 3732.5,\n      },\n      {\n        \"amount\": 23160,\n        \"price\": 3732,\n      },\n      {\n        \"amount\": 10422,\n        \"price\": 3731.5,\n      },\n      {\n        \"amount\": 19320,\n        \"price\": 3731,\n      },\n      {\n        \"amount\": 52650,\n        \"price\": 3730.5,\n      },\n      {\n        \"amount\": 198296,\n        \"price\": 3730,\n      },\n      {\n        \"amount\": 12325,\n        \"price\": 3729.5,\n      },\n      {\n        \"amount\": 7801,\n        \"price\": 3729,\n      },\n      {\n        \"amount\": 29188,\n        \"price\": 3728.5,\n      },\n      {\n        \"amount\": 128921,\n        \"price\": 3728,\n      },\n      {\n        \"amount\": 23600,\n        \"price\": 3727.5,\n      },\n      {\n        \"amount\": 286105,\n        \"price\": 3727,\n      },\n      {\n        \"amount\": 517107,\n        \"price\": 3726.5,\n      },\n      {\n        \"amount\": 213034,\n        \"price\": 3726,\n      },\n      {\n        \"amount\": 49009,\n        \"price\": 3725.5,\n      },\n      {\n        \"amount\": 52252,\n        \"price\": 3725,\n      },\n      {\n        \"amount\": 5570,\n        \"price\": 3724.5,\n      },\n      {\n        \"amount\": 36332,\n        \"price\": 3724,\n      },\n      {\n        \"amount\": 73683,\n        \"price\": 3723.5,\n      },\n      {\n        \"amount\": 103512,\n        \"price\": 3723,\n      },\n      {\n        \"amount\": 47475,\n        \"price\": 3722.5,\n      },\n      {\n        \"amount\": 1333922,\n        \"price\": 3722,\n      },\n      {\n        \"amount\": 12346,\n        \"price\": 3721.5,\n      },\n      {\n        \"amount\": 62132,\n        \"price\": 3721,\n      },\n      {\n        \"amount\": 50397,\n        \"price\": 3720.5,\n      },\n      {\n        \"amount\": 408243,\n        \"price\": 3720,\n      },\n      {\n        \"amount\": 20525,\n        \"price\": 3719.5,\n      },\n      {\n        \"amount\": 34900,\n        \"price\": 3719,\n      },\n      {\n        \"amount\": 3397,\n        \"price\": 3718.5,\n      },\n      {\n        \"amount\": 73585,\n        \"price\": 3718,\n      },\n      {\n        \"amount\": 6730,\n        \"price\": 3717.5,\n      },\n      {\n        \"amount\": 26337,\n        \"price\": 3717,\n      },\n      {\n        \"amount\": 31463,\n        \"price\": 3716.5,\n      },\n      {\n        \"amount\": 111818,\n        \"price\": 3716,\n      },\n      {\n        \"amount\": 13397,\n        \"price\": 3715.5,\n      },\n      {\n        \"amount\": 166080,\n        \"price\": 3715,\n      },\n      {\n        \"amount\": 3600,\n        \"price\": 3714.5,\n      },\n      {\n        \"amount\": 5677,\n        \"price\": 3714,\n      },\n      {\n        \"amount\": 62600,\n        \"price\": 3713.5,\n      },\n      {\n        \"amount\": 124991,\n        \"price\": 3713,\n      },\n      {\n        \"amount\": 24502,\n        \"price\": 3712.5,\n      },\n      {\n        \"amount\": 127548,\n        \"price\": 3712,\n      },\n      {\n        \"amount\": 9790,\n        \"price\": 3711.5,\n      },\n      {\n        \"amount\": 15541,\n        \"price\": 3711,\n      },\n      {\n        \"amount\": 54198,\n        \"price\": 3710.5,\n      },\n      {\n        \"amount\": 115558,\n        \"price\": 3710,\n      },\n      {\n        \"amount\": 13617,\n        \"price\": 3709.5,\n      },\n      {\n        \"amount\": 26789,\n        \"price\": 3709,\n      },\n      {\n        \"amount\": 22380,\n        \"price\": 3708.5,\n      },\n      {\n        \"amount\": 166906,\n        \"price\": 3708,\n      },\n      {\n        \"amount\": 45688,\n        \"price\": 3707.5,\n      },\n      {\n        \"amount\": 82928,\n        \"price\": 3707,\n      },\n      {\n        \"amount\": 64650,\n        \"price\": 3706.5,\n      },\n      {\n        \"amount\": 38239,\n        \"price\": 3706,\n      },\n      {\n        \"amount\": 29726,\n        \"price\": 3705.5,\n      },\n      {\n        \"amount\": 215740,\n        \"price\": 3705,\n      },\n      {\n        \"amount\": 17185,\n        \"price\": 3704.5,\n      },\n      {\n        \"amount\": 39959,\n        \"price\": 3704,\n      },\n      {\n        \"amount\": 15850,\n        \"price\": 3703.5,\n      },\n      {\n        \"amount\": 386324,\n        \"price\": 3703,\n      },\n      {\n        \"amount\": 12812,\n        \"price\": 3702.5,\n      },\n      {\n        \"amount\": 486068,\n        \"price\": 3702,\n      },\n      {\n        \"amount\": 1103243,\n        \"price\": 3701.5,\n      },\n      {\n        \"amount\": 678692,\n        \"price\": 3701,\n      },\n      {\n        \"amount\": 849504,\n        \"price\": 3700.5,\n      },\n      {\n        \"amount\": 1240047,\n        \"price\": 3700,\n      },\n      {\n        \"amount\": 22341,\n        \"price\": 3699.5,\n      },\n      {\n        \"amount\": 246386,\n        \"price\": 3699,\n      },\n      {\n        \"amount\": 8276,\n        \"price\": 3698.5,\n      },\n      {\n        \"amount\": 292804,\n        \"price\": 3698,\n      },\n      {\n        \"amount\": 117846,\n        \"price\": 3697.5,\n      },\n      {\n        \"amount\": 121496,\n        \"price\": 3697,\n      },\n      {\n        \"amount\": 113526,\n        \"price\": 3696.5,\n      },\n      {\n        \"amount\": 119050,\n        \"price\": 3696,\n      },\n      {\n        \"amount\": 115155,\n        \"price\": 3695.5,\n      },\n      {\n        \"amount\": 111142,\n        \"price\": 3695,\n      },\n      {\n        \"amount\": 126586,\n        \"price\": 3694.5,\n      },\n      {\n        \"amount\": 110786,\n        \"price\": 3694,\n      },\n      {\n        \"amount\": 117362,\n        \"price\": 3693.5,\n      },\n      {\n        \"amount\": 136530,\n        \"price\": 3693,\n      },\n      {\n        \"amount\": 105569,\n        \"price\": 3692.5,\n      },\n      {\n        \"amount\": 132800,\n        \"price\": 3692,\n      },\n      {\n        \"amount\": 63638,\n        \"price\": 3691.5,\n      },\n      {\n        \"amount\": 55430,\n        \"price\": 3691,\n      },\n      {\n        \"amount\": 20313,\n        \"price\": 3690.5,\n      },\n      {\n        \"amount\": 189934,\n        \"price\": 3690,\n      },\n      {\n        \"amount\": 130071,\n        \"price\": 3689.5,\n      },\n      {\n        \"amount\": 283270,\n        \"price\": 3689,\n      },\n      {\n        \"amount\": 9117,\n        \"price\": 3688.5,\n      },\n      {\n        \"amount\": 266558,\n        \"price\": 3688,\n      },\n      {\n        \"amount\": 43269,\n        \"price\": 3687.5,\n      },\n      {\n        \"amount\": 38589,\n        \"price\": 3687,\n      },\n      {\n        \"amount\": 20418,\n        \"price\": 3686.5,\n      },\n      {\n        \"amount\": 59290,\n        \"price\": 3686,\n      },\n      {\n        \"amount\": 1043650,\n        \"price\": 3685.5,\n      },\n      {\n        \"amount\": 101196,\n        \"price\": 3685,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 3684.5,\n      },\n      {\n        \"amount\": 36311,\n        \"price\": 3684,\n      },\n      {\n        \"amount\": 158006,\n        \"price\": 3683.5,\n      },\n      {\n        \"amount\": 70555,\n        \"price\": 3683,\n      },\n      {\n        \"amount\": 34570,\n        \"price\": 3682.5,\n      },\n      {\n        \"amount\": 480154,\n        \"price\": 3682,\n      },\n      {\n        \"amount\": 28715,\n        \"price\": 3681.5,\n      },\n      {\n        \"amount\": 1111338,\n        \"price\": 3681,\n      },\n      {\n        \"amount\": 35420,\n        \"price\": 3680.5,\n      },\n      {\n        \"amount\": 1435003,\n        \"price\": 3680,\n      },\n      {\n        \"amount\": 2284,\n        \"price\": 3679.5,\n      },\n      {\n        \"amount\": 80786,\n        \"price\": 3679,\n      },\n      {\n        \"amount\": 561266,\n        \"price\": 3678.5,\n      },\n      {\n        \"amount\": 58437,\n        \"price\": 3678,\n      },\n      {\n        \"amount\": 126227,\n        \"price\": 3677.5,\n      },\n      {\n        \"amount\": 72045,\n        \"price\": 3677,\n      },\n      {\n        \"amount\": 12862,\n        \"price\": 3676.5,\n      },\n      {\n        \"amount\": 92964,\n        \"price\": 3676,\n      },\n      {\n        \"amount\": 68634,\n        \"price\": 3675.5,\n      },\n      {\n        \"amount\": 231726,\n        \"price\": 3675,\n      },\n      {\n        \"amount\": 26934,\n        \"price\": 3674.5,\n      },\n      {\n        \"amount\": 8264,\n        \"price\": 3674,\n      },\n      {\n        \"amount\": 154030,\n        \"price\": 3673.5,\n      },\n      {\n        \"amount\": 58058,\n        \"price\": 3673,\n      },\n      {\n        \"amount\": 63000,\n        \"price\": 3672.5,\n      },\n      {\n        \"amount\": 35133,\n        \"price\": 3672,\n      },\n      {\n        \"amount\": 10774,\n        \"price\": 3671.5,\n      },\n      {\n        \"amount\": 92073,\n        \"price\": 3671,\n      },\n      {\n        \"amount\": 35566,\n        \"price\": 3670.5,\n      },\n      {\n        \"amount\": 257871,\n        \"price\": 3670,\n      },\n      {\n        \"amount\": 19120,\n        \"price\": 3669.5,\n      },\n      {\n        \"amount\": 17746,\n        \"price\": 3669,\n      },\n      {\n        \"amount\": 69044,\n        \"price\": 3668.5,\n      },\n      {\n        \"amount\": 50490,\n        \"price\": 3668,\n      },\n      {\n        \"amount\": 76303,\n        \"price\": 3667.5,\n      },\n      {\n        \"amount\": 130468,\n        \"price\": 3667,\n      },\n      {\n        \"amount\": 8660,\n        \"price\": 3666.5,\n      },\n      {\n        \"amount\": 208798,\n        \"price\": 3666,\n      },\n      {\n        \"amount\": 11075,\n        \"price\": 3665.5,\n      },\n      {\n        \"amount\": 136872,\n        \"price\": 3665,\n      },\n      {\n        \"amount\": 4803,\n        \"price\": 3664.5,\n      },\n      {\n        \"amount\": 75485,\n        \"price\": 3664,\n      },\n      {\n        \"amount\": 6591,\n        \"price\": 3663.5,\n      },\n      {\n        \"amount\": 56799,\n        \"price\": 3663,\n      },\n      {\n        \"amount\": 11832,\n        \"price\": 3662.5,\n      },\n      {\n        \"amount\": 48983,\n        \"price\": 3662,\n      },\n      {\n        \"amount\": 41542,\n        \"price\": 3661.5,\n      },\n      {\n        \"amount\": 444070,\n        \"price\": 3661,\n      },\n      {\n        \"amount\": 6800,\n        \"price\": 3660.5,\n      },\n      {\n        \"amount\": 410151,\n        \"price\": 3660,\n      },\n      {\n        \"amount\": 17851,\n        \"price\": 3659.5,\n      },\n      {\n        \"amount\": 136918,\n        \"price\": 3659,\n      },\n      {\n        \"amount\": 7515,\n        \"price\": 3658.5,\n      },\n      {\n        \"amount\": 296340,\n        \"price\": 3658,\n      },\n      {\n        \"amount\": 14230,\n        \"price\": 3657.5,\n      },\n      {\n        \"amount\": 62520,\n        \"price\": 3657,\n      },\n      {\n        \"amount\": 36980,\n        \"price\": 3656.5,\n      },\n      {\n        \"amount\": 35670,\n        \"price\": 3656,\n      },\n      {\n        \"amount\": 38407,\n        \"price\": 3655.5,\n      },\n      {\n        \"amount\": 203235,\n        \"price\": 3655,\n      },\n      {\n        \"amount\": 6177,\n        \"price\": 3654.5,\n      },\n      {\n        \"amount\": 214587,\n        \"price\": 3654,\n      },\n      {\n        \"amount\": 17670,\n        \"price\": 3653.5,\n      },\n      {\n        \"amount\": 514369,\n        \"price\": 3653,\n      },\n      {\n        \"amount\": 19698,\n        \"price\": 3652.5,\n      },\n      {\n        \"amount\": 30760,\n        \"price\": 3652,\n      },\n      {\n        \"amount\": 62610,\n        \"price\": 3651.5,\n      },\n      {\n        \"amount\": 151993,\n        \"price\": 3651,\n      },\n      {\n        \"amount\": 55411,\n        \"price\": 3650.5,\n      },\n      {\n        \"amount\": 3092934,\n        \"price\": 3650,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 3649.5,\n      },\n      {\n        \"amount\": 13624,\n        \"price\": 3649,\n      },\n      {\n        \"amount\": 5021,\n        \"price\": 3648.5,\n      },\n      {\n        \"amount\": 46744,\n        \"price\": 3648,\n      },\n      {\n        \"amount\": 4422,\n        \"price\": 3647.5,\n      },\n      {\n        \"amount\": 48245,\n        \"price\": 3647,\n      },\n      {\n        \"amount\": 20595,\n        \"price\": 3646.5,\n      },\n      {\n        \"amount\": 19554,\n        \"price\": 3646,\n      },\n      {\n        \"amount\": 5312,\n        \"price\": 3645.5,\n      },\n      {\n        \"amount\": 289867,\n        \"price\": 3645,\n      },\n      {\n        \"amount\": 439366,\n        \"price\": 3644.5,\n      },\n      {\n        \"amount\": 7159,\n        \"price\": 3644,\n      },\n      {\n        \"amount\": 6100,\n        \"price\": 3643.5,\n      },\n      {\n        \"amount\": 62600,\n        \"price\": 3643,\n      },\n      {\n        \"amount\": 36620,\n        \"price\": 3642.5,\n      },\n      {\n        \"amount\": 53127,\n        \"price\": 3642,\n      },\n      {\n        \"amount\": 4250,\n        \"price\": 3641.5,\n      },\n      {\n        \"amount\": 10150,\n        \"price\": 3641,\n      },\n      {\n        \"amount\": 6800,\n        \"price\": 3640.5,\n      },\n      {\n        \"amount\": 88498,\n        \"price\": 3640,\n      },\n      {\n        \"amount\": 1048,\n        \"price\": 3639.5,\n      },\n      {\n        \"amount\": 5110,\n        \"price\": 3639,\n      },\n      {\n        \"amount\": 21050,\n        \"price\": 3638.5,\n      },\n      {\n        \"amount\": 39563,\n        \"price\": 3638,\n      },\n      {\n        \"amount\": 14300,\n        \"price\": 3637.5,\n      },\n      {\n        \"amount\": 29458,\n        \"price\": 3637,\n      },\n      {\n        \"amount\": 3200,\n        \"price\": 3636.5,\n      },\n      {\n        \"amount\": 28424,\n        \"price\": 3636,\n      },\n      {\n        \"amount\": 219595,\n        \"price\": 3635.5,\n      },\n      {\n        \"amount\": 141295,\n        \"price\": 3635,\n      },\n      {\n        \"amount\": 5162,\n        \"price\": 3634.5,\n      },\n      {\n        \"amount\": 39978,\n        \"price\": 3634,\n      },\n      {\n        \"amount\": 11450,\n        \"price\": 3633.5,\n      },\n      {\n        \"amount\": 371858,\n        \"price\": 3633,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3632.5,\n      },\n      {\n        \"amount\": 18947,\n        \"price\": 3632,\n      },\n      {\n        \"amount\": 31403,\n        \"price\": 3631.5,\n      },\n      {\n        \"amount\": 4172,\n        \"price\": 3631,\n      },\n      {\n        \"amount\": 36397,\n        \"price\": 3630.5,\n      },\n      {\n        \"amount\": 712578,\n        \"price\": 3630,\n      },\n      {\n        \"amount\": 14510,\n        \"price\": 3629.5,\n      },\n      {\n        \"amount\": 8240,\n        \"price\": 3629,\n      },\n      {\n        \"amount\": 346251,\n        \"price\": 3628.5,\n      },\n      {\n        \"amount\": 22539,\n        \"price\": 3628,\n      },\n      {\n        \"amount\": 59534,\n        \"price\": 3627.5,\n      },\n      {\n        \"amount\": 10501,\n        \"price\": 3627,\n      },\n      {\n        \"amount\": 10092,\n        \"price\": 3626.5,\n      },\n      {\n        \"amount\": 90514,\n        \"price\": 3626,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 3625.5,\n      },\n      {\n        \"amount\": 196952,\n        \"price\": 3625,\n      },\n      {\n        \"amount\": 40815,\n        \"price\": 3624.5,\n      },\n      {\n        \"amount\": 39628,\n        \"price\": 3624,\n      },\n      {\n        \"amount\": 112930,\n        \"price\": 3623.5,\n      },\n      {\n        \"amount\": 170196,\n        \"price\": 3623,\n      },\n      {\n        \"amount\": 8300,\n        \"price\": 3622.5,\n      },\n      {\n        \"amount\": 98011,\n        \"price\": 3622,\n      },\n      {\n        \"amount\": 9150,\n        \"price\": 3621.5,\n      },\n      {\n        \"amount\": 23032,\n        \"price\": 3621,\n      },\n      {\n        \"amount\": 78745,\n        \"price\": 3620.5,\n      },\n      {\n        \"amount\": 287189,\n        \"price\": 3620,\n      },\n      {\n        \"amount\": 16121,\n        \"price\": 3619.5,\n      },\n      {\n        \"amount\": 4869,\n        \"price\": 3619,\n      },\n      {\n        \"amount\": 13000,\n        \"price\": 3618.5,\n      },\n      {\n        \"amount\": 16772,\n        \"price\": 3618,\n      },\n      {\n        \"amount\": 83665,\n        \"price\": 3617.5,\n      },\n      {\n        \"amount\": 53810,\n        \"price\": 3617,\n      },\n      {\n        \"amount\": 8050,\n        \"price\": 3616.5,\n      },\n      {\n        \"amount\": 37411,\n        \"price\": 3616,\n      },\n      {\n        \"amount\": 570,\n        \"price\": 3615.5,\n      },\n      {\n        \"amount\": 192721,\n        \"price\": 3615,\n      },\n      {\n        \"amount\": 92945,\n        \"price\": 3614.5,\n      },\n      {\n        \"amount\": 9014,\n        \"price\": 3614,\n      },\n      {\n        \"amount\": 12675,\n        \"price\": 3613.5,\n      },\n      {\n        \"amount\": 23242,\n        \"price\": 3613,\n      },\n      {\n        \"amount\": 110000,\n        \"price\": 3612.5,\n      },\n      {\n        \"amount\": 42308,\n        \"price\": 3612,\n      },\n      {\n        \"amount\": 20037,\n        \"price\": 3611.5,\n      },\n      {\n        \"amount\": 88794,\n        \"price\": 3611,\n      },\n      {\n        \"amount\": 14182,\n        \"price\": 3610.5,\n      },\n      {\n        \"amount\": 184643,\n        \"price\": 3610,\n      },\n      {\n        \"amount\": 41077,\n        \"price\": 3609.5,\n      },\n      {\n        \"amount\": 1034684,\n        \"price\": 3609,\n      },\n      {\n        \"amount\": 74697,\n        \"price\": 3608.5,\n      },\n      {\n        \"amount\": 384429,\n        \"price\": 3608,\n      },\n      {\n        \"amount\": 55400,\n        \"price\": 3607.5,\n      },\n      {\n        \"amount\": 18198,\n        \"price\": 3607,\n      },\n      {\n        \"amount\": 68046,\n        \"price\": 3606.5,\n      },\n      {\n        \"amount\": 187692,\n        \"price\": 3606,\n      },\n      {\n        \"amount\": 96860,\n        \"price\": 3605.5,\n      },\n      {\n        \"amount\": 47043,\n        \"price\": 3605,\n      },\n      {\n        \"amount\": 51500,\n        \"price\": 3604.5,\n      },\n      {\n        \"amount\": 153005,\n        \"price\": 3604,\n      },\n      {\n        \"amount\": 150890,\n        \"price\": 3603.5,\n      },\n      {\n        \"amount\": 154821,\n        \"price\": 3603,\n      },\n      {\n        \"amount\": 145387,\n        \"price\": 3602.5,\n      },\n      {\n        \"amount\": 111737,\n        \"price\": 3602,\n      },\n      {\n        \"amount\": 1872094,\n        \"price\": 3601.5,\n      },\n      {\n        \"amount\": 68678,\n        \"price\": 3601,\n      },\n      {\n        \"amount\": 53884,\n        \"price\": 3600.5,\n      },\n      {\n        \"amount\": 2704432,\n        \"price\": 3600,\n      },\n      {\n        \"amount\": 82585,\n        \"price\": 3599.5,\n      },\n      {\n        \"amount\": 2798,\n        \"price\": 3599,\n      },\n      {\n        \"amount\": 7246,\n        \"price\": 3598.5,\n      },\n      {\n        \"amount\": 23156,\n        \"price\": 3598,\n      },\n      {\n        \"amount\": 16660,\n        \"price\": 3597.5,\n      },\n      {\n        \"amount\": 211255,\n        \"price\": 3597,\n      },\n      {\n        \"amount\": 53650,\n        \"price\": 3596.5,\n      },\n      {\n        \"amount\": 118885,\n        \"price\": 3596,\n      },\n      {\n        \"amount\": 13259,\n        \"price\": 3595.5,\n      },\n      {\n        \"amount\": 71381,\n        \"price\": 3595,\n      },\n      {\n        \"amount\": 4056,\n        \"price\": 3594.5,\n      },\n      {\n        \"amount\": 100888,\n        \"price\": 3594,\n      },\n      {\n        \"amount\": 4820,\n        \"price\": 3593.5,\n      },\n      {\n        \"amount\": 115293,\n        \"price\": 3593,\n      },\n      {\n        \"amount\": 16650,\n        \"price\": 3592.5,\n      },\n      {\n        \"amount\": 285610,\n        \"price\": 3592,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 3591.5,\n      },\n      {\n        \"amount\": 128555,\n        \"price\": 3591,\n      },\n      {\n        \"amount\": 35215,\n        \"price\": 3590.5,\n      },\n      {\n        \"amount\": 2908102,\n        \"price\": 3590,\n      },\n      {\n        \"amount\": 32850,\n        \"price\": 3589.5,\n      },\n      {\n        \"amount\": 20963,\n        \"price\": 3589,\n      },\n      {\n        \"amount\": 92258,\n        \"price\": 3588.5,\n      },\n      {\n        \"amount\": 319388,\n        \"price\": 3588,\n      },\n      {\n        \"amount\": 23510,\n        \"price\": 3587.5,\n      },\n      {\n        \"amount\": 128435,\n        \"price\": 3587,\n      },\n      {\n        \"amount\": 186718,\n        \"price\": 3586.5,\n      },\n      {\n        \"amount\": 327959,\n        \"price\": 3586,\n      },\n      {\n        \"amount\": 39100,\n        \"price\": 3585.5,\n      },\n      {\n        \"amount\": 23612,\n        \"price\": 3585,\n      },\n      {\n        \"amount\": 6100,\n        \"price\": 3584.5,\n      },\n      {\n        \"amount\": 107029,\n        \"price\": 3584,\n      },\n      {\n        \"amount\": 234276,\n        \"price\": 3583.5,\n      },\n      {\n        \"amount\": 140694,\n        \"price\": 3583,\n      },\n      {\n        \"amount\": 16070,\n        \"price\": 3582.5,\n      },\n      {\n        \"amount\": 664826,\n        \"price\": 3582,\n      },\n      {\n        \"amount\": 10250,\n        \"price\": 3581.5,\n      },\n      {\n        \"amount\": 310456,\n        \"price\": 3581,\n      },\n      {\n        \"amount\": 7210,\n        \"price\": 3580.5,\n      },\n      {\n        \"amount\": 645486,\n        \"price\": 3580,\n      },\n      {\n        \"amount\": 22370,\n        \"price\": 3579.5,\n      },\n      {\n        \"amount\": 34924,\n        \"price\": 3579,\n      },\n      {\n        \"amount\": 1140,\n        \"price\": 3578.5,\n      },\n      {\n        \"amount\": 24397,\n        \"price\": 3578,\n      },\n      {\n        \"amount\": 6279,\n        \"price\": 3577.5,\n      },\n      {\n        \"amount\": 111040,\n        \"price\": 3577,\n      },\n      {\n        \"amount\": 1180,\n        \"price\": 3576.5,\n      },\n      {\n        \"amount\": 18898,\n        \"price\": 3576,\n      },\n      {\n        \"amount\": 34290,\n        \"price\": 3575.5,\n      },\n      {\n        \"amount\": 213140,\n        \"price\": 3575,\n      },\n      {\n        \"amount\": 49601,\n        \"price\": 3574.5,\n      },\n      {\n        \"amount\": 36994,\n        \"price\": 3574,\n      },\n      {\n        \"amount\": 11323,\n        \"price\": 3573.5,\n      },\n      {\n        \"amount\": 51851,\n        \"price\": 3573,\n      },\n      {\n        \"amount\": 13820,\n        \"price\": 3572.5,\n      },\n      {\n        \"amount\": 150661,\n        \"price\": 3572,\n      },\n      {\n        \"amount\": 52848,\n        \"price\": 3571.5,\n      },\n      {\n        \"amount\": 8389,\n        \"price\": 3571,\n      },\n      {\n        \"amount\": 73605,\n        \"price\": 3570.5,\n      },\n      {\n        \"amount\": 336445,\n        \"price\": 3570,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 3569.5,\n      },\n      {\n        \"amount\": 22370,\n        \"price\": 3569,\n      },\n      {\n        \"amount\": 42545,\n        \"price\": 3568.5,\n      },\n      {\n        \"amount\": 157664,\n        \"price\": 3568,\n      },\n      {\n        \"amount\": 206300,\n        \"price\": 3567.5,\n      },\n      {\n        \"amount\": 90718,\n        \"price\": 3567,\n      },\n      {\n        \"amount\": 26030,\n        \"price\": 3566.5,\n      },\n      {\n        \"amount\": 704664,\n        \"price\": 3566,\n      },\n      {\n        \"amount\": 53192,\n        \"price\": 3565.5,\n      },\n      {\n        \"amount\": 288064,\n        \"price\": 3565,\n      },\n      {\n        \"amount\": 21890,\n        \"price\": 3564.5,\n      },\n      {\n        \"amount\": 5304,\n        \"price\": 3564,\n      },\n      {\n        \"amount\": 10654,\n        \"price\": 3563.5,\n      },\n      {\n        \"amount\": 109261,\n        \"price\": 3563,\n      },\n      {\n        \"amount\": 946,\n        \"price\": 3562.5,\n      },\n      {\n        \"amount\": 417457,\n        \"price\": 3562,\n      },\n      {\n        \"amount\": 5634,\n        \"price\": 3561.5,\n      },\n      {\n        \"amount\": 216023,\n        \"price\": 3561,\n      },\n      {\n        \"amount\": 24900,\n        \"price\": 3560.5,\n      },\n      {\n        \"amount\": 606671,\n        \"price\": 3560,\n      },\n      {\n        \"amount\": 12300,\n        \"price\": 3559.5,\n      },\n      {\n        \"amount\": 4700,\n        \"price\": 3559,\n      },\n      {\n        \"amount\": 4627,\n        \"price\": 3558.5,\n      },\n      {\n        \"amount\": 418651,\n        \"price\": 3558,\n      },\n      {\n        \"amount\": 3100,\n        \"price\": 3557.5,\n      },\n      {\n        \"amount\": 198681,\n        \"price\": 3557,\n      },\n      {\n        \"amount\": 113505,\n        \"price\": 3556.5,\n      },\n      {\n        \"amount\": 136284,\n        \"price\": 3556,\n      },\n      {\n        \"amount\": 225396,\n        \"price\": 3555.5,\n      },\n      {\n        \"amount\": 329484,\n        \"price\": 3555,\n      },\n      {\n        \"amount\": 114710,\n        \"price\": 3554.5,\n      },\n      {\n        \"amount\": 393313,\n        \"price\": 3554,\n      },\n      {\n        \"amount\": 112887,\n        \"price\": 3553.5,\n      },\n      {\n        \"amount\": 142443,\n        \"price\": 3553,\n      },\n      {\n        \"amount\": 115050,\n        \"price\": 3552.5,\n      },\n      {\n        \"amount\": 324491,\n        \"price\": 3552,\n      },\n      {\n        \"amount\": 115030,\n        \"price\": 3551.5,\n      },\n      {\n        \"amount\": 138261,\n        \"price\": 3551,\n      },\n      {\n        \"amount\": 133970,\n        \"price\": 3550.5,\n      },\n      {\n        \"amount\": 1507309,\n        \"price\": 3550,\n      },\n      {\n        \"amount\": 51750,\n        \"price\": 3549.5,\n      },\n      {\n        \"amount\": 5995,\n        \"price\": 3549,\n      },\n      {\n        \"amount\": 3202,\n        \"price\": 3548.5,\n      },\n      {\n        \"amount\": 16262,\n        \"price\": 3548,\n      },\n      {\n        \"amount\": 13208,\n        \"price\": 3547.5,\n      },\n      {\n        \"amount\": 11057,\n        \"price\": 3547,\n      },\n      {\n        \"amount\": 5088,\n        \"price\": 3546.5,\n      },\n      {\n        \"amount\": 18550,\n        \"price\": 3546,\n      },\n      {\n        \"amount\": 10435,\n        \"price\": 3545.5,\n      },\n      {\n        \"amount\": 14275,\n        \"price\": 3545,\n      },\n      {\n        \"amount\": 1900,\n        \"price\": 3544.5,\n      },\n      {\n        \"amount\": 20314,\n        \"price\": 3544,\n      },\n      {\n        \"amount\": 6150,\n        \"price\": 3543.5,\n      },\n      {\n        \"amount\": 37540,\n        \"price\": 3543,\n      },\n      {\n        \"amount\": 6200,\n        \"price\": 3542.5,\n      },\n      {\n        \"amount\": 108478,\n        \"price\": 3542,\n      },\n      {\n        \"amount\": 1574,\n        \"price\": 3541.5,\n      },\n      {\n        \"amount\": 116751,\n        \"price\": 3541,\n      },\n      {\n        \"amount\": 78739,\n        \"price\": 3540.5,\n      },\n      {\n        \"amount\": 119547,\n        \"price\": 3540,\n      },\n      {\n        \"amount\": 5465,\n        \"price\": 3539.5,\n      },\n      {\n        \"amount\": 17954,\n        \"price\": 3539,\n      },\n      {\n        \"amount\": 3740,\n        \"price\": 3538.5,\n      },\n      {\n        \"amount\": 103018,\n        \"price\": 3538,\n      },\n      {\n        \"amount\": 132110,\n        \"price\": 3537.5,\n      },\n      {\n        \"amount\": 36773,\n        \"price\": 3537,\n      },\n      {\n        \"amount\": 8185,\n        \"price\": 3536.5,\n      },\n      {\n        \"amount\": 204605,\n        \"price\": 3536,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 3535.5,\n      },\n      {\n        \"amount\": 586325,\n        \"price\": 3535,\n      },\n      {\n        \"amount\": 3252,\n        \"price\": 3534.5,\n      },\n      {\n        \"amount\": 39891,\n        \"price\": 3534,\n      },\n      {\n        \"amount\": 10647,\n        \"price\": 3533.5,\n      },\n      {\n        \"amount\": 133502,\n        \"price\": 3533,\n      },\n      {\n        \"amount\": 23718,\n        \"price\": 3532.5,\n      },\n      {\n        \"amount\": 23921,\n        \"price\": 3532,\n      },\n      {\n        \"amount\": 121256,\n        \"price\": 3531.5,\n      },\n      {\n        \"amount\": 99170,\n        \"price\": 3531,\n      },\n      {\n        \"amount\": 69311,\n        \"price\": 3530.5,\n      },\n      {\n        \"amount\": 742193,\n        \"price\": 3530,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3529.5,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 3529,\n      },\n      {\n        \"amount\": 20600,\n        \"price\": 3528.5,\n      },\n      {\n        \"amount\": 26818,\n        \"price\": 3528,\n      },\n      {\n        \"amount\": 3850,\n        \"price\": 3527.5,\n      },\n      {\n        \"amount\": 66729,\n        \"price\": 3527,\n      },\n      {\n        \"amount\": 22000,\n        \"price\": 3526.5,\n      },\n      {\n        \"amount\": 140026,\n        \"price\": 3526,\n      },\n      {\n        \"amount\": 7558,\n        \"price\": 3525.5,\n      },\n      {\n        \"amount\": 94760,\n        \"price\": 3525,\n      },\n      {\n        \"amount\": 5857,\n        \"price\": 3524.5,\n      },\n      {\n        \"amount\": 22296,\n        \"price\": 3524,\n      },\n      {\n        \"amount\": 79490,\n        \"price\": 3523.5,\n      },\n      {\n        \"amount\": 37687,\n        \"price\": 3523,\n      },\n      {\n        \"amount\": 5134,\n        \"price\": 3522.5,\n      },\n      {\n        \"amount\": 223786,\n        \"price\": 3522,\n      },\n      {\n        \"amount\": 7526,\n        \"price\": 3521.5,\n      },\n      {\n        \"amount\": 158549,\n        \"price\": 3521,\n      },\n      {\n        \"amount\": 206710,\n        \"price\": 3520.5,\n      },\n      {\n        \"amount\": 156528,\n        \"price\": 3520,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3519.5,\n      },\n      {\n        \"amount\": 184,\n        \"price\": 3519,\n      },\n      {\n        \"amount\": 4600,\n        \"price\": 3518.5,\n      },\n      {\n        \"amount\": 659630,\n        \"price\": 3518,\n      },\n      {\n        \"amount\": 14632,\n        \"price\": 3517.5,\n      },\n      {\n        \"amount\": 1062472,\n        \"price\": 3517,\n      },\n      {\n        \"amount\": 3531,\n        \"price\": 3516.5,\n      },\n      {\n        \"amount\": 94830,\n        \"price\": 3516,\n      },\n      {\n        \"amount\": 25768,\n        \"price\": 3515.5,\n      },\n      {\n        \"amount\": 146580,\n        \"price\": 3515,\n      },\n      {\n        \"amount\": 11000,\n        \"price\": 3514.5,\n      },\n      {\n        \"amount\": 36777,\n        \"price\": 3514,\n      },\n      {\n        \"amount\": 101213,\n        \"price\": 3513.5,\n      },\n      {\n        \"amount\": 12862,\n        \"price\": 3513,\n      },\n      {\n        \"amount\": 2112,\n        \"price\": 3512.5,\n      },\n      {\n        \"amount\": 91156,\n        \"price\": 3512,\n      },\n      {\n        \"amount\": 60461,\n        \"price\": 3511.5,\n      },\n      {\n        \"amount\": 129582,\n        \"price\": 3511,\n      },\n      {\n        \"amount\": 10395,\n        \"price\": 3510.5,\n      },\n      {\n        \"amount\": 1643633,\n        \"price\": 3510,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 3509.5,\n      },\n      {\n        \"amount\": 34437,\n        \"price\": 3509,\n      },\n      {\n        \"amount\": 4972,\n        \"price\": 3508.5,\n      },\n      {\n        \"amount\": 16140,\n        \"price\": 3508,\n      },\n      {\n        \"amount\": 30599,\n        \"price\": 3507.5,\n      },\n      {\n        \"amount\": 97059,\n        \"price\": 3507,\n      },\n      {\n        \"amount\": 106328,\n        \"price\": 3506.5,\n      },\n      {\n        \"amount\": 118713,\n        \"price\": 3506,\n      },\n      {\n        \"amount\": 19175,\n        \"price\": 3505.5,\n      },\n      {\n        \"amount\": 62921,\n        \"price\": 3505,\n      },\n      {\n        \"amount\": 3175,\n        \"price\": 3504.5,\n      },\n      {\n        \"amount\": 8250,\n        \"price\": 3504,\n      },\n      {\n        \"amount\": 4770,\n        \"price\": 3503.5,\n      },\n      {\n        \"amount\": 27800,\n        \"price\": 3503,\n      },\n      {\n        \"amount\": 1120,\n        \"price\": 3502.5,\n      },\n      {\n        \"amount\": 235039,\n        \"price\": 3502,\n      },\n      {\n        \"amount\": 1010083,\n        \"price\": 3501.5,\n      },\n      {\n        \"amount\": 22809,\n        \"price\": 3501,\n      },\n      {\n        \"amount\": 45439,\n        \"price\": 3500.5,\n      },\n      {\n        \"amount\": 588783,\n        \"price\": 3500,\n      },\n      {\n        \"amount\": 5303,\n        \"price\": 3499.5,\n      },\n      {\n        \"amount\": 9063,\n        \"price\": 3499,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3498.5,\n      },\n      {\n        \"amount\": 26045,\n        \"price\": 3498,\n      },\n      {\n        \"amount\": 832,\n        \"price\": 3497.5,\n      },\n      {\n        \"amount\": 5548,\n        \"price\": 3497,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3496.5,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 3496,\n      },\n      {\n        \"amount\": 3550,\n        \"price\": 3495.5,\n      },\n      {\n        \"amount\": 27055,\n        \"price\": 3495,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 3494.5,\n      },\n      {\n        \"amount\": 5169,\n        \"price\": 3494,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3493.5,\n      },\n      {\n        \"amount\": 11326,\n        \"price\": 3493,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 3492.5,\n      },\n      {\n        \"amount\": 2822,\n        \"price\": 3492,\n      },\n      {\n        \"amount\": 2440,\n        \"price\": 3491.5,\n      },\n      {\n        \"amount\": 47450,\n        \"price\": 3491,\n      },\n      {\n        \"amount\": 6600,\n        \"price\": 3490.5,\n      },\n      {\n        \"amount\": 258146,\n        \"price\": 3490,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 3489.5,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 3489,\n      },\n      {\n        \"amount\": 2150,\n        \"price\": 3488.5,\n      },\n      {\n        \"amount\": 284174,\n        \"price\": 3488,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 3487.5,\n      },\n      {\n        \"amount\": 2129,\n        \"price\": 3487,\n      },\n      {\n        \"amount\": 625,\n        \"price\": 3486.5,\n      },\n      {\n        \"amount\": 11196,\n        \"price\": 3486,\n      },\n      {\n        \"amount\": 136213,\n        \"price\": 3485.5,\n      },\n      {\n        \"amount\": 18410,\n        \"price\": 3485,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3484.5,\n      },\n      {\n        \"amount\": 17200,\n        \"price\": 3484,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 3483.5,\n      },\n      {\n        \"amount\": 7490,\n        \"price\": 3483,\n      },\n      {\n        \"amount\": 5780,\n        \"price\": 3482,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 3481.5,\n      },\n      {\n        \"amount\": 22150,\n        \"price\": 3481,\n      },\n      {\n        \"amount\": 18484,\n        \"price\": 3480.5,\n      },\n      {\n        \"amount\": 423364,\n        \"price\": 3480,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3479.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3479,\n      },\n      {\n        \"amount\": 1840,\n        \"price\": 3478.5,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 3478,\n      },\n      {\n        \"amount\": 6395,\n        \"price\": 3477.5,\n      },\n      {\n        \"amount\": 33207,\n        \"price\": 3477,\n      },\n      {\n        \"amount\": 1750,\n        \"price\": 3476.5,\n      },\n      {\n        \"amount\": 3501,\n        \"price\": 3476,\n      },\n      {\n        \"amount\": 10266,\n        \"price\": 3475.5,\n      },\n      {\n        \"amount\": 17486,\n        \"price\": 3475,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3474.5,\n      },\n      {\n        \"amount\": 850,\n        \"price\": 3474,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3473.5,\n      },\n      {\n        \"amount\": 6170,\n        \"price\": 3473,\n      },\n      {\n        \"amount\": 1150,\n        \"price\": 3472.5,\n      },\n      {\n        \"amount\": 7412,\n        \"price\": 3472,\n      },\n      {\n        \"amount\": 5545,\n        \"price\": 3471.5,\n      },\n      {\n        \"amount\": 7792,\n        \"price\": 3471,\n      },\n      {\n        \"amount\": 3100,\n        \"price\": 3470.5,\n      },\n      {\n        \"amount\": 160372,\n        \"price\": 3470,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3469.5,\n      },\n      {\n        \"amount\": 480,\n        \"price\": 3469,\n      },\n      {\n        \"amount\": 34685,\n        \"price\": 3468.5,\n      },\n      {\n        \"amount\": 7700,\n        \"price\": 3468,\n      },\n      {\n        \"amount\": 3958,\n        \"price\": 3467.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3467,\n      },\n      {\n        \"amount\": 12228,\n        \"price\": 3466.5,\n      },\n      {\n        \"amount\": 9184,\n        \"price\": 3466,\n      },\n      {\n        \"amount\": 65,\n        \"price\": 3465.5,\n      },\n      {\n        \"amount\": 65404,\n        \"price\": 3465,\n      },\n      {\n        \"amount\": 4278,\n        \"price\": 3464,\n      },\n      {\n        \"amount\": 4637,\n        \"price\": 3463.5,\n      },\n      {\n        \"amount\": 23340,\n        \"price\": 3463,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3462.5,\n      },\n      {\n        \"amount\": 3290,\n        \"price\": 3462,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 3461.5,\n      },\n      {\n        \"amount\": 20080,\n        \"price\": 3461,\n      },\n      {\n        \"amount\": 16260,\n        \"price\": 3460.5,\n      },\n      {\n        \"amount\": 77587,\n        \"price\": 3460,\n      },\n      {\n        \"amount\": 1420,\n        \"price\": 3459.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 3459,\n      },\n      {\n        \"amount\": 2525,\n        \"price\": 3458.5,\n      },\n      {\n        \"amount\": 13502,\n        \"price\": 3458,\n      },\n      {\n        \"amount\": 5800,\n        \"price\": 3457.5,\n      },\n      {\n        \"amount\": 2380,\n        \"price\": 3457,\n      },\n      {\n        \"amount\": 2550,\n        \"price\": 3456.5,\n      },\n      {\n        \"amount\": 7393,\n        \"price\": 3456,\n      },\n      {\n        \"amount\": 24125,\n        \"price\": 3455.5,\n      },\n      {\n        \"amount\": 38349,\n        \"price\": 3455,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 3454.5,\n      },\n      {\n        \"amount\": 7520,\n        \"price\": 3454,\n      },\n      {\n        \"amount\": 1025,\n        \"price\": 3453.5,\n      },\n      {\n        \"amount\": 17615,\n        \"price\": 3453,\n      },\n      {\n        \"amount\": 510,\n        \"price\": 3452.5,\n      },\n      {\n        \"amount\": 16357,\n        \"price\": 3452,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 3451.5,\n      },\n      {\n        \"amount\": 12362,\n        \"price\": 3451,\n      },\n      {\n        \"amount\": 5321,\n        \"price\": 3450.5,\n      },\n      {\n        \"amount\": 195075,\n        \"price\": 3450,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3449.5,\n      },\n      {\n        \"amount\": 8525,\n        \"price\": 3449,\n      },\n      {\n        \"amount\": 59913,\n        \"price\": 3448,\n      },\n      {\n        \"amount\": 820,\n        \"price\": 3447.5,\n      },\n      {\n        \"amount\": 6091,\n        \"price\": 3447,\n      },\n      {\n        \"amount\": 77656,\n        \"price\": 3446.5,\n      },\n      {\n        \"amount\": 38919,\n        \"price\": 3446,\n      },\n      {\n        \"amount\": 20340,\n        \"price\": 3445.5,\n      },\n      {\n        \"amount\": 5680,\n        \"price\": 3445,\n      },\n      {\n        \"amount\": 41241,\n        \"price\": 3444.5,\n      },\n      {\n        \"amount\": 7233,\n        \"price\": 3444,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 3443.5,\n      },\n      {\n        \"amount\": 11709,\n        \"price\": 3443,\n      },\n      {\n        \"amount\": 49800,\n        \"price\": 3442,\n      },\n      {\n        \"amount\": 1233,\n        \"price\": 3441.5,\n      },\n      {\n        \"amount\": 7115,\n        \"price\": 3441,\n      },\n      {\n        \"amount\": 4175,\n        \"price\": 3440.5,\n      },\n      {\n        \"amount\": 40225,\n        \"price\": 3440,\n      },\n      {\n        \"amount\": 29,\n        \"price\": 3439,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 3438.5,\n      },\n      {\n        \"amount\": 55171,\n        \"price\": 3438,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3437.5,\n      },\n      {\n        \"amount\": 29258,\n        \"price\": 3437,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3436.5,\n      },\n      {\n        \"amount\": 2130,\n        \"price\": 3436,\n      },\n      {\n        \"amount\": 720,\n        \"price\": 3435.5,\n      },\n      {\n        \"amount\": 16255,\n        \"price\": 3435,\n      },\n      {\n        \"amount\": 28320,\n        \"price\": 3434,\n      },\n      {\n        \"amount\": 4753,\n        \"price\": 3433.5,\n      },\n      {\n        \"amount\": 12908,\n        \"price\": 3433,\n      },\n      {\n        \"amount\": 5807,\n        \"price\": 3432.5,\n      },\n      {\n        \"amount\": 52580,\n        \"price\": 3432,\n      },\n      {\n        \"amount\": 3012,\n        \"price\": 3431.5,\n      },\n      {\n        \"amount\": 17102,\n        \"price\": 3431,\n      },\n      {\n        \"amount\": 6175,\n        \"price\": 3430.5,\n      },\n      {\n        \"amount\": 21991,\n        \"price\": 3430,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 3429.5,\n      },\n      {\n        \"amount\": 357,\n        \"price\": 3429,\n      },\n      {\n        \"amount\": 650,\n        \"price\": 3428.5,\n      },\n      {\n        \"amount\": 4342,\n        \"price\": 3428,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3427.5,\n      },\n      {\n        \"amount\": 2159,\n        \"price\": 3427,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3426.5,\n      },\n      {\n        \"amount\": 13400,\n        \"price\": 3426,\n      },\n      {\n        \"amount\": 20050,\n        \"price\": 3425.5,\n      },\n      {\n        \"amount\": 11154,\n        \"price\": 3425,\n      },\n      {\n        \"amount\": 4628,\n        \"price\": 3424,\n      },\n      {\n        \"amount\": 35735,\n        \"price\": 3423.5,\n      },\n      {\n        \"amount\": 4859,\n        \"price\": 3423,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3422.5,\n      },\n      {\n        \"amount\": 20514,\n        \"price\": 3422,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3421.5,\n      },\n      {\n        \"amount\": 14418,\n        \"price\": 3421,\n      },\n      {\n        \"amount\": 6550,\n        \"price\": 3420.5,\n      },\n      {\n        \"amount\": 51715,\n        \"price\": 3420,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3419.5,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 3419,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 3418.5,\n      },\n      {\n        \"amount\": 5616,\n        \"price\": 3418,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3417.5,\n      },\n      {\n        \"amount\": 1014,\n        \"price\": 3417,\n      },\n      {\n        \"amount\": 5925,\n        \"price\": 3416.5,\n      },\n      {\n        \"amount\": 6151,\n        \"price\": 3416,\n      },\n      {\n        \"amount\": 4435,\n        \"price\": 3415.5,\n      },\n      {\n        \"amount\": 2510,\n        \"price\": 3415,\n      },\n      {\n        \"amount\": 89,\n        \"price\": 3414.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3414,\n      },\n      {\n        \"amount\": 1520,\n        \"price\": 3413,\n      },\n      {\n        \"amount\": 525,\n        \"price\": 3412.5,\n      },\n      {\n        \"amount\": 16699,\n        \"price\": 3412,\n      },\n      {\n        \"amount\": 250297,\n        \"price\": 3411.5,\n      },\n      {\n        \"amount\": 44871,\n        \"price\": 3411,\n      },\n      {\n        \"amount\": 13750,\n        \"price\": 3410.5,\n      },\n      {\n        \"amount\": 31925,\n        \"price\": 3410,\n      },\n      {\n        \"amount\": 28700,\n        \"price\": 3409,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 3408.5,\n      },\n      {\n        \"amount\": 6806,\n        \"price\": 3408,\n      },\n      {\n        \"amount\": 5263,\n        \"price\": 3407.5,\n      },\n      {\n        \"amount\": 7549,\n        \"price\": 3407,\n      },\n      {\n        \"amount\": 18200,\n        \"price\": 3406.5,\n      },\n      {\n        \"amount\": 25120,\n        \"price\": 3406,\n      },\n      {\n        \"amount\": 26475,\n        \"price\": 3405.5,\n      },\n      {\n        \"amount\": 40845,\n        \"price\": 3405,\n      },\n      {\n        \"amount\": 3741,\n        \"price\": 3404.5,\n      },\n      {\n        \"amount\": 22650,\n        \"price\": 3404,\n      },\n      {\n        \"amount\": 1108,\n        \"price\": 3403.5,\n      },\n      {\n        \"amount\": 11609,\n        \"price\": 3403,\n      },\n      {\n        \"amount\": 13749,\n        \"price\": 3402.5,\n      },\n      {\n        \"amount\": 1002958,\n        \"price\": 3401.5,\n      },\n      {\n        \"amount\": 47655,\n        \"price\": 3401,\n      },\n      {\n        \"amount\": 68543,\n        \"price\": 3400.5,\n      },\n      {\n        \"amount\": 323202,\n        \"price\": 3400,\n      },\n      {\n        \"amount\": 5929,\n        \"price\": 3399,\n      },\n      {\n        \"amount\": 1541,\n        \"price\": 3398.5,\n      },\n      {\n        \"amount\": 4550,\n        \"price\": 3398,\n      },\n      {\n        \"amount\": 12010,\n        \"price\": 3397,\n      },\n      {\n        \"amount\": 2012,\n        \"price\": 3396.5,\n      },\n      {\n        \"amount\": 859,\n        \"price\": 3396,\n      },\n      {\n        \"amount\": 5210,\n        \"price\": 3395.5,\n      },\n      {\n        \"amount\": 3246,\n        \"price\": 3395,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 3394.5,\n      },\n      {\n        \"amount\": 3013,\n        \"price\": 3394,\n      },\n      {\n        \"amount\": 3340,\n        \"price\": 3393.5,\n      },\n      {\n        \"amount\": 4903,\n        \"price\": 3393,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 3392.5,\n      },\n      {\n        \"amount\": 1046,\n        \"price\": 3392,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 3391,\n      },\n      {\n        \"amount\": 3609,\n        \"price\": 3390.5,\n      },\n      {\n        \"amount\": 48122,\n        \"price\": 3390,\n      },\n      {\n        \"amount\": 1512,\n        \"price\": 3389.5,\n      },\n      {\n        \"amount\": 2019,\n        \"price\": 3389,\n      },\n      {\n        \"amount\": 3800,\n        \"price\": 3388.5,\n      },\n      {\n        \"amount\": 113218,\n        \"price\": 3388,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 3387.5,\n      },\n      {\n        \"amount\": 4175,\n        \"price\": 3387,\n      },\n      {\n        \"amount\": 6662,\n        \"price\": 3386.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3386,\n      },\n      {\n        \"amount\": 296,\n        \"price\": 3385.5,\n      },\n      {\n        \"amount\": 4128,\n        \"price\": 3385,\n      },\n      {\n        \"amount\": 4472,\n        \"price\": 3384.5,\n      },\n      {\n        \"amount\": 7580,\n        \"price\": 3384,\n      },\n      {\n        \"amount\": 595,\n        \"price\": 3383.5,\n      },\n      {\n        \"amount\": 5372,\n        \"price\": 3383,\n      },\n      {\n        \"amount\": 1025,\n        \"price\": 3382.5,\n      },\n      {\n        \"amount\": 321,\n        \"price\": 3382,\n      },\n      {\n        \"amount\": 4316,\n        \"price\": 3381,\n      },\n      {\n        \"amount\": 433273,\n        \"price\": 3380.5,\n      },\n      {\n        \"amount\": 85519,\n        \"price\": 3380,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3379.5,\n      },\n      {\n        \"amount\": 5055,\n        \"price\": 3379,\n      },\n      {\n        \"amount\": 565,\n        \"price\": 3378.5,\n      },\n      {\n        \"amount\": 7400,\n        \"price\": 3378,\n      },\n      {\n        \"amount\": 12816,\n        \"price\": 3377.5,\n      },\n      {\n        \"amount\": 6407,\n        \"price\": 3377,\n      },\n      {\n        \"amount\": 20225,\n        \"price\": 3376.5,\n      },\n      {\n        \"amount\": 3125,\n        \"price\": 3375.5,\n      },\n      {\n        \"amount\": 21507,\n        \"price\": 3375,\n      },\n      {\n        \"amount\": 586,\n        \"price\": 3374.5,\n      },\n      {\n        \"amount\": 645,\n        \"price\": 3374,\n      },\n      {\n        \"amount\": 945,\n        \"price\": 3373.5,\n      },\n      {\n        \"amount\": 12890,\n        \"price\": 3373,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 3372.5,\n      },\n      {\n        \"amount\": 113,\n        \"price\": 3372,\n      },\n      {\n        \"amount\": 25043,\n        \"price\": 3371.5,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 3371,\n      },\n      {\n        \"amount\": 988,\n        \"price\": 3370.5,\n      },\n      {\n        \"amount\": 7607,\n        \"price\": 3370,\n      },\n      {\n        \"amount\": 2661,\n        \"price\": 3369,\n      },\n      {\n        \"amount\": 38768,\n        \"price\": 3368.5,\n      },\n      {\n        \"amount\": 47200,\n        \"price\": 3368,\n      },\n      {\n        \"amount\": 5803,\n        \"price\": 3367.5,\n      },\n      {\n        \"amount\": 33691,\n        \"price\": 3367,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 3366.5,\n      },\n      {\n        \"amount\": 9276,\n        \"price\": 3366,\n      },\n      {\n        \"amount\": 3995,\n        \"price\": 3365.5,\n      },\n      {\n        \"amount\": 4637,\n        \"price\": 3365,\n      },\n      {\n        \"amount\": 2750,\n        \"price\": 3364.5,\n      },\n      {\n        \"amount\": 55,\n        \"price\": 3364,\n      },\n      {\n        \"amount\": 2240,\n        \"price\": 3363.5,\n      },\n      {\n        \"amount\": 4850,\n        \"price\": 3363,\n      },\n      {\n        \"amount\": 1180,\n        \"price\": 3362.5,\n      },\n      {\n        \"amount\": 2034,\n        \"price\": 3362,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 3361.5,\n      },\n      {\n        \"amount\": 1865,\n        \"price\": 3361,\n      },\n      {\n        \"amount\": 22300,\n        \"price\": 3360,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3359.5,\n      },\n      {\n        \"amount\": 529,\n        \"price\": 3359,\n      },\n      {\n        \"amount\": 1350,\n        \"price\": 3358.5,\n      },\n      {\n        \"amount\": 120658,\n        \"price\": 3358,\n      },\n      {\n        \"amount\": 91462,\n        \"price\": 3357.5,\n      },\n      {\n        \"amount\": 8438,\n        \"price\": 3357,\n      },\n      {\n        \"amount\": 86642,\n        \"price\": 3356.5,\n      },\n      {\n        \"amount\": 1810,\n        \"price\": 3356,\n      },\n      {\n        \"amount\": 51220,\n        \"price\": 3355.5,\n      },\n      {\n        \"amount\": 9810,\n        \"price\": 3355,\n      },\n      {\n        \"amount\": 920,\n        \"price\": 3354.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3354,\n      },\n      {\n        \"amount\": 4833,\n        \"price\": 3353.5,\n      },\n      {\n        \"amount\": 23228,\n        \"price\": 3353,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3352.5,\n      },\n      {\n        \"amount\": 31089,\n        \"price\": 3352,\n      },\n      {\n        \"amount\": 10010,\n        \"price\": 3351.5,\n      },\n      {\n        \"amount\": 36313,\n        \"price\": 3351,\n      },\n      {\n        \"amount\": 3547,\n        \"price\": 3350.5,\n      },\n      {\n        \"amount\": 181911,\n        \"price\": 3350,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 3349,\n      },\n      {\n        \"amount\": 24550,\n        \"price\": 3348,\n      },\n      {\n        \"amount\": 1564,\n        \"price\": 3347.5,\n      },\n      {\n        \"amount\": 1824,\n        \"price\": 3347,\n      },\n      {\n        \"amount\": 850,\n        \"price\": 3346,\n      },\n      {\n        \"amount\": 8049,\n        \"price\": 3345.5,\n      },\n      {\n        \"amount\": 3800,\n        \"price\": 3345,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 3344.5,\n      },\n      {\n        \"amount\": 154,\n        \"price\": 3344,\n      },\n      {\n        \"amount\": 1339,\n        \"price\": 3343,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 3342.5,\n      },\n      {\n        \"amount\": 530,\n        \"price\": 3342,\n      },\n      {\n        \"amount\": 10050,\n        \"price\": 3341,\n      },\n      {\n        \"amount\": 524,\n        \"price\": 3340.5,\n      },\n      {\n        \"amount\": 7635,\n        \"price\": 3340,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3339.5,\n      },\n      {\n        \"amount\": 195,\n        \"price\": 3339,\n      },\n      {\n        \"amount\": 1561,\n        \"price\": 3338.5,\n      },\n      {\n        \"amount\": 5809,\n        \"price\": 3338,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3337.5,\n      },\n      {\n        \"amount\": 13183,\n        \"price\": 3337,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 3336.5,\n      },\n      {\n        \"amount\": 621,\n        \"price\": 3336,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3335.5,\n      },\n      {\n        \"amount\": 8275,\n        \"price\": 3335,\n      },\n      {\n        \"amount\": 4943,\n        \"price\": 3334.5,\n      },\n      {\n        \"amount\": 10182,\n        \"price\": 3334,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 3333.5,\n      },\n      {\n        \"amount\": 150708,\n        \"price\": 3333,\n      },\n      {\n        \"amount\": 11240,\n        \"price\": 3332.5,\n      },\n      {\n        \"amount\": 45,\n        \"price\": 3332,\n      },\n      {\n        \"amount\": 9303,\n        \"price\": 3331.5,\n      },\n      {\n        \"amount\": 20533,\n        \"price\": 3331,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3330.5,\n      },\n      {\n        \"amount\": 104325,\n        \"price\": 3330,\n      },\n      {\n        \"amount\": 5063,\n        \"price\": 3329.5,\n      },\n      {\n        \"amount\": 3020,\n        \"price\": 3329,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 3328.5,\n      },\n      {\n        \"amount\": 21972,\n        \"price\": 3328,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3327.5,\n      },\n      {\n        \"amount\": 10338,\n        \"price\": 3327,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 3326.5,\n      },\n      {\n        \"amount\": 4190,\n        \"price\": 3326,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 3325.5,\n      },\n      {\n        \"amount\": 7979,\n        \"price\": 3325,\n      },\n      {\n        \"amount\": 79,\n        \"price\": 3324.5,\n      },\n      {\n        \"amount\": 20111,\n        \"price\": 3324,\n      },\n      {\n        \"amount\": 33235,\n        \"price\": 3323.5,\n      },\n      {\n        \"amount\": 31860,\n        \"price\": 3323,\n      },\n      {\n        \"amount\": 2827,\n        \"price\": 3322.5,\n      },\n      {\n        \"amount\": 3817,\n        \"price\": 3322,\n      },\n      {\n        \"amount\": 10240,\n        \"price\": 3321.5,\n      },\n      {\n        \"amount\": 14400,\n        \"price\": 3321,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 3320.5,\n      },\n      {\n        \"amount\": 38875,\n        \"price\": 3320,\n      },\n      {\n        \"amount\": 105510,\n        \"price\": 3319.5,\n      },\n      {\n        \"amount\": 14000,\n        \"price\": 3318.5,\n      },\n      {\n        \"amount\": 5515,\n        \"price\": 3318,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3317.5,\n      },\n      {\n        \"amount\": 340,\n        \"price\": 3317,\n      },\n      {\n        \"amount\": 4300,\n        \"price\": 3316.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3316,\n      },\n      {\n        \"amount\": 2829,\n        \"price\": 3315.5,\n      },\n      {\n        \"amount\": 64985,\n        \"price\": 3315,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 3314,\n      },\n      {\n        \"amount\": 32676,\n        \"price\": 3313,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 3312.5,\n      },\n      {\n        \"amount\": 1660,\n        \"price\": 3312,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 3311.5,\n      },\n      {\n        \"amount\": 15740,\n        \"price\": 3311,\n      },\n      {\n        \"amount\": 20711,\n        \"price\": 3310,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 3309.5,\n      },\n      {\n        \"amount\": 1918,\n        \"price\": 3309,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 3308.5,\n      },\n      {\n        \"amount\": 7062,\n        \"price\": 3308,\n      },\n      {\n        \"amount\": 1607,\n        \"price\": 3307.5,\n      },\n      {\n        \"amount\": 3288,\n        \"price\": 3307,\n      },\n      {\n        \"amount\": 3850,\n        \"price\": 3306,\n      },\n      {\n        \"amount\": 8055,\n        \"price\": 3305.5,\n      },\n      {\n        \"amount\": 4520,\n        \"price\": 3305,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3304.5,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 3303.5,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 3303,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3302.5,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 3302,\n      },\n      {\n        \"amount\": 1230,\n        \"price\": 3301.5,\n      },\n      {\n        \"amount\": 11663,\n        \"price\": 3301,\n      },\n      {\n        \"amount\": 31580,\n        \"price\": 3300.5,\n      },\n      {\n        \"amount\": 156287,\n        \"price\": 3300,\n      },\n      {\n        \"amount\": 5794,\n        \"price\": 3299,\n      },\n      {\n        \"amount\": 6050,\n        \"price\": 3298.5,\n      },\n      {\n        \"amount\": 38500,\n        \"price\": 3298,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 3296.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3296,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 3295.5,\n      },\n      {\n        \"amount\": 1963,\n        \"price\": 3295,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3294,\n      },\n      {\n        \"amount\": 1236,\n        \"price\": 3293,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3292.5,\n      },\n      {\n        \"amount\": 453,\n        \"price\": 3292,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3291.5,\n      },\n      {\n        \"amount\": 4700,\n        \"price\": 3291,\n      },\n      {\n        \"amount\": 7591,\n        \"price\": 3290.5,\n      },\n      {\n        \"amount\": 31295,\n        \"price\": 3290,\n      },\n      {\n        \"amount\": 3020,\n        \"price\": 3289.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 3289,\n      },\n      {\n        \"amount\": 13476,\n        \"price\": 3288,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3287.5,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 3286,\n      },\n      {\n        \"amount\": 1020,\n        \"price\": 3285.5,\n      },\n      {\n        \"amount\": 13715,\n        \"price\": 3285,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3284,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3283.5,\n      },\n      {\n        \"amount\": 2820,\n        \"price\": 3283,\n      },\n      {\n        \"amount\": 9050,\n        \"price\": 3282.5,\n      },\n      {\n        \"amount\": 32600,\n        \"price\": 3282,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3281.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3281,\n      },\n      {\n        \"amount\": 3280,\n        \"price\": 3280.5,\n      },\n      {\n        \"amount\": 19575,\n        \"price\": 3280,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3279.5,\n      },\n      {\n        \"amount\": 6669,\n        \"price\": 3279,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3278.5,\n      },\n      {\n        \"amount\": 1513,\n        \"price\": 3278,\n      },\n      {\n        \"amount\": 298,\n        \"price\": 3277,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 3276,\n      },\n      {\n        \"amount\": 50997,\n        \"price\": 3275.5,\n      },\n      {\n        \"amount\": 20957,\n        \"price\": 3275,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3274.5,\n      },\n      {\n        \"amount\": 10418,\n        \"price\": 3274,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3273.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3273,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3272.5,\n      },\n      {\n        \"amount\": 1638,\n        \"price\": 3272,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3271.5,\n      },\n      {\n        \"amount\": 2550,\n        \"price\": 3271,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 3270.5,\n      },\n      {\n        \"amount\": 10361,\n        \"price\": 3270,\n      },\n      {\n        \"amount\": 1393,\n        \"price\": 3269,\n      },\n      {\n        \"amount\": 32685,\n        \"price\": 3268.5,\n      },\n      {\n        \"amount\": 2985,\n        \"price\": 3268,\n      },\n      {\n        \"amount\": 3012,\n        \"price\": 3267.5,\n      },\n      {\n        \"amount\": 352,\n        \"price\": 3267,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3266.5,\n      },\n      {\n        \"amount\": 1455,\n        \"price\": 3266,\n      },\n      {\n        \"amount\": 3433,\n        \"price\": 3265.5,\n      },\n      {\n        \"amount\": 4555,\n        \"price\": 3265,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3264.5,\n      },\n      {\n        \"amount\": 7833,\n        \"price\": 3264,\n      },\n      {\n        \"amount\": 2994,\n        \"price\": 3263,\n      },\n      {\n        \"amount\": 6740,\n        \"price\": 3262.5,\n      },\n      {\n        \"amount\": 38998,\n        \"price\": 3262,\n      },\n      {\n        \"amount\": 410,\n        \"price\": 3261.5,\n      },\n      {\n        \"amount\": 2872,\n        \"price\": 3261,\n      },\n      {\n        \"amount\": 3187,\n        \"price\": 3260.5,\n      },\n      {\n        \"amount\": 50465,\n        \"price\": 3260,\n      },\n      {\n        \"amount\": 460,\n        \"price\": 3259,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 3258.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3258,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 3257.5,\n      },\n      {\n        \"amount\": 3007,\n        \"price\": 3257,\n      },\n      {\n        \"amount\": 12676,\n        \"price\": 3256,\n      },\n      {\n        \"amount\": 6620,\n        \"price\": 3255.5,\n      },\n      {\n        \"amount\": 7484,\n        \"price\": 3255,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3254.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3254,\n      },\n      {\n        \"amount\": 7100,\n        \"price\": 3253,\n      },\n      {\n        \"amount\": 1783,\n        \"price\": 3252,\n      },\n      {\n        \"amount\": 20063,\n        \"price\": 3251.5,\n      },\n      {\n        \"amount\": 3170,\n        \"price\": 3251,\n      },\n      {\n        \"amount\": 14550,\n        \"price\": 3250.5,\n      },\n      {\n        \"amount\": 141893,\n        \"price\": 3250,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3249,\n      },\n      {\n        \"amount\": 1666,\n        \"price\": 3248.5,\n      },\n      {\n        \"amount\": 25255,\n        \"price\": 3248,\n      },\n      {\n        \"amount\": 1069,\n        \"price\": 3247,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3246.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3246,\n      },\n      {\n        \"amount\": 36875,\n        \"price\": 3245,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3244.5,\n      },\n      {\n        \"amount\": 11394,\n        \"price\": 3244,\n      },\n      {\n        \"amount\": 645,\n        \"price\": 3243,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 3242.5,\n      },\n      {\n        \"amount\": 345,\n        \"price\": 3242,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3241.5,\n      },\n      {\n        \"amount\": 3657,\n        \"price\": 3240.5,\n      },\n      {\n        \"amount\": 75735,\n        \"price\": 3240,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 3239.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3239,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 3238.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3238,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 3237.5,\n      },\n      {\n        \"amount\": 386,\n        \"price\": 3237,\n      },\n      {\n        \"amount\": 13100,\n        \"price\": 3236,\n      },\n      {\n        \"amount\": 753,\n        \"price\": 3235.5,\n      },\n      {\n        \"amount\": 7823,\n        \"price\": 3235,\n      },\n      {\n        \"amount\": 12617,\n        \"price\": 3234,\n      },\n      {\n        \"amount\": 1583,\n        \"price\": 3233,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 3232.5,\n      },\n      {\n        \"amount\": 1153,\n        \"price\": 3232,\n      },\n      {\n        \"amount\": 5817,\n        \"price\": 3231,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 3230.5,\n      },\n      {\n        \"amount\": 25860,\n        \"price\": 3230,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3229,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 3228.5,\n      },\n      {\n        \"amount\": 2470,\n        \"price\": 3228,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 3227.5,\n      },\n      {\n        \"amount\": 670,\n        \"price\": 3227,\n      },\n      {\n        \"amount\": 27524,\n        \"price\": 3226.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3226,\n      },\n      {\n        \"amount\": 2080,\n        \"price\": 3225.5,\n      },\n      {\n        \"amount\": 775,\n        \"price\": 3225,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 3224,\n      },\n      {\n        \"amount\": 20805,\n        \"price\": 3223,\n      },\n      {\n        \"amount\": 12400,\n        \"price\": 3222.5,\n      },\n      {\n        \"amount\": 81162,\n        \"price\": 3222,\n      },\n      {\n        \"amount\": 23000,\n        \"price\": 3221.5,\n      },\n      {\n        \"amount\": 1120,\n        \"price\": 3221,\n      },\n      {\n        \"amount\": 7525,\n        \"price\": 3220.5,\n      },\n      {\n        \"amount\": 32661,\n        \"price\": 3220,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3219,\n      },\n      {\n        \"amount\": 3770,\n        \"price\": 3218.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3218,\n      },\n      {\n        \"amount\": 325,\n        \"price\": 3217,\n      },\n      {\n        \"amount\": 385,\n        \"price\": 3216,\n      },\n      {\n        \"amount\": 4120,\n        \"price\": 3215,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 3214.5,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3214,\n      },\n      {\n        \"amount\": 7520,\n        \"price\": 3213,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3212.5,\n      },\n      {\n        \"amount\": 6266,\n        \"price\": 3212,\n      },\n      {\n        \"amount\": 280,\n        \"price\": 3211.5,\n      },\n      {\n        \"amount\": 23342,\n        \"price\": 3211,\n      },\n      {\n        \"amount\": 3550,\n        \"price\": 3210.5,\n      },\n      {\n        \"amount\": 28076,\n        \"price\": 3210,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 3209.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3209,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3208.5,\n      },\n      {\n        \"amount\": 25300,\n        \"price\": 3208,\n      },\n      {\n        \"amount\": 189465,\n        \"price\": 3207.5,\n      },\n      {\n        \"amount\": 11300,\n        \"price\": 3207,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 3206.5,\n      },\n      {\n        \"amount\": 251,\n        \"price\": 3206,\n      },\n      {\n        \"amount\": 1650,\n        \"price\": 3205.5,\n      },\n      {\n        \"amount\": 15371,\n        \"price\": 3205,\n      },\n      {\n        \"amount\": 357000,\n        \"price\": 3204.5,\n      },\n      {\n        \"amount\": 420,\n        \"price\": 3204,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 3203.5,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 3203,\n      },\n      {\n        \"amount\": 22700,\n        \"price\": 3202.5,\n      },\n      {\n        \"amount\": 73,\n        \"price\": 3202,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3201.5,\n      },\n      {\n        \"amount\": 5211,\n        \"price\": 3201,\n      },\n      {\n        \"amount\": 34962,\n        \"price\": 3200.5,\n      },\n      {\n        \"amount\": 336169,\n        \"price\": 3200,\n      },\n      {\n        \"amount\": 100230,\n        \"price\": 3199.5,\n      },\n      {\n        \"amount\": 708,\n        \"price\": 3199,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 3198.5,\n      },\n      {\n        \"amount\": 25200,\n        \"price\": 3198,\n      },\n      {\n        \"amount\": 460,\n        \"price\": 3197,\n      },\n      {\n        \"amount\": 92,\n        \"price\": 3196,\n      },\n      {\n        \"amount\": 163,\n        \"price\": 3195.5,\n      },\n      {\n        \"amount\": 5675,\n        \"price\": 3195,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3194,\n      },\n      {\n        \"amount\": 303,\n        \"price\": 3193,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 3192,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 3191.5,\n      },\n      {\n        \"amount\": 5160,\n        \"price\": 3191,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 3190.5,\n      },\n      {\n        \"amount\": 4226,\n        \"price\": 3190,\n      },\n      {\n        \"amount\": 272,\n        \"price\": 3189.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3189,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3188.5,\n      },\n      {\n        \"amount\": 52848,\n        \"price\": 3188,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3187.5,\n      },\n      {\n        \"amount\": 11550,\n        \"price\": 3187,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3186.5,\n      },\n      {\n        \"amount\": 62,\n        \"price\": 3186,\n      },\n      {\n        \"amount\": 212,\n        \"price\": 3185.5,\n      },\n      {\n        \"amount\": 1650,\n        \"price\": 3185,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 3184,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3183.5,\n      },\n      {\n        \"amount\": 35115,\n        \"price\": 3183,\n      },\n      {\n        \"amount\": 22080,\n        \"price\": 3182.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3182,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 3181.5,\n      },\n      {\n        \"amount\": 4670,\n        \"price\": 3181,\n      },\n      {\n        \"amount\": 1800,\n        \"price\": 3180.5,\n      },\n      {\n        \"amount\": 33929,\n        \"price\": 3180,\n      },\n      {\n        \"amount\": 1640,\n        \"price\": 3179,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3178.5,\n      },\n      {\n        \"amount\": 14930,\n        \"price\": 3178,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3177.5,\n      },\n      {\n        \"amount\": 2097,\n        \"price\": 3177,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3176,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 3175.5,\n      },\n      {\n        \"amount\": 12035,\n        \"price\": 3175,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3173.5,\n      },\n      {\n        \"amount\": 5613,\n        \"price\": 3173,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3172,\n      },\n      {\n        \"amount\": 16387,\n        \"price\": 3171.5,\n      },\n      {\n        \"amount\": 1580,\n        \"price\": 3171,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3170.5,\n      },\n      {\n        \"amount\": 11987,\n        \"price\": 3170,\n      },\n      {\n        \"amount\": 175,\n        \"price\": 3169.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3169,\n      },\n      {\n        \"amount\": 4684,\n        \"price\": 3168,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3167.5,\n      },\n      {\n        \"amount\": 10800,\n        \"price\": 3167,\n      },\n      {\n        \"amount\": 3326,\n        \"price\": 3166,\n      },\n      {\n        \"amount\": 1485,\n        \"price\": 3165,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3164.5,\n      },\n      {\n        \"amount\": 34000,\n        \"price\": 3164,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3163.5,\n      },\n      {\n        \"amount\": 1220,\n        \"price\": 3163,\n      },\n      {\n        \"amount\": 6240,\n        \"price\": 3162,\n      },\n      {\n        \"amount\": 3230,\n        \"price\": 3161.5,\n      },\n      {\n        \"amount\": 490,\n        \"price\": 3161,\n      },\n      {\n        \"amount\": 7775,\n        \"price\": 3160,\n      },\n      {\n        \"amount\": 3900,\n        \"price\": 3159.5,\n      },\n      {\n        \"amount\": 474,\n        \"price\": 3159,\n      },\n      {\n        \"amount\": 6200,\n        \"price\": 3158,\n      },\n      {\n        \"amount\": 2250,\n        \"price\": 3157.5,\n      },\n      {\n        \"amount\": 15885,\n        \"price\": 3157,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3156.5,\n      },\n      {\n        \"amount\": 13138,\n        \"price\": 3156,\n      },\n      {\n        \"amount\": 21268,\n        \"price\": 3155,\n      },\n      {\n        \"amount\": 122,\n        \"price\": 3154.5,\n      },\n      {\n        \"amount\": 1082,\n        \"price\": 3154,\n      },\n      {\n        \"amount\": 4050,\n        \"price\": 3153.5,\n      },\n      {\n        \"amount\": 825,\n        \"price\": 3153,\n      },\n      {\n        \"amount\": 232,\n        \"price\": 3152,\n      },\n      {\n        \"amount\": 22022,\n        \"price\": 3151,\n      },\n      {\n        \"amount\": 1600,\n        \"price\": 3150.5,\n      },\n      {\n        \"amount\": 83852,\n        \"price\": 3150,\n      },\n      {\n        \"amount\": 72,\n        \"price\": 3149,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3148.5,\n      },\n      {\n        \"amount\": 21547,\n        \"price\": 3148,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3147.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3147,\n      },\n      {\n        \"amount\": 144,\n        \"price\": 3146.5,\n      },\n      {\n        \"amount\": 72,\n        \"price\": 3146,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3145.5,\n      },\n      {\n        \"amount\": 775,\n        \"price\": 3145,\n      },\n      {\n        \"amount\": 62,\n        \"price\": 3144.5,\n      },\n      {\n        \"amount\": 7166,\n        \"price\": 3144,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 3143.5,\n      },\n      {\n        \"amount\": 7644,\n        \"price\": 3143,\n      },\n      {\n        \"amount\": 72,\n        \"price\": 3142.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3141.5,\n      },\n      {\n        \"amount\": 8696,\n        \"price\": 3141,\n      },\n      {\n        \"amount\": 144,\n        \"price\": 3140.5,\n      },\n      {\n        \"amount\": 368,\n        \"price\": 3140,\n      },\n      {\n        \"amount\": 72,\n        \"price\": 3139.5,\n      },\n      {\n        \"amount\": 847,\n        \"price\": 3139,\n      },\n      {\n        \"amount\": 80050,\n        \"price\": 3138.5,\n      },\n      {\n        \"amount\": 211080,\n        \"price\": 3138,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3137.5,\n      },\n      {\n        \"amount\": 4837,\n        \"price\": 3137,\n      },\n      {\n        \"amount\": 33700,\n        \"price\": 3136.5,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3136,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3135.5,\n      },\n      {\n        \"amount\": 8637,\n        \"price\": 3135,\n      },\n      {\n        \"amount\": 272,\n        \"price\": 3134,\n      },\n      {\n        \"amount\": 85,\n        \"price\": 3133.5,\n      },\n      {\n        \"amount\": 2061,\n        \"price\": 3133,\n      },\n      {\n        \"amount\": 132,\n        \"price\": 3132,\n      },\n      {\n        \"amount\": 10144,\n        \"price\": 3131.5,\n      },\n      {\n        \"amount\": 3550,\n        \"price\": 3131,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3130.5,\n      },\n      {\n        \"amount\": 30549,\n        \"price\": 3130,\n      },\n      {\n        \"amount\": 6537,\n        \"price\": 3129.5,\n      },\n      {\n        \"amount\": 4100,\n        \"price\": 3129,\n      },\n      {\n        \"amount\": 2322,\n        \"price\": 3128,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3127.5,\n      },\n      {\n        \"amount\": 72,\n        \"price\": 3127,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3126.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3126,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 3125.5,\n      },\n      {\n        \"amount\": 14275,\n        \"price\": 3125,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3124.5,\n      },\n      {\n        \"amount\": 7050,\n        \"price\": 3124,\n      },\n      {\n        \"amount\": 17200,\n        \"price\": 3123,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3122.5,\n      },\n      {\n        \"amount\": 2722,\n        \"price\": 3122,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 3121.5,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 3121,\n      },\n      {\n        \"amount\": 215,\n        \"price\": 3120.5,\n      },\n      {\n        \"amount\": 12566,\n        \"price\": 3120,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3119.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3119,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3118.5,\n      },\n      {\n        \"amount\": 145,\n        \"price\": 3118,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3117.5,\n      },\n      {\n        \"amount\": 388,\n        \"price\": 3117,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3116.5,\n      },\n      {\n        \"amount\": 1650,\n        \"price\": 3116,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3115.5,\n      },\n      {\n        \"amount\": 15594,\n        \"price\": 3115,\n      },\n      {\n        \"amount\": 47,\n        \"price\": 3114.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3113.5,\n      },\n      {\n        \"amount\": 5840,\n        \"price\": 3113,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3112.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3112,\n      },\n      {\n        \"amount\": 730,\n        \"price\": 3111.5,\n      },\n      {\n        \"amount\": 38226,\n        \"price\": 3111,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3110.5,\n      },\n      {\n        \"amount\": 13107,\n        \"price\": 3110,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3109.5,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3109,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 3108.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3108,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3107.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 3106.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 3105.5,\n      },\n      {\n        \"amount\": 14608,\n        \"price\": 3105,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3104.5,\n      },\n      {\n        \"amount\": 5832,\n        \"price\": 3104,\n      },\n      {\n        \"amount\": 706,\n        \"price\": 3103.5,\n      },\n      {\n        \"amount\": 155,\n        \"price\": 3103,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3102.5,\n      },\n      {\n        \"amount\": 3010,\n        \"price\": 3102,\n      },\n      {\n        \"amount\": 11500,\n        \"price\": 3101.5,\n      },\n      {\n        \"amount\": 2790,\n        \"price\": 3101,\n      },\n      {\n        \"amount\": 4280,\n        \"price\": 3100.5,\n      },\n      {\n        \"amount\": 169343,\n        \"price\": 3100,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 3099,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3098.5,\n      },\n      {\n        \"amount\": 39,\n        \"price\": 3098,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3096.5,\n      },\n      {\n        \"amount\": 10238,\n        \"price\": 3096,\n      },\n      {\n        \"amount\": 30049,\n        \"price\": 3095.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3095,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3094.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 3094,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3093.5,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 3093,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3092,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3091.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3091,\n      },\n      {\n        \"amount\": 225,\n        \"price\": 3090.5,\n      },\n      {\n        \"amount\": 13727,\n        \"price\": 3090,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3089,\n      },\n      {\n        \"amount\": 5128,\n        \"price\": 3088.5,\n      },\n      {\n        \"amount\": 5125,\n        \"price\": 3088,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3087.5,\n      },\n      {\n        \"amount\": 51649,\n        \"price\": 3086,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3085,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3084,\n      },\n      {\n        \"amount\": 1110,\n        \"price\": 3083,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3082,\n      },\n      {\n        \"amount\": 1372,\n        \"price\": 3081.5,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 3081,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3080.5,\n      },\n      {\n        \"amount\": 6947,\n        \"price\": 3080,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3079.5,\n      },\n      {\n        \"amount\": 2288,\n        \"price\": 3079,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3078,\n      },\n      {\n        \"amount\": 404,\n        \"price\": 3077,\n      },\n      {\n        \"amount\": 975,\n        \"price\": 3076,\n      },\n      {\n        \"amount\": 9793,\n        \"price\": 3075,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 3074,\n      },\n      {\n        \"amount\": 360,\n        \"price\": 3073.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 3073,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 3072.5,\n      },\n      {\n        \"amount\": 63,\n        \"price\": 3072,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3071,\n      },\n      {\n        \"amount\": 6110,\n        \"price\": 3070,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3069.5,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 3068.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3068,\n      },\n      {\n        \"amount\": 4051,\n        \"price\": 3067.5,\n      },\n      {\n        \"amount\": 1725,\n        \"price\": 3067,\n      },\n      {\n        \"amount\": 466,\n        \"price\": 3066,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3064.5,\n      },\n      {\n        \"amount\": 4030,\n        \"price\": 3064,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3063.5,\n      },\n      {\n        \"amount\": 1064,\n        \"price\": 3063,\n      },\n      {\n        \"amount\": 4320,\n        \"price\": 3062,\n      },\n      {\n        \"amount\": 579,\n        \"price\": 3061.5,\n      },\n      {\n        \"amount\": 3053,\n        \"price\": 3061,\n      },\n      {\n        \"amount\": 5930,\n        \"price\": 3060,\n      },\n      {\n        \"amount\": 1041,\n        \"price\": 3059.5,\n      },\n      {\n        \"amount\": 730,\n        \"price\": 3059,\n      },\n      {\n        \"amount\": 51,\n        \"price\": 3058,\n      },\n      {\n        \"amount\": 1600,\n        \"price\": 3057.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3057,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 3055.5,\n      },\n      {\n        \"amount\": 4800,\n        \"price\": 3055,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 3054.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3054,\n      },\n      {\n        \"amount\": 120450,\n        \"price\": 3052.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3052,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 3051.5,\n      },\n      {\n        \"amount\": 11000,\n        \"price\": 3050.5,\n      },\n      {\n        \"amount\": 147301,\n        \"price\": 3050,\n      },\n      {\n        \"amount\": 2316,\n        \"price\": 3049,\n      },\n      {\n        \"amount\": 51,\n        \"price\": 3048.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3048,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3047.5,\n      },\n      {\n        \"amount\": 50150,\n        \"price\": 3047,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 3046.5,\n      },\n      {\n        \"amount\": 8537,\n        \"price\": 3046,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3045,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 3044.5,\n      },\n      {\n        \"amount\": 27711,\n        \"price\": 3044,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 3043.5,\n      },\n      {\n        \"amount\": 2650,\n        \"price\": 3043,\n      },\n      {\n        \"amount\": 1738,\n        \"price\": 3041,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3040.5,\n      },\n      {\n        \"amount\": 11400,\n        \"price\": 3040,\n      },\n      {\n        \"amount\": 37,\n        \"price\": 3039.5,\n      },\n      {\n        \"amount\": 403,\n        \"price\": 3039,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 3038.5,\n      },\n      {\n        \"amount\": 25175,\n        \"price\": 3038,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 3037.5,\n      },\n      {\n        \"amount\": 3421,\n        \"price\": 3037,\n      },\n      {\n        \"amount\": 14200,\n        \"price\": 3036,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3035.5,\n      },\n      {\n        \"amount\": 3435,\n        \"price\": 3035,\n      },\n      {\n        \"amount\": 1251500,\n        \"price\": 3034,\n      },\n      {\n        \"amount\": 12097,\n        \"price\": 3033.5,\n      },\n      {\n        \"amount\": 933,\n        \"price\": 3033,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3031.5,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 3031,\n      },\n      {\n        \"amount\": 310,\n        \"price\": 3030.5,\n      },\n      {\n        \"amount\": 16810,\n        \"price\": 3030,\n      },\n      {\n        \"amount\": 52,\n        \"price\": 3029.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3029,\n      },\n      {\n        \"amount\": 35,\n        \"price\": 3028.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3028,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3027,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3026.5,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 3026,\n      },\n      {\n        \"amount\": 3107,\n        \"price\": 3025.5,\n      },\n      {\n        \"amount\": 128883,\n        \"price\": 3025,\n      },\n      {\n        \"amount\": 1000200,\n        \"price\": 3024.5,\n      },\n      {\n        \"amount\": 910,\n        \"price\": 3024,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 3023,\n      },\n      {\n        \"amount\": 412,\n        \"price\": 3022.5,\n      },\n      {\n        \"amount\": 2466,\n        \"price\": 3022,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3021.5,\n      },\n      {\n        \"amount\": 21854,\n        \"price\": 3021,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 3020.5,\n      },\n      {\n        \"amount\": 10229,\n        \"price\": 3020,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3019.5,\n      },\n      {\n        \"amount\": 8800,\n        \"price\": 3019,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3017.5,\n      },\n      {\n        \"amount\": 100200,\n        \"price\": 3017,\n      },\n      {\n        \"amount\": 1650,\n        \"price\": 3016,\n      },\n      {\n        \"amount\": 1390,\n        \"price\": 3015.5,\n      },\n      {\n        \"amount\": 13988,\n        \"price\": 3015,\n      },\n      {\n        \"amount\": 180,\n        \"price\": 3014,\n      },\n      {\n        \"amount\": 327,\n        \"price\": 3013,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3012.5,\n      },\n      {\n        \"amount\": 430,\n        \"price\": 3012,\n      },\n      {\n        \"amount\": 460,\n        \"price\": 3011.5,\n      },\n      {\n        \"amount\": 3646,\n        \"price\": 3011,\n      },\n      {\n        \"amount\": 9604,\n        \"price\": 3010.5,\n      },\n      {\n        \"amount\": 9701,\n        \"price\": 3010,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3009.5,\n      },\n      {\n        \"amount\": 51600,\n        \"price\": 3009,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 3008.5,\n      },\n      {\n        \"amount\": 5155,\n        \"price\": 3008,\n      },\n      {\n        \"amount\": 3200,\n        \"price\": 3007.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3007,\n      },\n      {\n        \"amount\": 130,\n        \"price\": 3006.5,\n      },\n      {\n        \"amount\": 24630,\n        \"price\": 3006,\n      },\n      {\n        \"amount\": 2101,\n        \"price\": 3005.5,\n      },\n      {\n        \"amount\": 19074,\n        \"price\": 3005,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 3004.5,\n      },\n      {\n        \"amount\": 2520,\n        \"price\": 3003.5,\n      },\n      {\n        \"amount\": 1088,\n        \"price\": 3003,\n      },\n      {\n        \"amount\": 30482,\n        \"price\": 3002,\n      },\n      {\n        \"amount\": 16073,\n        \"price\": 3001.5,\n      },\n      {\n        \"amount\": 5175,\n        \"price\": 3001,\n      },\n      {\n        \"amount\": 201,\n        \"price\": 3000.5,\n      },\n      {\n        \"amount\": 623793,\n        \"price\": 3000,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2999.5,\n      },\n      {\n        \"amount\": 2499,\n        \"price\": 2999,\n      },\n      {\n        \"amount\": 3263,\n        \"price\": 2998,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2997.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2996.5,\n      },\n      {\n        \"amount\": 108775,\n        \"price\": 2995,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2994,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2993.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2993,\n      },\n      {\n        \"amount\": 55,\n        \"price\": 2992,\n      },\n      {\n        \"amount\": 610,\n        \"price\": 2991,\n      },\n      {\n        \"amount\": 8456,\n        \"price\": 2990,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 2988.5,\n      },\n      {\n        \"amount\": 1000910,\n        \"price\": 2988,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2987.5,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 2987,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 2986.5,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 2986,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 2985,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2984,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2983,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 2982.5,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2982,\n      },\n      {\n        \"amount\": 2212,\n        \"price\": 2981.5,\n      },\n      {\n        \"amount\": 2358,\n        \"price\": 2981,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2980.5,\n      },\n      {\n        \"amount\": 38421,\n        \"price\": 2980,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2979,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2978,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2977.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2976.5,\n      },\n      {\n        \"amount\": 1550,\n        \"price\": 2975,\n      },\n      {\n        \"amount\": 5555,\n        \"price\": 2974.5,\n      },\n      {\n        \"amount\": 956,\n        \"price\": 2974,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 2973,\n      },\n      {\n        \"amount\": 378,\n        \"price\": 2972.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2972,\n      },\n      {\n        \"amount\": 13572,\n        \"price\": 2970,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2969,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2968.5,\n      },\n      {\n        \"amount\": 975,\n        \"price\": 2968,\n      },\n      {\n        \"amount\": 6300,\n        \"price\": 2967,\n      },\n      {\n        \"amount\": 116,\n        \"price\": 2966.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2966,\n      },\n      {\n        \"amount\": 888,\n        \"price\": 2965,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 2964,\n      },\n      {\n        \"amount\": 58,\n        \"price\": 2963.5,\n      },\n      {\n        \"amount\": 2560,\n        \"price\": 2963,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2962.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2962,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2961.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2961,\n      },\n      {\n        \"amount\": 27570,\n        \"price\": 2960,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 2958.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2956,\n      },\n      {\n        \"amount\": 1452,\n        \"price\": 2955,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2954.5,\n      },\n      {\n        \"amount\": 1057,\n        \"price\": 2954,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2953.5,\n      },\n      {\n        \"amount\": 7263,\n        \"price\": 2953,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 2952.5,\n      },\n      {\n        \"amount\": 17000,\n        \"price\": 2951.5,\n      },\n      {\n        \"amount\": 1087,\n        \"price\": 2951,\n      },\n      {\n        \"amount\": 2018,\n        \"price\": 2950.5,\n      },\n      {\n        \"amount\": 86270,\n        \"price\": 2950,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 2949.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2949,\n      },\n      {\n        \"amount\": 113,\n        \"price\": 2948,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 2947,\n      },\n      {\n        \"amount\": 59,\n        \"price\": 2944.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2944,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2943,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 2942.5,\n      },\n      {\n        \"amount\": 10700,\n        \"price\": 2942,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2940.5,\n      },\n      {\n        \"amount\": 20539,\n        \"price\": 2940,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 2939.5,\n      },\n      {\n        \"amount\": 4301,\n        \"price\": 2939,\n      },\n      {\n        \"amount\": 310,\n        \"price\": 2938,\n      },\n      {\n        \"amount\": 1010,\n        \"price\": 2937,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2936,\n      },\n      {\n        \"amount\": 59,\n        \"price\": 2935.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2935,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2934,\n      },\n      {\n        \"amount\": 1900,\n        \"price\": 2933,\n      },\n      {\n        \"amount\": 402,\n        \"price\": 2931,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2930.5,\n      },\n      {\n        \"amount\": 8530,\n        \"price\": 2930,\n      },\n      {\n        \"amount\": 300725,\n        \"price\": 2929,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2927,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2926,\n      },\n      {\n        \"amount\": 3125,\n        \"price\": 2925,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2924,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2922.5,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 2922,\n      },\n      {\n        \"amount\": 1567,\n        \"price\": 2921,\n      },\n      {\n        \"amount\": 12157,\n        \"price\": 2920,\n      },\n      {\n        \"amount\": 553,\n        \"price\": 2918,\n      },\n      {\n        \"amount\": 2190,\n        \"price\": 2917,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2916.5,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 2916,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 2915.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2915,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 2913,\n      },\n      {\n        \"amount\": 1300,\n        \"price\": 2911,\n      },\n      {\n        \"amount\": 13705,\n        \"price\": 2910,\n      },\n      {\n        \"amount\": 4242,\n        \"price\": 2908,\n      },\n      {\n        \"amount\": 5050,\n        \"price\": 2907.5,\n      },\n      {\n        \"amount\": 101,\n        \"price\": 2907,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2905.5,\n      },\n      {\n        \"amount\": 860,\n        \"price\": 2905,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2904.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2904,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2903.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2902,\n      },\n      {\n        \"amount\": 23019,\n        \"price\": 2901.5,\n      },\n      {\n        \"amount\": 14525,\n        \"price\": 2901,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2900.5,\n      },\n      {\n        \"amount\": 49709,\n        \"price\": 2900,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2899.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2899,\n      },\n      {\n        \"amount\": 312,\n        \"price\": 2897.5,\n      },\n      {\n        \"amount\": 23000,\n        \"price\": 2896.5,\n      },\n      {\n        \"amount\": 330,\n        \"price\": 2895,\n      },\n      {\n        \"amount\": 710,\n        \"price\": 2894.5,\n      },\n      {\n        \"amount\": 13533,\n        \"price\": 2892,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2890.5,\n      },\n      {\n        \"amount\": 19965,\n        \"price\": 2890,\n      },\n      {\n        \"amount\": 375,\n        \"price\": 2889,\n      },\n      {\n        \"amount\": 52677,\n        \"price\": 2888,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2887.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2887,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2886.5,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2885.5,\n      },\n      {\n        \"amount\": 3100,\n        \"price\": 2885,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2883.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2881.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2881,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2880.5,\n      },\n      {\n        \"amount\": 22479,\n        \"price\": 2880,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2879.5,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2879,\n      },\n      {\n        \"amount\": 63,\n        \"price\": 2878.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2877.5,\n      },\n      {\n        \"amount\": 5855,\n        \"price\": 2877,\n      },\n      {\n        \"amount\": 1000000,\n        \"price\": 2876.5,\n      },\n      {\n        \"amount\": 2150,\n        \"price\": 2875,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2874.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2873,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2871.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2871,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2870.5,\n      },\n      {\n        \"amount\": 8220,\n        \"price\": 2870,\n      },\n      {\n        \"amount\": 63,\n        \"price\": 2869,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 2868,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2866.5,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 2866,\n      },\n      {\n        \"amount\": 4600,\n        \"price\": 2865,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 2863.5,\n      },\n      {\n        \"amount\": 4967,\n        \"price\": 2863,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 2861,\n      },\n      {\n        \"amount\": 4834,\n        \"price\": 2860,\n      },\n      {\n        \"amount\": 1547,\n        \"price\": 2859,\n      },\n      {\n        \"amount\": 50012,\n        \"price\": 2858.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2858,\n      },\n      {\n        \"amount\": 7500,\n        \"price\": 2857.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2856,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2855.5,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 2855,\n      },\n      {\n        \"amount\": 2674,\n        \"price\": 2854.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2853.5,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 2853,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 2852.5,\n      },\n      {\n        \"amount\": 750,\n        \"price\": 2852,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2851.5,\n      },\n      {\n        \"amount\": 9788,\n        \"price\": 2851,\n      },\n      {\n        \"amount\": 3065,\n        \"price\": 2850.5,\n      },\n      {\n        \"amount\": 48028,\n        \"price\": 2850,\n      },\n      {\n        \"amount\": 1999,\n        \"price\": 2845,\n      },\n      {\n        \"amount\": 34444,\n        \"price\": 2844.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2844,\n      },\n      {\n        \"amount\": 9500,\n        \"price\": 2843,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2842,\n      },\n      {\n        \"amount\": 100365,\n        \"price\": 2841,\n      },\n      {\n        \"amount\": 5250,\n        \"price\": 2840,\n      },\n      {\n        \"amount\": 1599,\n        \"price\": 2839,\n      },\n      {\n        \"amount\": 280,\n        \"price\": 2838,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2837.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2836.5,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 2836,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 2835,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2834,\n      },\n      {\n        \"amount\": 125,\n        \"price\": 2833,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2832,\n      },\n      {\n        \"amount\": 396,\n        \"price\": 2831.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2831,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 2830.5,\n      },\n      {\n        \"amount\": 1300,\n        \"price\": 2830,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2827,\n      },\n      {\n        \"amount\": 1060,\n        \"price\": 2826,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 2825.5,\n      },\n      {\n        \"amount\": 3900,\n        \"price\": 2825,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2824.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2824,\n      },\n      {\n        \"amount\": 7420,\n        \"price\": 2823,\n      },\n      {\n        \"amount\": 21822,\n        \"price\": 2822,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2821,\n      },\n      {\n        \"amount\": 32760,\n        \"price\": 2820,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2819,\n      },\n      {\n        \"amount\": 224,\n        \"price\": 2818,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2816.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2816,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2815,\n      },\n      {\n        \"amount\": 818,\n        \"price\": 2813,\n      },\n      {\n        \"amount\": 22926,\n        \"price\": 2812.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2812,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2811.5,\n      },\n      {\n        \"amount\": 22284,\n        \"price\": 2811,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2810.5,\n      },\n      {\n        \"amount\": 1095,\n        \"price\": 2810,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 2808,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 2807,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2806.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2806,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2805.5,\n      },\n      {\n        \"amount\": 1450,\n        \"price\": 2805,\n      },\n      {\n        \"amount\": 68,\n        \"price\": 2803,\n      },\n      {\n        \"amount\": 269,\n        \"price\": 2802,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2801.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2801,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2800.5,\n      },\n      {\n        \"amount\": 87284,\n        \"price\": 2800,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 2798,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2797.5,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2795.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2794,\n      },\n      {\n        \"amount\": 218,\n        \"price\": 2793.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2792,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2791.5,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 2791,\n      },\n      {\n        \"amount\": 7340,\n        \"price\": 2790,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 2788.5,\n      },\n      {\n        \"amount\": 805,\n        \"price\": 2788,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 2787,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2786,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2785,\n      },\n      {\n        \"amount\": 69,\n        \"price\": 2784.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2783,\n      },\n      {\n        \"amount\": 1989,\n        \"price\": 2780,\n      },\n      {\n        \"amount\": 333,\n        \"price\": 2779.5,\n      },\n      {\n        \"amount\": 77,\n        \"price\": 2778,\n      },\n      {\n        \"amount\": 512,\n        \"price\": 2777.5,\n      },\n      {\n        \"amount\": 22,\n        \"price\": 2777,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2776,\n      },\n      {\n        \"amount\": 22358,\n        \"price\": 2775,\n      },\n      {\n        \"amount\": 383,\n        \"price\": 2774.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2772,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 2771,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2770,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2769,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2768.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2768,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2767.5,\n      },\n      {\n        \"amount\": 7650,\n        \"price\": 2767,\n      },\n      {\n        \"amount\": 158,\n        \"price\": 2765.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2765,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2764,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 2763,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2762.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2761.5,\n      },\n      {\n        \"amount\": 22000,\n        \"price\": 2760,\n      },\n      {\n        \"amount\": 2950,\n        \"price\": 2759.5,\n      },\n      {\n        \"amount\": 303600,\n        \"price\": 2757.5,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 2756,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2754.5,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2754,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2753,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 2751.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2751,\n      },\n      {\n        \"amount\": 39686,\n        \"price\": 2750,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2749.5,\n      },\n      {\n        \"amount\": 540,\n        \"price\": 2749,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 2747.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2745,\n      },\n      {\n        \"amount\": 34444,\n        \"price\": 2744.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2744,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 2741,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2740,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2738,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2737,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2736.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2736,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2734,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2733,\n      },\n      {\n        \"amount\": 5900,\n        \"price\": 2731.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2730.5,\n      },\n      {\n        \"amount\": 1020000,\n        \"price\": 2730,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 2729,\n      },\n      {\n        \"amount\": 225,\n        \"price\": 2728.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2727,\n      },\n      {\n        \"amount\": 2080,\n        \"price\": 2726,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2725.5,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 2725,\n      },\n      {\n        \"amount\": 7320,\n        \"price\": 2723,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 2722.5,\n      },\n      {\n        \"amount\": 1650,\n        \"price\": 2720,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2719,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2717,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2715,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2713,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2712.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2711,\n      },\n      {\n        \"amount\": 10016,\n        \"price\": 2710,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2708,\n      },\n      {\n        \"amount\": 333,\n        \"price\": 2706.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2706,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2705.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2705,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2704,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2703.5,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 2703,\n      },\n      {\n        \"amount\": 160,\n        \"price\": 2702,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 2701.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2700.5,\n      },\n      {\n        \"amount\": 121849,\n        \"price\": 2700,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2699.5,\n      },\n      {\n        \"amount\": 671,\n        \"price\": 2699,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2698.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2697,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2695.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2692.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2691,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2689,\n      },\n      {\n        \"amount\": 5555,\n        \"price\": 2685.5,\n      },\n      {\n        \"amount\": 150000,\n        \"price\": 2682,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2680,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2679,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2678.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2678,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2677,\n      },\n      {\n        \"amount\": 32400,\n        \"price\": 2675,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2672.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2672,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2671.5,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2670.5,\n      },\n      {\n        \"amount\": 10002,\n        \"price\": 2670,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 2667,\n      },\n      {\n        \"amount\": 41176,\n        \"price\": 2666,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2664.5,\n      },\n      {\n        \"amount\": 6700,\n        \"price\": 2663,\n      },\n      {\n        \"amount\": 12222,\n        \"price\": 2662,\n      },\n      {\n        \"amount\": 167255,\n        \"price\": 2661,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2660.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2660,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 2655.5,\n      },\n      {\n        \"amount\": 177,\n        \"price\": 2655,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2654.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2654,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 2653,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2651.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2651,\n      },\n      {\n        \"amount\": 760,\n        \"price\": 2650,\n      },\n      {\n        \"amount\": 2388,\n        \"price\": 2646.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2645,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2644,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2643,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2642,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2641.5,\n      },\n      {\n        \"amount\": 166667,\n        \"price\": 2641,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 2640,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2639.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2639,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 2637.5,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 2637,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2635,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2633.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2633,\n      },\n      {\n        \"amount\": 1001000,\n        \"price\": 2632,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2630.5,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2629,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 2628.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2627.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2627,\n      },\n      {\n        \"amount\": 2900,\n        \"price\": 2625,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2624.5,\n      },\n      {\n        \"amount\": 7288,\n        \"price\": 2623,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2621,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 2620,\n      },\n      {\n        \"amount\": 640,\n        \"price\": 2618,\n      },\n      {\n        \"amount\": 964,\n        \"price\": 2617,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 2616,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2614,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2613.5,\n      },\n      {\n        \"amount\": 333,\n        \"price\": 2613,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2611.5,\n      },\n      {\n        \"amount\": 3097,\n        \"price\": 2610,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2608,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2607,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2605.5,\n      },\n      {\n        \"amount\": 6786,\n        \"price\": 2605,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2602,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2601.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2601,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2600.5,\n      },\n      {\n        \"amount\": 73685,\n        \"price\": 2600,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2598,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2596.5,\n      },\n      {\n        \"amount\": 7,\n        \"price\": 2592,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2591.5,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 2590,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 2589,\n      },\n      {\n        \"amount\": 7650,\n        \"price\": 2588,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2587,\n      },\n      {\n        \"amount\": 1388,\n        \"price\": 2585,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2582.5,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 2581.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2580,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2579.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2579,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2578,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2577,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 2575.5,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 2575,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2574.5,\n      },\n      {\n        \"amount\": 7500,\n        \"price\": 2574,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2573,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2572.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 2572,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2571,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2570,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2568,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2566,\n      },\n      {\n        \"amount\": 333,\n        \"price\": 2565.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2564,\n      },\n      {\n        \"amount\": 5555,\n        \"price\": 2561.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2560,\n      },\n      {\n        \"amount\": 11700,\n        \"price\": 2555,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 2554,\n      },\n      {\n        \"amount\": 650,\n        \"price\": 2553,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 2552,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2551.5,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 2551,\n      },\n      {\n        \"amount\": 103565,\n        \"price\": 2550,\n      },\n      {\n        \"amount\": 7500,\n        \"price\": 2549,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 2547.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2547,\n      },\n      {\n        \"amount\": 2250,\n        \"price\": 2546,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2545.5,\n      },\n      {\n        \"amount\": 2255,\n        \"price\": 2543,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2540,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2535,\n      },\n      {\n        \"amount\": 824,\n        \"price\": 2532,\n      },\n      {\n        \"amount\": 4421,\n        \"price\": 2531,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2530.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2530,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 2525,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2523,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 2522.5,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 2521,\n      },\n      {\n        \"amount\": 10470,\n        \"price\": 2520,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2517.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2517,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2516.5,\n      },\n      {\n        \"amount\": 513,\n        \"price\": 2515,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2514.5,\n      },\n      {\n        \"amount\": 4377,\n        \"price\": 2511,\n      },\n      {\n        \"amount\": 118,\n        \"price\": 2510,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2509,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2505.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2505,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2503.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2502.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2501.5,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 2501,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 2500.5,\n      },\n      {\n        \"amount\": 253178,\n        \"price\": 2500,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2499,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2497.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2491.5,\n      },\n      {\n        \"amount\": 212,\n        \"price\": 2491,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 2490,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2487.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2484,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2481,\n      },\n      {\n        \"amount\": 7004,\n        \"price\": 2480.5,\n      },\n      {\n        \"amount\": 11040,\n        \"price\": 2480,\n      },\n      {\n        \"amount\": 5350,\n        \"price\": 2475,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 2471.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2471,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2470,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 2469.5,\n      },\n      {\n        \"amount\": 360,\n        \"price\": 2468.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 2468,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2465.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2463,\n      },\n      {\n        \"amount\": 1557,\n        \"price\": 2462,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2461,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2460.5,\n      },\n      {\n        \"amount\": 20001,\n        \"price\": 2460,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 2459,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2457,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2456.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2456,\n      },\n      {\n        \"amount\": 187,\n        \"price\": 2455.5,\n      },\n      {\n        \"amount\": 4600,\n        \"price\": 2455,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2454.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2453.5,\n      },\n      {\n        \"amount\": 3012,\n        \"price\": 2450.5,\n      },\n      {\n        \"amount\": 1472,\n        \"price\": 2450,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2445.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2445,\n      },\n      {\n        \"amount\": 44444,\n        \"price\": 2444.5,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 2444,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 2443.5,\n      },\n      {\n        \"amount\": 35,\n        \"price\": 2443,\n      },\n      {\n        \"amount\": 1020,\n        \"price\": 2440,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 2435,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2434,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2433,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2432.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2432,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 2430.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2430,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2428.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2427,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2425.5,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 2425,\n      },\n      {\n        \"amount\": 420,\n        \"price\": 2422,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2420.5,\n      },\n      {\n        \"amount\": 3787,\n        \"price\": 2420,\n      },\n      {\n        \"amount\": 117200,\n        \"price\": 2418,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2417,\n      },\n      {\n        \"amount\": 4100,\n        \"price\": 2415.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2415,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2414,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2413,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2412,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 2411,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 2410,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2409.5,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 2409,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 2405.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2405,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2403,\n      },\n      {\n        \"amount\": 31572,\n        \"price\": 2400,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2397,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2396.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2395,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2393.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2392.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2392,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2391.5,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 2391,\n      },\n      {\n        \"amount\": 1900,\n        \"price\": 2388.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 2387,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2383,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2382,\n      },\n      {\n        \"amount\": 30860,\n        \"price\": 2380,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2378.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2376,\n      },\n      {\n        \"amount\": 5071,\n        \"price\": 2375,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2373.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2373,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2371.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2369,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2368.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2367,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2365.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2364,\n      },\n      {\n        \"amount\": 12020,\n        \"price\": 2360,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2359.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2357,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2356.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2355,\n      },\n      {\n        \"amount\": 44444,\n        \"price\": 2354.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2354,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2353,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 2350.5,\n      },\n      {\n        \"amount\": 10030,\n        \"price\": 2350,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2346.5,\n      },\n      {\n        \"amount\": 31,\n        \"price\": 2345,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2337,\n      },\n      {\n        \"amount\": 5037,\n        \"price\": 2336.5,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 2335,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 2333,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2332,\n      },\n      {\n        \"amount\": 52,\n        \"price\": 2331,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2330.5,\n      },\n      {\n        \"amount\": 513,\n        \"price\": 2329.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2328,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2327.5,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 2325,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2322.5,\n      },\n      {\n        \"amount\": 464,\n        \"price\": 2322,\n      },\n      {\n        \"amount\": 470,\n        \"price\": 2320,\n      },\n      {\n        \"amount\": 588,\n        \"price\": 2319,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2313.5,\n      },\n      {\n        \"amount\": 54,\n        \"price\": 2313,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2310,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2309.5,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 2306.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2305.5,\n      },\n      {\n        \"amount\": 276,\n        \"price\": 2305,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2303.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2301,\n      },\n      {\n        \"amount\": 13960,\n        \"price\": 2300,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2296.5,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2295,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2288.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2287,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 2285,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2284,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2283,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2282,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2281,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2280,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2275,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2270,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2269.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2269,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2267.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2265,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 2263.5,\n      },\n      {\n        \"amount\": 3250,\n        \"price\": 2263,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2259,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2258,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2255.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2255,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2253,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2252,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 2251,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2250.5,\n      },\n      {\n        \"amount\": 118755,\n        \"price\": 2250,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2247,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2246,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 2243,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2242,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2241.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2240.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2240,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 2234.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 2234,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2229,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2227.5,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 2227,\n      },\n      {\n        \"amount\": 7650,\n        \"price\": 2226,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 2225,\n      },\n      {\n        \"amount\": 222,\n        \"price\": 2222.5,\n      },\n      {\n        \"amount\": 143598,\n        \"price\": 2222,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2216.5,\n      },\n      {\n        \"amount\": 17,\n        \"price\": 2216,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2212,\n      },\n      {\n        \"amount\": 3537,\n        \"price\": 2211.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2211,\n      },\n      {\n        \"amount\": 40080,\n        \"price\": 2210,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2208,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2207,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2206,\n      },\n      {\n        \"amount\": 112,\n        \"price\": 2205.5,\n      },\n      {\n        \"amount\": 662,\n        \"price\": 2205,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2204,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2203,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2200.5,\n      },\n      {\n        \"amount\": 33584,\n        \"price\": 2200,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2197,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2196,\n      },\n      {\n        \"amount\": 10333,\n        \"price\": 2193.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2193,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 2190,\n      },\n      {\n        \"amount\": 9,\n        \"price\": 2189,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 2188,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2185,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2184,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 2180,\n      },\n      {\n        \"amount\": 11009,\n        \"price\": 2175,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2172.5,\n      },\n      {\n        \"amount\": 4295,\n        \"price\": 2170,\n      },\n      {\n        \"amount\": 1737,\n        \"price\": 2169.5,\n      },\n      {\n        \"amount\": 1120,\n        \"price\": 2167,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2166,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 2165,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2164.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2160,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2158.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2157,\n      },\n      {\n        \"amount\": 2030,\n        \"price\": 2155,\n      },\n      {\n        \"amount\": 33000,\n        \"price\": 2152,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2150.5,\n      },\n      {\n        \"amount\": 6580,\n        \"price\": 2150,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2146,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2145,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2144,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2142.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2141.5,\n      },\n      {\n        \"amount\": 163650,\n        \"price\": 2140,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2136.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2136,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 2135,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2134,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2133.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2132,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2130,\n      },\n      {\n        \"amount\": 1825,\n        \"price\": 2128,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2127,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 2126,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2125,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2123.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2123,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2118,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2117.5,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2114,\n      },\n      {\n        \"amount\": 219346,\n        \"price\": 2111.5,\n      },\n      {\n        \"amount\": 505643,\n        \"price\": 2111,\n      },\n      {\n        \"amount\": 1998,\n        \"price\": 2110,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2105,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 2104,\n      },\n      {\n        \"amount\": 29626,\n        \"price\": 2100,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2099,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2096.5,\n      },\n      {\n        \"amount\": 388,\n        \"price\": 2090,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2085.5,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2084,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 2083,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2082.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2082,\n      },\n      {\n        \"amount\": 7650,\n        \"price\": 2081,\n      },\n      {\n        \"amount\": 7777,\n        \"price\": 2077,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2075,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2073.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2063.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2060,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2058.5,\n      },\n      {\n        \"amount\": 981,\n        \"price\": 2055,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2053,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2052,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 2050,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 2048,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2043.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2042,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2040.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2037.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 2030.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2030,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2025,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 2023,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2022,\n      },\n      {\n        \"amount\": 4060,\n        \"price\": 2021,\n      },\n      {\n        \"amount\": 2013,\n        \"price\": 2020.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2020,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2017.5,\n      },\n      {\n        \"amount\": 581,\n        \"price\": 2015,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2014,\n      },\n      {\n        \"amount\": 501,\n        \"price\": 2013.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2011.5,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 2010,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2009,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2007.5,\n      },\n      {\n        \"amount\": 1450,\n        \"price\": 2005,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2003.5,\n      },\n      {\n        \"amount\": 10491,\n        \"price\": 2002,\n      },\n      {\n        \"amount\": 4624,\n        \"price\": 2001,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2000.5,\n      },\n      {\n        \"amount\": 49692,\n        \"price\": 2000,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 1999,\n      },\n      {\n        \"amount\": 130,\n        \"price\": 1990,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1987,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1984.5,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 1980,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1977,\n      },\n      {\n        \"amount\": 1788,\n        \"price\": 1976,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1975,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 1970.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 1965.5,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 1960.5,\n      },\n      {\n        \"amount\": 1243,\n        \"price\": 1960,\n      },\n      {\n        \"amount\": 2060,\n        \"price\": 1959.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1958.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1955,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1954.5,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 1954,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 1951.5,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 1950,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1945.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1944,\n      },\n      {\n        \"amount\": 9,\n        \"price\": 1941.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 1938,\n      },\n      {\n        \"amount\": 8650,\n        \"price\": 1936,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1934.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1934,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1933.5,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 1932,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 1930,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 1929.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1925,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1922,\n      },\n      {\n        \"amount\": 2276,\n        \"price\": 1920,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1919.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1919,\n      },\n      {\n        \"amount\": 100100,\n        \"price\": 1912,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 1910,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 1905,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1902,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1900.5,\n      },\n      {\n        \"amount\": 2168,\n        \"price\": 1900,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1898.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1897.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1896.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1894.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1894,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1890.5,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 1890,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 1888.5,\n      },\n      {\n        \"amount\": 325,\n        \"price\": 1887.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1881,\n      },\n      {\n        \"amount\": 1531,\n        \"price\": 1880,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 1879,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1878.5,\n      },\n      {\n        \"amount\": 632,\n        \"price\": 1878,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1875,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1872.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 1867.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1866,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1865,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 1863.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 1862,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1861,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1860,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1859.5,\n      },\n      {\n        \"amount\": 43,\n        \"price\": 1857.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1855,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1851,\n      },\n      {\n        \"amount\": 8150,\n        \"price\": 1850,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1843,\n      },\n      {\n        \"amount\": 231,\n        \"price\": 1840,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1838.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1838,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1837.5,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1836.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1835.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1834.5,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 1831.5,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 1831,\n      },\n      {\n        \"amount\": 10002,\n        \"price\": 1830,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1829.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1825,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1824.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1821.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1821,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 1818,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1817,\n      },\n      {\n        \"amount\": 1900,\n        \"price\": 1816.5,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 1815,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1812.5,\n      },\n      {\n        \"amount\": 375,\n        \"price\": 1810.5,\n      },\n      {\n        \"amount\": 6600,\n        \"price\": 1810,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 1808,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 1805,\n      },\n      {\n        \"amount\": 573,\n        \"price\": 1804.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 1803,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 1801,\n      },\n      {\n        \"amount\": 16690,\n        \"price\": 1800,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1798,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1797,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1796.5,\n      },\n      {\n        \"amount\": 59,\n        \"price\": 1784.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1780,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1778,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1775,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1774.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1773.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1773,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 1767,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 1766,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1756.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1756,\n      },\n      {\n        \"amount\": 1460,\n        \"price\": 1750,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1749,\n      },\n      {\n        \"amount\": 16500,\n        \"price\": 1742.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1733,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1729,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1725,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 1719,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1715,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1712.5,\n      },\n      {\n        \"amount\": 135,\n        \"price\": 1712,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1711,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1708,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1705.5,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 1701,\n      },\n      {\n        \"amount\": 3039,\n        \"price\": 1700,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 1693,\n      },\n      {\n        \"amount\": 63,\n        \"price\": 1692,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 1687,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1677,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1675,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1674.5,\n      },\n      {\n        \"amount\": 2012,\n        \"price\": 1674,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 1667,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 1662,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1650.5,\n      },\n      {\n        \"amount\": 2258,\n        \"price\": 1650,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1649,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1644,\n      },\n      {\n        \"amount\": 92,\n        \"price\": 1639.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1633.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1630.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1625,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1611,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 1610,\n      },\n      {\n        \"amount\": 1830,\n        \"price\": 1600,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1592.5,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1589,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1588,\n      },\n      {\n        \"amount\": 2013,\n        \"price\": 1587,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 1575,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1567.5,\n      },\n      {\n        \"amount\": 108,\n        \"price\": 1566.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1560,\n      },\n      {\n        \"amount\": 201,\n        \"price\": 1559,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1558,\n      },\n      {\n        \"amount\": 555,\n        \"price\": 1555,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1552,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1551.5,\n      },\n      {\n        \"amount\": 1871,\n        \"price\": 1551,\n      },\n      {\n        \"amount\": 1060,\n        \"price\": 1550,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1544,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1537,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1536,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 1531,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1530.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 1530,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1527,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1526,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1525.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1525,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1521,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1518,\n      },\n      {\n        \"amount\": 758,\n        \"price\": 1516,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1515,\n      },\n      {\n        \"amount\": 3024,\n        \"price\": 1511,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1510,\n      },\n      {\n        \"amount\": 96940,\n        \"price\": 1500,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1496.5,\n      },\n      {\n        \"amount\": 125,\n        \"price\": 1494,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1487.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1487,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 1483.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1470,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 1466,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1465.5,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1465,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1464,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1463.5,\n      },\n      {\n        \"amount\": 801,\n        \"price\": 1458,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1451.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1450,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 1440.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1437.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1433.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1429,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 1423,\n      },\n      {\n        \"amount\": 141,\n        \"price\": 1421.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1420,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1412,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1403,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1402.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1401.5,\n      },\n      {\n        \"amount\": 425,\n        \"price\": 1401,\n      },\n      {\n        \"amount\": 8840,\n        \"price\": 1400,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1396,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1391.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1388.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1388,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1382.5,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 1378,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1370,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 1351,\n      },\n      {\n        \"amount\": 53960,\n        \"price\": 1350,\n      },\n      {\n        \"amount\": 157,\n        \"price\": 1348.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1347.5,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1341,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1340.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1340,\n      },\n      {\n        \"amount\": 12001,\n        \"price\": 1337,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1335,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1329,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1323,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 1316.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1314.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1313.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 1307,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1305.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 1301,\n      },\n      {\n        \"amount\": 12050,\n        \"price\": 1300,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 1299,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 1297.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 1290,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 1288,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1282.5,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 1282,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 1280,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1279,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1278.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1278,\n      },\n      {\n        \"amount\": 175,\n        \"price\": 1276,\n      },\n      {\n        \"amount\": 101000,\n        \"price\": 1270,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1264,\n      },\n      {\n        \"amount\": 750,\n        \"price\": 1263.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1260,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1258,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1256.5,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 1251,\n      },\n      {\n        \"amount\": 13610,\n        \"price\": 1250,\n      },\n      {\n        \"amount\": 2004,\n        \"price\": 1240,\n      },\n      {\n        \"amount\": 1020,\n        \"price\": 1236,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1234,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 1233,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1230.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 1230,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1229,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 1227,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 1220,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1217.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1216.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1216,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1213,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 1210,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1209,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 1201,\n      },\n      {\n        \"amount\": 34700,\n        \"price\": 1200,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 1190,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 1167.5,\n      },\n      {\n        \"amount\": 5830,\n        \"price\": 1165,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1155.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1155,\n      },\n      {\n        \"amount\": 813,\n        \"price\": 1154,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1151,\n      },\n      {\n        \"amount\": 13210,\n        \"price\": 1150,\n      },\n      {\n        \"amount\": 964,\n        \"price\": 1149.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1144,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 1133,\n      },\n      {\n        \"amount\": 8,\n        \"price\": 1130,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 1120,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 1118,\n      },\n      {\n        \"amount\": 4700,\n        \"price\": 1117,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 1116,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1113.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1112,\n      },\n      {\n        \"amount\": 28000,\n        \"price\": 1111,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1105,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1101,\n      },\n      {\n        \"amount\": 17310,\n        \"price\": 1100,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1093.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1093,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1092.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 1090,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 1077,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 1075,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 1070,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 1068,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1067.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1060,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1058,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1051,\n      },\n      {\n        \"amount\": 405810,\n        \"price\": 1050,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1043,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 1040,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1037.5,\n      },\n      {\n        \"amount\": 1510,\n        \"price\": 1030,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1026,\n      },\n      {\n        \"amount\": 2700,\n        \"price\": 1025,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 1021,\n      },\n      {\n        \"amount\": 1010,\n        \"price\": 1020,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1017.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 1011,\n      },\n      {\n        \"amount\": 12310,\n        \"price\": 1010,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 1008,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1007.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1005,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 1004,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1003.5,\n      },\n      {\n        \"amount\": 17000,\n        \"price\": 1001,\n      },\n      {\n        \"amount\": 102294,\n        \"price\": 1000,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 992,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 990,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 980,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 972,\n      },\n      {\n        \"amount\": 310,\n        \"price\": 970,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 960,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 951,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 950,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 948,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 928,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 904,\n      },\n      {\n        \"amount\": 8580,\n        \"price\": 900,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 879,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 820,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 818,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 814,\n      },\n      {\n        \"amount\": 5810,\n        \"price\": 800,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 788,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 777,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 775,\n      },\n      {\n        \"amount\": 425,\n        \"price\": 755,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 732,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 700.5,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 667.5,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 659,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 614,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 600,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 593,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 592.5,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 590,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 534,\n      },\n      {\n        \"amount\": 20820,\n        \"price\": 500,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 480,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 447,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 432,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 406.5,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 400,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 394,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 390,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 389,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 383,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 372,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 350,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 306.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 277.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 218,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 200,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 199.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 183.5,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 167.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 166,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 155.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 146.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 138.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 138,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 125.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 101.5,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 101,\n      },\n      {\n        \"amount\": 3105,\n        \"price\": 100,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 90.5,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 81,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 80,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 67.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 50,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 40,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 39,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 38,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 37,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 36,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 35,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 34,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 33,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 32,\n      },\n      {\n        \"amount\": 34,\n        \"price\": 31,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 26.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 13.5,\n      },\n      {\n        \"amount\": 62,\n        \"price\": 12,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 10.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 8.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 6,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 5.5,\n      },\n      {\n        \"amount\": 47,\n        \"price\": 5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3.5,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 3,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 1.5,\n      },\n      {\n        \"amount\": 46,\n        \"price\": 1,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 0.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-04-01T00:00:02.680358Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:02.680358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20330,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.697244Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12470,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.711319Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.689Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 99710,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.729715Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.704Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67760,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.749660Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.715Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77900,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 82760,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.848272Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.741Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 119710,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.857021Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9460,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.864630Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.849Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 16340,\n        \"price\": 4083.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.873193Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42860,\n        \"price\": 4104.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.565720Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.910Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 137790,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.565854Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:02.983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141780,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 49900,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.565927Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.090Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4083.75,\n      },\n      {\n        \"amount\": 17040,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.565938Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.110Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12430,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.616231Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82730,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.616272Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.332Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 282400,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.623138Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.372Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 57900,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.632224Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.619Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67730,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.641071Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.632Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.644367Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.634Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81780,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 81750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.670982Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52730,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 145180,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.673667Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.664Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 37900,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 72730,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.680556Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 17900,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 92730,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.680877Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77730,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 160180,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.681169Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51780,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 111750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.689554Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.677Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9100,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 45700,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.697289Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 29100,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.699377Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 19900,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 121750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.701875Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12460,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.754057Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77740,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.761151Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.751Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 99710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.775898Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175180,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.792761Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49100,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.805642Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.795Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 79710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 49720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.807584Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.797Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.810074Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13360,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.845774Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.835Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 56320,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.932950Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:03.923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3340081,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1829388,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 606779,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 315917,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.021262Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.021262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 602031,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 566779,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.023400Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.023400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.064581Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.055Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 99710,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.095461Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12430,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.121584Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77820,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.129171Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.118Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29490,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.153708Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 119710,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.175281Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1700,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.183986Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160180,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 472310,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.237538Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 43360,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.238316Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.224Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 287400,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.286516Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24950,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.340278Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 299949,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 501792,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 358780,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 216579,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.428358Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.428358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.432032Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47900,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.433970Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 496310,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.436179Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 289100,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.479627Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.469Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12500,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.510777Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77730,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.517755Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.508Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 697225,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.629763Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.629763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3330081,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.631022Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.631022Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 388907,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 821415,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 744060,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 239394,\n        \"price\": 4053.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.639860Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.639860Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 961956,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1842118,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 598087,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 626920,\n        \"price\": 4063,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.642196Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.642196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64388,\n        \"price\": 4143.5,\n      },\n      {\n        \"amount\": 139465,\n        \"price\": 4141.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1908366,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 722794,\n        \"price\": 4023,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.644219Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.644219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 287084,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.656414Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.656414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33500,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 60700,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.665616Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 308626,\n        \"price\": 4069,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.667127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.667127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 286770,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85333,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.675788Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.675788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 286709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 260527,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.677851Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.677851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.677878Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.677878Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58190,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 10760,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.692287Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18230,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 58890,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.705120Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 495310,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.707779Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1828888,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.709130Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.709130Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47200,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 78430,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.717038Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.706Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4040,\n        \"price\": 4097.75,\n      },\n      {\n        \"amount\": 49080,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.719737Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42000,\n        \"price\": 4100.25,\n      },\n      {\n        \"amount\": 48990,\n        \"price\": 4098.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.727802Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13000,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.730016Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 296709,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.744809Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.744809Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 249318,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 1842129,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.748772Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.748772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 375838,\n        \"price\": 4166,\n      },\n      {\n        \"amount\": 196988,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 215771,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 389377,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 395107,\n        \"price\": 3986,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.766645Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.766645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 382424,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.769660Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.769660Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 410492,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 848582,\n        \"price\": 4115.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.773194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.773194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 1842157,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.776994Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.776994Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389561,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3330265,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1829072,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 827297,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 321169,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.786189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.786189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41640,\n        \"price\": 4102.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.791446Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189709,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.815407Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.815407Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 410514,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 848560,\n        \"price\": 4115.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.817712Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.817712Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12460,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.818558Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.808Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 489563,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 228492,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 157082,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 86434,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 154911,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 167038,\n        \"price\": 4041.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.837116Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.837116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 99710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.838794Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.817Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78460,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.841061Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389652,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3330356,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1829163,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 827479,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.841697Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.841697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 19200,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 122450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.853557Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749535,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.861441Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.861441Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193617,\n        \"price\": 4167,\n      },\n      {\n        \"amount\": 216788,\n        \"price\": 4166.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 133616,\n        \"price\": 4056.5,\n      },\n      {\n        \"amount\": 471035,\n        \"price\": 4056,\n      },\n      {\n        \"amount\": 331303,\n        \"price\": 3946,\n      },\n      {\n        \"amount\": 84106,\n        \"price\": 3945.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.863237Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.863237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1002800,\n        \"price\": 4145,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.865040Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.865040Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 79710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 49720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.868704Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189707,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.878794Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.878794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 297185,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.880594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.880594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5000,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 81100,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.880729Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 468444,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 462823,\n        \"price\": 4012,\n      },\n      {\n        \"amount\": 1323087,\n        \"price\": 4011,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.883794Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.883794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.903336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.903336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 173619,\n        \"price\": 5000,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.908754Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.908754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29980,\n        \"price\": 4114.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.941285Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:04.932Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 508141,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.955053Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.955053Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 500141,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.955085Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.955085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741535,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.958210Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.958210Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.961928Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.961928Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1818157,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.965859Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.965859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 716535,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.980223Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.980223Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1816919,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.011983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.011983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 432263,\n        \"price\": 4066,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.022437Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.022437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.025635Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.025635Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 819415,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 617552,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.025668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.025668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 287400,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.036287Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 247047,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.115820Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.115820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 48360,\n        \"price\": 4086.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.118219Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 68360,\n        \"price\": 4086.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.122933Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 24720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.143107Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 44720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.145250Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12490,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.171761Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78430,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.177394Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 64710,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.181930Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.172Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 626033,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.211719Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.211719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 291955,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.212932Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.212932Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 119200,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4072.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.225926Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54800,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 29870,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.298170Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 271010,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 25850,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.307982Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 34570,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.310857Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.300Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 302603,\n        \"price\": 4058,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.314015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.314015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1833327,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.338502Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.338502Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1079690,\n        \"price\": 4035.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.339441Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.339441Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 12,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.361411Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.361411Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 13,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.361445Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.361445Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 182707,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.395056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.395056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 827469,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.421569Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.421569Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 716533,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 500143,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.427759Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.427759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 182207,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.437027Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.437027Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 172207,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.443749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.443749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10831,\n        \"price\": 4419,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.446961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.446961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 515100,\n        \"price\": 4040.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.451335Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.451335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1857818,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.457006Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.457006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86880,\n        \"price\": 4092,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.458717Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.449Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.461535Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.461535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4091.75,\n      },\n      {\n        \"amount\": 174230,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.463250Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.454Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8980,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 5350,\n        \"price\": 4077.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.466965Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.458Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12900,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 313780,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.468304Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.459Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 562031,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 526779,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.478680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.478680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8710,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 13170,\n        \"price\": 4092,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.481693Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1789163,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 454326,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.484761Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.484761Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1928818,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.493532Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.493532Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 48360,\n        \"price\": 4086.25,\n      },\n      {\n        \"amount\": 64720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.510959Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.501Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 204428,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.516831Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.516831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 14260,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.521414Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.506Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 28360,\n        \"price\": 4086.25,\n      },\n      {\n        \"amount\": 84720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.521601Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5000,\n        \"price\": 4077.25,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.521619Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.510Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.526233Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.515Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 69720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 59710,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.529474Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.520Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 49720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 79710,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.531956Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.523Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 172232,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.532849Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.532849Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48080,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 89560,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.544624Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1953328,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.548016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.548016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9460,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 64470,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.556253Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.547Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10760,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 33500,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.565935Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.556Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75000,\n        \"price\": 4072.75,\n      },\n      {\n        \"amount\": 144200,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.568620Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.559Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 272710,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.583862Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.572Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10,\n        \"price\": 6136,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.585244Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.585244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 172255,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.587861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.587861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 172275,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.597226Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.597226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48080,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.600405Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.586Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 174180,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.602675Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78440,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.608234Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.599Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180179,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 255081,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.609743Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.609743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1200,\n        \"price\": 4317.5,\n      },\n      {\n        \"amount\": 245247,\n        \"price\": 4279,\n      },\n      {\n        \"amount\": 82978,\n        \"price\": 4247,\n      },\n      {\n        \"amount\": 1264596,\n        \"price\": 4220,\n      },\n      {\n        \"amount\": 165447,\n        \"price\": 4198,\n      },\n      {\n        \"amount\": 323427,\n        \"price\": 4179.5,\n      },\n      {\n        \"amount\": 186983,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 447666,\n        \"price\": 4151,\n      },\n      {\n        \"amount\": 1300719,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 291068,\n        \"price\": 4131.5,\n      },\n      {\n        \"amount\": 329802,\n        \"price\": 4124,\n      },\n      {\n        \"amount\": 529678,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 96822,\n        \"price\": 4112.5,\n      },\n      {\n        \"amount\": 629578,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 138096,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 237533,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 362327,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 666982,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 454115,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 251489,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 191958,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 609328,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 87302,\n        \"price\": 4059.5,\n      },\n      {\n        \"amount\": 99912,\n        \"price\": 4051.5,\n      },\n      {\n        \"amount\": 495196,\n        \"price\": 4042,\n      },\n      {\n        \"amount\": 446509,\n        \"price\": 4030.5,\n      },\n      {\n        \"amount\": 640503,\n        \"price\": 4016.5,\n      },\n      {\n        \"amount\": 152343,\n        \"price\": 3999.5,\n      },\n      {\n        \"amount\": 17189,\n        \"price\": 3979.5,\n      },\n      {\n        \"amount\": 123461,\n        \"price\": 3955.5,\n      },\n      {\n        \"amount\": 104641,\n        \"price\": 3926.5,\n      },\n      {\n        \"amount\": 195214,\n        \"price\": 3892,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.635102Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.635102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 419740,\n        \"price\": 4020.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.642364Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.642364Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1788763,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 382824,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.642386Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.642386Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 160880,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.643932Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.633Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 25410,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.651701Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.642Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1956214,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.652994Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.652994Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 49800,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.670336Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.660Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 172029,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.672276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.672276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.683326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.683326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 560531,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.692907Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.692907Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 227992,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 633779,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.697235Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.697235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 489313,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 338780,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.703816Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.703816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 338614,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 71872,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.703839Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.703839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 242005,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 666482,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 228492,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.707010Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707010Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 665982,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 228992,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.708297Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.708297Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 228492,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 155460,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.710416Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.710416Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 338448,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 72038,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.710436Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.710436Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 362202,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 206565,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.713213Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.713213Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 1955964,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 338198,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 72288,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.715069Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.715069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 665482,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 228992,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.717201Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.717201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 715533,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 501143,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.717247Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.717247Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77740,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 45700,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.734233Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.724Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88560,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 25950,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.761364Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.751Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 99710,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.805314Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.795Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 64720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.808616Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64710,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 84720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.813811Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 119200,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4072.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.818203Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.809Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 48360,\n        \"price\": 4086.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.845911Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.822Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 68360,\n        \"price\": 4086.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.845973Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.832Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64470,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.845980Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.917930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.917930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.917967Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.917967Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 337948,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 665732,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.917973Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.917973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 313680,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.920667Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138680,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.933141Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12900,\n        \"price\": 4092,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.935508Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.925Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 952648,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.936807Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.936807Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 471310,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 71200,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.938635Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.927Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 941911,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.939340Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.939340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8880,\n        \"price\": 4097.25,\n      },\n      {\n        \"amount\": 64880,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.939430Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.929Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 235700,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.942403Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 200,\n        \"price\": 4092,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.942536Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.932Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 932419,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.944320Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.944320Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 933217,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.944354Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.944354Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 507687,\n        \"price\": 3975,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.944365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.944365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15190,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.947150Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.934Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 8182.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.948776Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.948776Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1410,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 132240,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.949771Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.939Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 655233,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 83434,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.950931Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.950931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 174200,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.952564Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.942Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1056719,\n        \"price\": 4041,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.953170Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.953170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 921910,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.955166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.955166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47200,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 73800,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.955674Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.946Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 913517,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.956738Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.956738Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.958120Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.949Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 901752,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.959137Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.959137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 108240,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 34760,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.962398Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.953Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 889887,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.962753Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.962753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389473,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3330177,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1788584,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 827111,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 340750,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.968571Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.968571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 878247,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.968599Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.968599Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10760,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 132240,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.968999Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4091.75,\n      },\n      {\n        \"amount\": 5350,\n        \"price\": 4077.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.970412Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112440,\n        \"price\": 4199.5,\n      },\n      {\n        \"amount\": 146232,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 20955,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 13119,\n        \"price\": 4193.5,\n      },\n      {\n        \"amount\": 21003,\n        \"price\": 4191.5,\n      },\n      {\n        \"amount\": 623833,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 558331,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 380624,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 246214,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 877647,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 177552,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 279968,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 570691,\n        \"price\": 3987,\n      },\n      {\n        \"amount\": 1650206,\n        \"price\": 3985,\n      },\n      {\n        \"amount\": 681591,\n        \"price\": 3983,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.973779Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.973779Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 100,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.973810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.973810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 13,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.975194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.975194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 14,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.976766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.976766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 112,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.978231Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.978231Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49800,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 101750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.980197Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.971Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 847788,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 380402,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 813376,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 960020,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 295506,\n        \"price\": 3957,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.984416Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.984416Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 421310,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.989054Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.980Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 382690,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.990558Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.981Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77750,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 73800,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.991273Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.982Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 332690,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.992839Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 282690,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.994263Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.985Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 252690,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.995556Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.986Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 108240,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 57500,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.996959Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.987Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1580,\n        \"price\": 4092,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.002244Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33500,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 25410,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.008797Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:05.999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 14260,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.018850Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 123,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.020562Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.020562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49800,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 276690,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.021704Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.012Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160180,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 277390,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.038996Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.028Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 628578,\n        \"price\": 4108,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 191458,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 586906,\n        \"price\": 4052,\n      },\n      {\n        \"amount\": 423964,\n        \"price\": 4032,\n      },\n      {\n        \"amount\": 462323,\n        \"price\": 4012,\n      },\n      {\n        \"amount\": 421273,\n        \"price\": 3992,\n      },\n      {\n        \"amount\": 389673,\n        \"price\": 3972,\n      },\n      {\n        \"amount\": 353826,\n        \"price\": 3952,\n      },\n      {\n        \"amount\": 581159,\n        \"price\": 3932,\n      },\n      {\n        \"amount\": 129487,\n        \"price\": 3912,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.046087Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.046087Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 446030,\n        \"price\": 4144.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.048713Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.048713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145061,\n        \"price\": 3998.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.050650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.050650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 246537,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.061697Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.061697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899390,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.065203Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.065203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24950,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 48200,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.065785Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.055Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.071267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.071267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.073803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.073803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48290,\n        \"price\": 4098.25,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.079782Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.068Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1380,\n        \"price\": 4092,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.081860Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.071Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 717533,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.083037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.083037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 74680,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.116725Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83200,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.119220Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 208710,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.120846Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 207010,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.124349Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12460,\n        \"price\": 4091.25,\n      },\n      {\n        \"amount\": 161740,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.131874Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.121Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 94010,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.134926Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.125Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 160880,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.136949Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 1380,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.147712Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.138Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10760,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 33500,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.179967Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.184270Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 91210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.189272Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 111210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.192548Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.182Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40040,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 22400,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.218703Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 48360,\n        \"price\": 4086.25,\n      },\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.218715Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 28360,\n        \"price\": 4086.25,\n      },\n      {\n        \"amount\": 49720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.241412Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20040,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 42400,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.241454Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.218Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 62400,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.241473Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.269230Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 187010,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 101100,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.277097Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.264Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1410,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 44330,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.277151Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75000,\n        \"price\": 4072.75,\n      },\n      {\n        \"amount\": 144200,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.279917Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.269Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76460,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.309193Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 255750,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.313013Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.303Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 181770,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 150440,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.325501Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.307Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9000,\n        \"price\": 4099.75,\n      },\n      {\n        \"amount\": 4740,\n        \"price\": 4097.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.325537Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20330,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 44000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.325551Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 14260,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.328409Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.318Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 119200,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4072.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.331250Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86440,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.342438Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.333Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20030,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 161740,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.347509Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12460,\n        \"price\": 4091.25,\n      },\n      {\n        \"amount\": 94010,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.350409Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10760,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 33500,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.379793Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.370Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75000,\n        \"price\": 4072.75,\n      },\n      {\n        \"amount\": 144200,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.381753Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.372Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12430,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.440031Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.429Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77760,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.456045Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.446Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 62760,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 136750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.542345Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.529Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42400,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 121100,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.545420Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76430,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.570695Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.559Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 255750,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.571841Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 181770,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 150410,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.575041Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 64800,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.581690Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.572Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101100,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 29460,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.594142Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.585Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47760,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 202010,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.596614Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.587Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22400,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 121100,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.609252Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 44330,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.615395Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 14260,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.633134Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.622Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10100,\n        \"price\": 4104,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.633262Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.623Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 119200,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4072.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.634165Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.625Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60,\n        \"price\": 4106.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.637531Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.626Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15370,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.637568Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.628Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54630,\n        \"price\": 4108.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.652305Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.641Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 151750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.662445Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.648Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2400,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 141100,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.676260Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20330,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 25410,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.728552Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86410,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.780451Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.770Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20030,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 161740,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.783469Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12430,\n        \"price\": 4091.25,\n      },\n      {\n        \"amount\": 94010,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.786401Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.777Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12440,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.813614Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47740,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.821133Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.811Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 720433,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.832608Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.832608Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 504043,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.832647Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.832647Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10760,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 33500,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.833934Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.825Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 506943,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.835785Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.835785Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75000,\n        \"price\": 4072.75,\n      },\n      {\n        \"amount\": 144200,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.836593Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 111210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.839250Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 785953,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.841476Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.841476Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 267390,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.842727Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.832Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1500993,\n        \"price\": 4070,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.843266Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.843266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.845316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.845316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64700,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.846453Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.835Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 131210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.850153Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100,\n        \"price\": 7364,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.860045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.860045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 174180,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.864182Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.841Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 257390,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 35000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.865124Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.855Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1410,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 44330,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.866232Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4091.75,\n      },\n      {\n        \"amount\": 1380,\n        \"price\": 4092,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.867811Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.858Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 527279,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.868924Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.868924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102295,\n        \"price\": 1000,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.870566Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.870566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20030,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 138680,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.871397Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 79880,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.872273Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.863Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 358202,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.873454Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.873454Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 94880,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.874845Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121100,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 28880,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.876576Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.866Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525843,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.877530Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.877530Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101100,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 48880,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.878577Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.869Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 247390,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 170880,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.880234Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.870Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 187010,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 109880,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.883185Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.873Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1083180,\n        \"price\": 4035.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.883738Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.883738Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81100,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 21400,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.885724Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 14260,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.888350Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.878Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874899,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.889701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.889701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 119200,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4072.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.891658Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.881Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.894832Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.894832Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 358074,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.908044Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.908044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899390,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.914922Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.914922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49800,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 15040,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.916062Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.906Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9460,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 22400,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.918720Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.909Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 160527,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.925585Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.925585Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.925626Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.925626Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41880,\n        \"price\": 4097.25,\n      },\n      {\n        \"amount\": 28400,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.926080Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.916Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 185880,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.928569Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.919Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 785963,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.930200Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.930200Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.938102Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.938102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4136.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.938295Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.927Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 247040,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 20350,\n        \"price\": 4107.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.940126Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.929Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4112.5,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4112.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.941060Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.952680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.952680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 223040,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 71740,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.967657Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 273040,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.969623Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 323040,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.970337Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.960Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 353040,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.971646Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.962Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403040,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.973422Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.964Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20330,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132240,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.975037Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4092,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.976229Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.967Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 130790,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.977312Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 441660,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.979971Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.969Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 442010,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.987454Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2640,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.001904Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4110.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.004764Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4072.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.007779Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:06.997Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100000,\n        \"price\": 4112.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.009936Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47740,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 72200,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.014802Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 108240,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 154790,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.017359Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.037301Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.037301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24000,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.048073Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.036Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 535741,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.052365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.052365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16248,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.060053Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.060053Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 864880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 26248,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.061363Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.061363Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.062748Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.062748Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 348956,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 827611,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.064854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.064854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 854880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 76249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.066563Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.066563Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 853880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.068601Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.068601Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 86249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.071031Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.071031Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 38260,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.073319Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.059Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.073331Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 848880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 91249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.074570Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.074570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 262000,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.076430Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.066Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.077611Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.077611Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59402,\n        \"price\": 3783,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.080759Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.080759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.080788Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.080788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 340756,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.080794Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.080794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 31260,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 36870,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.081015Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 49800,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.083430Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.084163Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.084163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29220,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.085342Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.075Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 838880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.086720Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.086720Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 828880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 121249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.086742Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.086742Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 25000,\n        \"price\": 4072.75,\n      },\n      {\n        \"amount\": 76640,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.087171Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 25720,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 8500,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.088720Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.079Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 818880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 131249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.089725Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.089725Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 38910,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.092183Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48200,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 73800,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.092197Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.083Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5000,\n        \"price\": 4077.25,\n      },\n      {\n        \"amount\": 10070,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.093562Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 808880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.094743Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.094743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.097575Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.097575Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1720,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 151540,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.100396Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.091Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 798880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 191249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.107818Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.107818Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.107828Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.107828Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 796880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.107865Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.107865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49800,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 466010,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.111801Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.101Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12010,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.116226Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.105Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 127540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 25410,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.118281Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.122828Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 254749,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.123714Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.123714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 31910,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 15500,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.127294Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.117Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1640,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4071.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.129926Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.120Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 264749,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.130323Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.130323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 289259,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.133349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.133349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 340369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.135175Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.135175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12000,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 35410,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.140214Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4072.75,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4071.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.140401Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.130Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 299259,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.141144Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.141144Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 309259,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.145148Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.145148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1410,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 44330,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.146610Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 786880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.151397Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.151397Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 336756,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 341948,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.153171Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.153171Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 418381,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.156070Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.156070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.159849Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.159849Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.164864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.164864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.166034Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.166034Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6400,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.168732Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.168732Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 74680,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.172610Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.173760Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.173760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12440,\n        \"price\": 4091.25,\n      },\n      {\n        \"amount\": 161740,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.174918Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2300,\n        \"price\": 4070,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.176517Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23200,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 9600,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.177036Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.177036Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20330,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 25410,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.178608Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 240214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.178634Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.178634Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4067.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.180030Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.180751Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.180751Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 94010,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.181010Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.171Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 200,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.182922Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 621537,\n        \"price\": 4028,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.185863Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.185863Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 771870,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.187273Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.187273Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 31910,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 33500,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.187762Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.178Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 240114,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.189185Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.189185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75000,\n        \"price\": 4071.75,\n      },\n      {\n        \"amount\": 144200,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.189358Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23300,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 418481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 340469,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.191242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.191242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 771760,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 23410,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.194676Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.194676Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12450,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.196697Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.182Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47770,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.197597Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 337414,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.198085Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.198085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76450,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.200314Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 255750,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.203439Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24410,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 155527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 341468,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.205477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.205477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 25710,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.205482Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.205482Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 181770,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 150430,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.207207Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 28110,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.209724Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.209724Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.209758Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.209758Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29110,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 342467,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.212111Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.212111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4404,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.217093Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.217093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239114,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.217661Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.217661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13710,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.226914Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27820,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.231161Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 79007,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 879440,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.233518Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.233518Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 337056,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.235119Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.235119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 341056,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 333414,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.235142Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.235142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 31320,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.237808Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 161788,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 962222,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.241930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.241930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 261556,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 181472,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 242155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 161688,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.245753Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.245753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 204427,\n        \"price\": 4050.5,\n      },\n      {\n        \"amount\": 1844012,\n        \"price\": 4050,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.245792Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.245792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 260555,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 180471,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 241155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 160688,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.248675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.248675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181039,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 982574,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.251123Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.251123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 59800,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.251706Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.239Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21880,\n        \"price\": 4097.25,\n      },\n      {\n        \"amount\": 42400,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.251757Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.241Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202429,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.253310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.253310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 162000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.260150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.260150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 292480,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1072626,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.260195Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.260195Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1410,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 44330,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.260407Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.260857Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.260857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.262952Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.262952Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.264833Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.249Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 294880,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.266693Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.266693Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 373709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1151456,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.269876Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.269876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.271167Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.271167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 259554,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 372709,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.273443Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.273443Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 407649,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1195193,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.274791Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.274791Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 429042,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.278238Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.278238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 514162,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.280092Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.280092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 535557,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.281103Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.281103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625624,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1285261,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.283642Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.283642Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175880,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 57770,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.285834Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 647016,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.287237Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.287237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 219330,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.287270Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 162110,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.289045Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 730814,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1375325,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.289594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.289594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21400,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 28880,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.291287Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 752205,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.293851Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.293851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 755205,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.293872Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.293872Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776599,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.295287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.295287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1400,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 62400,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.296191Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.285Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 5350,\n        \"price\": 4077.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.296788Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 54800,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.300155Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138250,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.300733Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.291Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4112.25,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4112.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.302093Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 866670,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1465397,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.302348Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.302348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44330,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.303209Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.294Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20330,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 44000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.304329Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 956745,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1555473,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.306544Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.306544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.307281Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 958045,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.308778Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.308778Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 54000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.314098Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21602,\n        \"price\": 4317,\n      },\n      {\n        \"amount\": 26112,\n        \"price\": 4278.5,\n      },\n      {\n        \"amount\": 32059,\n        \"price\": 4246.5,\n      },\n      {\n        \"amount\": 44355,\n        \"price\": 4219.5,\n      },\n      {\n        \"amount\": 150281,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 293634,\n        \"price\": 4179,\n      },\n      {\n        \"amount\": 93164,\n        \"price\": 4163.5,\n      },\n      {\n        \"amount\": 104354,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 308257,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 266690,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 590036,\n        \"price\": 4123.5,\n      },\n      {\n        \"amount\": 1091905,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 380676,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 511197,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 250452,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 180279,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 206680,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 229147,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 527490,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 536030,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 234062,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 432816,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 124718,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 236748,\n        \"price\": 4051,\n      },\n      {\n        \"amount\": 168529,\n        \"price\": 4041.5,\n      },\n      {\n        \"amount\": 2150400,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 406294,\n        \"price\": 4016,\n      },\n      {\n        \"amount\": 1314229,\n        \"price\": 3999,\n      },\n      {\n        \"amount\": 325168,\n        \"price\": 3979,\n      },\n      {\n        \"amount\": 1354715,\n        \"price\": 3955,\n      },\n      {\n        \"amount\": 234903,\n        \"price\": 3926,\n      },\n      {\n        \"amount\": 21183,\n        \"price\": 3891.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.318174Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.318174Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 960445,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.319588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.319588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1021617,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1616646,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.322737Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.322737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 1021683,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.323146Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.323146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1038817,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1633781,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.326766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.326766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.328063Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.328063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1041817,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.329782Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.329782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1044066,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1712647,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.335045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.335045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1400,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.335193Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 347056,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.336780Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.336780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59100,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 10700,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.339594Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.327Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 158610,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.343287Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82500,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 122450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.345065Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1009126,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1747587,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.346950Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.346950Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 195330,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.347152Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 119200,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4071.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.348384Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 181070,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.349564Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1099213,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1837675,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.350550Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.350550Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.352690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.352690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175180,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 466710,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.353489Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.342Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 710,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.355936Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.346Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1015415,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1921473,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.356697Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.356697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1032469,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1938528,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.360590Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.360590Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1034236,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.362003Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.362003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1094657,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2028536,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.368146Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.368146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6590,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.374229Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.364Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2040,\n        \"price\": 4105.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.378834Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48100,\n        \"price\": 4108,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.381199Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.370Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.384419Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.373Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 109200,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 12640,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.390367Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.379Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 181780,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.392033Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.382Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 550,\n        \"price\": 4077.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.400053Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.388Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1015871,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2107322,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.401415Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 965974,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2157219,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.401420Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401420Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770835,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.401424Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401424Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 875942,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2247251,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.401428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 341056,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.401441Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401441Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 873650,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2249543,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.401463Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401463Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 235000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 17100,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.408039Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.397Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 649350,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 2371028,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.409814Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.409814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107240,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.409866Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54100,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 2420,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.413323Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.403Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33870,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 159310,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.414790Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.405Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.416801Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.407Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 890748,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2388127,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.417011Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.417011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4083.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.419335Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.409Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 442710,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 34700,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.420272Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.411Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 24000,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.422188Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 800692,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2478183,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.425015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.425015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 816959,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.430268Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.430268Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 649516,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.431517Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.431517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47200,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 58770,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.432393Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 634279,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 154960,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.433038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.433038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 87560,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 25950,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.433831Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.424Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72538,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 665482,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.434386Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.434386Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.436499Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.425Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 109180,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 88260,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.437508Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.427Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75000,\n        \"price\": 4071.75,\n      },\n      {\n        \"amount\": 134200,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.439189Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.429Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12300,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 5700,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.441821Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.431Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 834081,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2495306,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.447147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.447147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 773610,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2555777,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.459805Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.459805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.465811Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.465811Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10700,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 83100,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.470149Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.458Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 342767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.477112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.477112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432710,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 20700,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.481693Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.464Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 790756,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2572924,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.483620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.483620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42400,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 101100,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.494271Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 31000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.494330Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.471Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58190,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.494958Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.484Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10700,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 93100,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.497217Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.486Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8880,\n        \"price\": 4097.25,\n      },\n      {\n        \"amount\": 62400,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.501706Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.490Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 34500,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.503768Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.493Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 69100,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 71200,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.504380Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.495Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24360,\n        \"price\": 4086.25,\n      },\n      {\n        \"amount\": 13720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.509164Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 807826,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2589995,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.516532Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.516532Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10500,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 31000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.516775Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.504Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 809126,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.517841Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.517841Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.520972Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.520972Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47200,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 82770,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.521357Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3550,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 5360,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.521407Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 31500,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.527174Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.510Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3500,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 38500,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.533553Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.520Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42660,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.533612Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.522Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4071.75,\n      },\n      {\n        \"amount\": 76600,\n        \"price\": 4072.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.533629Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.523Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 826220,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2607090,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.534626Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.534626Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 843338,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2624209,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.561155Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.561155Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 860412,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2641284,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.573037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.573037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 137082,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 325318,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.573077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.573077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 31500,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.579205Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4072.25,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4072.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.582569Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.572Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94180,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 57660,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.590848Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.581Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42400,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 33710,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.593587Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.584Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 33720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.608160Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.598Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 861712,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.608915Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.608915Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 878854,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2658427,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.608961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.608961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59100,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 92770,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.609664Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 880154,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.611349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.611349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 79180,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 72660,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.613128Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.603Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.615651Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.615651Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63640,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.618663Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 897220,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2675494,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.621239Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.621239Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22400,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 35040,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.625731Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 372420,\n        \"price\": 4141,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.626045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.626045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 910720,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.630080Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.630080Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 927810,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2692585,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.638393Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.638393Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 112540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 64990,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.639232Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.628Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20040,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 107770,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.641090Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81100,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 109040,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.656161Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.644Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 927318,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2709700,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.664428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.664428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 910179,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2726839,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.686463Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.686463Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 220000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 127540,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.692262Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 53720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.692346Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.674Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 740,\n        \"price\": 4097.75,\n      },\n      {\n        \"amount\": 71600,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.692368Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.677Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64180,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 87660,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.692374Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 911479,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.694131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.694131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2400,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 40040,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.697347Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.683Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 894416,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2743902,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.706174Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.706174Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138020,\n        \"price\": 4091.25,\n      },\n      {\n        \"amount\": 5630,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.722338Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.712Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 107730,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.730008Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83730,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 87640,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.742270Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 877329,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2760989,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.763274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.763274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 860218,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2778100,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.766525Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.766525Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 861518,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.775092Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.775092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3500,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4092,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.775836Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.765Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 844383,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2795235,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.788098Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.788098Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 175880,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.802851Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.793Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 827324,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2812294,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.804236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.804236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5140,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 4075.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.819214Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.809Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 834158,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2819128,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.819826Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.819826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 817075,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2836211,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.829560Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.829560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.832160Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.817Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 818375,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.838623Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.838623Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7500,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 31000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.845517Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.836Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 801268,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2853318,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.853607Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.853607Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 49720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 24000,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.873563Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.863Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 784137,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2870449,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.876736Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.876736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 818341,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2904653,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.879067Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.879067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 14500,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.891036Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.878Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 76600,\n        \"price\": 4072.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.891112Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.880Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 194470,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.894549Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.884Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 801286,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2921708,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.899895Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.899895Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63640,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 107730,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.918263Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.904Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8600,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.918412Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.908Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67600,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 12880,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.919279Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.910Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 350,\n        \"price\": 4077.25,\n      },\n      {\n        \"amount\": 15620,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.922027Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.913Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83730,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 111660,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.923254Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.914Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 27500,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.925080Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.916Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 950968,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.927823Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.927823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 65850,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.929787Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.920Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7500,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 34500,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.931666Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4072.25,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4071.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.934701Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 112540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 17420,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.940382Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 109900,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.943174Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 784207,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2938787,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.944459Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.944459Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 785507,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.944490Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.944490Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 111210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.945729Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.935Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 73730,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 185880,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.950239Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.939Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96660,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 88730,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.953034Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.943Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20040,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 84180,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.958159Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.946Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4110.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.962825Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.949Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 768840,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.971571Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.971571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4074.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.977428Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.966Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77000,\n        \"price\": 4112.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.981529Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.970Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.997288Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.997288Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78730,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 442710,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.997829Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.988Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53640,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 195880,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.999627Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 97540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 32420,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.002013Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 131210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.004733Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81660,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.007691Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:07.998Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 104180,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.010333Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66660,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 93730,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.011809Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.002Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 11100,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4141,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.013364Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.004Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50850,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22500,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.015515Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13710,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 124180,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.017259Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 452710,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.019200Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78730,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.022259Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.012Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 89900,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 20040,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.025026Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.032796Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.022Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4069.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.049653Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4067.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.061524Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770140,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.071846Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:08.071846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 74020,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.073741Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 25900,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.073768Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.064Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 290780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.082236Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.066Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20040,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 178840,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.082278Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.068Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4091.25,\n      },\n      {\n        \"amount\": 94020,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.088320Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 158020,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.106551Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.091Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10500,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 155210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.124141Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.095Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 17100,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 161740,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.125127Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.097Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42660,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 106500,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.125634Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8880,\n        \"price\": 4097.25,\n      },\n      {\n        \"amount\": 5400,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.128293Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 33720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.129860Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.120Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 508457,\n        \"price\": 3975,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.141428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:08.141428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5430,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.153178Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 270,\n        \"price\": 4091.75,\n      },\n      {\n        \"amount\": 5210,\n        \"price\": 4092,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.183192Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78720,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.188971Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.179Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7500,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 122240,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.226446Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 17420,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 45000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.247196Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 53720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.250553Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185880,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 462710,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.266197Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48640,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 83720,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.277299Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.268Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4075.25,\n      },\n      {\n        \"amount\": 6940,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.282654Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 135210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.289835Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.278Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82500,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 112260,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.294025Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175880,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 472710,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.326243Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2420,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.330493Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.318Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 115210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 49720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.331070Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2300,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.366163Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 43140,\n        \"price\": 4081.25,\n      },\n      {\n        \"amount\": 32650,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.470403Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.461Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81200,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.481187Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.471Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88260,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 49900,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.505124Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.490Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 24000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.505134Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.493Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 109200,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 83800,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.545674Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 50800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.550167Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 92450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 55950,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.551568Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.542Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 8612,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8d5b9e20-3f2a-a962-d586-b7992a6cb633\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"286e5cec-357a-e7ce-d1cc-1352e04882ce\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"413e9e01-544e-4cfe-5983-150e53771026\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"032082a4-b6f3-caae-aaf5-a6ad0f84affb\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"29a2bb0c-1507-adf6-1a21-23841276816d\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b7da73c4-9d83-f080-224b-4151c6ea652c\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3338,\n    \"exchange\": \"bitmex\",\n    \"id\": \"82964333-1bd5-86cf-c623-e09a688cf0fa\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 92,\n    \"exchange\": \"bitmex\",\n    \"id\": \"535acd43-8012-a3ac-cfe0-1aa5c4df0cb9\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fec20e03-d5a0-2189-1eb6-42d08c496cd8\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 29,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c575c6f9-c3bf-4b4c-485f-a9072bab5b5f\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9b59a550-7391-7719-8cfe-4d8fb2fbf224\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"89991898-f1b5-aff6-7beb-92f3686a0992\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2df1177f-49c9-d062-0d1f-01cf597926af\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"574a5bab-8426-20db-ab35-c94004920d1e\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1123,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fdc7e1c7-2ad5-3c9c-0d50-5c459cccde8a\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 123,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bcae2efc-f23a-339d-9ec7-2cb890a5b9a2\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d353c535-6911-9839-d63d-ad3da8db72bc\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7ba58c8d-c494-b938-b342-baa3ccf249e7\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"11ba4c49-ff0d-a452-cb4c-9d4e488503bd\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 14000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"976b9362-cb0d-ea88-fdee-95ffd9e058f1\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"73db440d-b143-0939-96c9-2d7c7715a15e\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8e7615a6-45e6-fe23-1ff4-de00ee025c4f\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1315,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6d41394d-de40-25e9-580b-bc9b51ada023\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c86f82e0-17c7-9035-e39f-b5769e3f749e\",\n    \"localTimestamp\": 2019-04-01T00:00:08.977938Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.859Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1238,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e4fba7b7-9327-2f64-1fd5-e0ee8e1e6332\",\n    \"localTimestamp\": 2019-04-01T00:00:08.998921Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.987Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 94020,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.003237Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.561Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12660,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 122450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.003744Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.564Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 178840,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.004104Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.565Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 111210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.004230Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 104180,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 22300,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.004598Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.572Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 131210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.005408Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 84180,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 42300,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.006212Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.579Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58800,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 134200,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.006397Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.587Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64180,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 62300,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.007274Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.591Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 200,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.007963Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.602Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48300,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.008009Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.612Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 101200,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.008664Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.613Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 62580,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.008686Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.615Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60700,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.008694Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66000,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.009858Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.619Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83760,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.009989Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.621Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15370,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.010015Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.630Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78760,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 35000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.010023Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 82190,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.018108Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.693Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24300,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 36660,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.018224Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.707Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58190,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 183310,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.018234Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.712Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 49990,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.018608Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6890,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.018688Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21860,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.018722Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 181810,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.023754Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.755Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 289280,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.024182Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.758Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.025161Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 93310,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.025232Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7380,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.025818Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.773Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 740,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.026203Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.777Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10,\n        \"price\": 4066.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.026837Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3070,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.026845Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.786Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175180,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 473410,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.028114Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.790Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77760,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 36000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.028343Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 49340,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.028863Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.795Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4045.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.028871Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.797Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100500,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 88960,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.028951Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90,\n        \"price\": 4131.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.029135Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.800Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41300,\n        \"price\": 4100.25,\n      },\n      {\n        \"amount\": 6400,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.029627Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4026.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.029663Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4300,\n        \"price\": 4100.75,\n      },\n      {\n        \"amount\": 1660,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.030146Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4151,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.030194Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.806Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 178140,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.030742Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.808Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20860,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 179140,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.034148Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46690,\n        \"price\": 4098.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.034782Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.882Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13590,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.035409Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.884Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10700,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.035414Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.886Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2700,\n        \"price\": 4100.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.035419Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.888Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1720,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 220700,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.035632Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.893Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 8660,\n        \"price\": 4092.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.036365Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.895Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 59190,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.036495Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.897Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1440,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.036553Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.900Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 184470,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 230700,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.037039Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.903Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4097.75,\n      },\n      {\n        \"amount\": 9300,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.037339Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.905Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 220700,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 59990,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.037354Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.908Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 45000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 137240,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.037612Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.910Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40700,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 44300,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.038236Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.914Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 122240,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.038264Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3200,\n        \"price\": 4180.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.038818Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80500,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 108960,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.038843Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10860,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 107540,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.039849Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.941Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20700,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 64300,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.040230Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.956Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 860,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 230700,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.040409Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 137240,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.041138Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.966Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 700,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 84300,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.041205Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.970Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 31000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 180180,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.041686Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.982Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 210,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.042148Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:08.985Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157310,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.044313Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.013Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 17400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 161740,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.045084Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.018Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 61650,\n        \"price\": 4080.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.045176Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.023Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 66660,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.071182Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.058Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1680,\n        \"price\": 4073.75,\n      },\n      {\n        \"amount\": 2820,\n        \"price\": 4075.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.108450Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.094Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 25950,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 121750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.121506Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42180,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.168798Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.157Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 8710,\n        \"price\": 4092.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.205696Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 410,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.214169Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.205Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40040,\n        \"price\": 4102.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.255227Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.257133Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.247Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4077.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.270794Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 25500,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.302609Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474910,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.305608Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 476410,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.319197Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.308Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 290780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.323575Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.311Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3800,\n        \"price\": 4064.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.328230Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4500,\n        \"price\": 4108.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.344697Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4500,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.347173Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.332Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16520,\n        \"price\": 4129,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.349426Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16300,\n        \"price\": 4025,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.349937Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5500,\n        \"price\": 4148,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.350344Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42660,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 145750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.356344Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.345Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157810,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 83190,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.356399Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.347Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 461410,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 195180,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.372219Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.360Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 292380,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.402471Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.377Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46190,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 16430,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.440265Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.430Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 246,\n    \"exchange\": \"bitmex\",\n    \"id\": \"05b14b74-a4be-c529-de9b-6733bc9dcf1c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.469130Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.653Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 85900,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.484289Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.473Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47790,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.500166Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.487Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2300,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.501807Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.491Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 1220,\n        \"price\": 4075.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.539966Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27020,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.563676Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.547Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 30520,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.579374Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.568Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1437,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f7fc7d98-2f9d-7168-2a3e-5ebc4c14785d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 24,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d3307a40-83f9-c446-58d8-c36a07f0e6a1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9b278f03-5d04-fb40-f1d5-f5d882c224f1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"628f26a2-0cd0-9d69-2173-ddfc74393842\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dfcb9c37-77bf-57b4-2e97-0d07f606109a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 25000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"669a8a34-c925-8283-38ef-f52de01bacf3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 98,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b43778cb-e8a7-ac7d-ccf7-53bedd65ef06\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1f8764b3-aacf-edd7-3c86-6645c993a450\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ae496a7a-f7c2-f702-6c8b-5d6c4c4fd1c3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0bb6d91d-37fb-77bc-2fbd-a54daf3dfd12\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a6549245-d1e8-98b3-8ffe-9650a1e6d5d2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 44,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3a5ed276-788d-1053-611f-97542b7bcad0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0e489172-347a-4003-0a7c-e195b0a01e0b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1179dac3-72a7-affa-e0a0-41b0fdb31268\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3f99cf32-1f4f-9c81-c75d-a505ebcdca69\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3667,\n    \"exchange\": \"bitmex\",\n    \"id\": \"31b50907-de3d-5e2e-243b-86e83e641dd9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9e570fe0-e8b0-a0d0-90d0-041096bd5447\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"287c7d8a-92f0-8145-b93b-0860e3817d0a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"57b971d3-dcd8-434f-a71f-c1a9c0c9df5c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40001,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b19439e7-b914-c41a-a738-d3bce163a431\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 61,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dfcbc806-1ecb-0964-5ee5-841b299992c1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cf516794-c154-703b-c858-a7b4c785062a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 900,\n    \"exchange\": \"bitmex\",\n    \"id\": \"92505e02-5e3e-43f0-8147-d03c71afd878\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 18,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f3cce632-1fae-8184-fa1b-9f05f349f608\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 48,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9f951210-ff4f-70bc-c8e2-005378a44c75\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c973fe0a-fc51-59a4-8da6-b47e94b08994\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2750,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fed3aa43-dfe3-84b4-e969-4f70660d3be6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30001,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f7308ddd-deda-b4b0-d226-ce36bdc92cbe\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b9c3f6de-38f7-2c3e-41c7-d2bd364e341e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9a6b680e-9bd1-b279-fdff-2212a16698d4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9f5e92bc-e027-ceef-fdcf-dda50338ebde\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"108cf3fb-6234-6a84-1851-9a7de3f5dc6e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"35ff167f-1882-8fbe-987d-57e03bf32d5f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ee4602d8-2e81-82ee-db05-2b6debd92e7d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0b5d7375-4a51-c822-aebc-4906b3a090b7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c25d9b4d-c384-1f6c-b0e8-7ef476fbab64\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c8180e04-91b3-88c2-1eca-114cb18eb530\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d33426f5-215b-0f08-d28e-7148a726e54a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 70,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6ae5cab0-bdb7-194d-1258-fb1217a47124\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"60a90e8d-115b-4ccf-d549-bd15936975af\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 75,\n    \"exchange\": \"bitmex\",\n    \"id\": \"374440d3-2f78-3908-6c7b-8ce6c23a0f54\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"868a346c-03fe-bfd0-fb58-604b34b62160\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b0400e28-0b89-f883-34e7-50b7e39d417a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"70a8111c-5d6e-f057-5319-452140bae8a6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 192,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f4baec07-6757-f35d-89ad-233dd1c85af8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f916669f-f87a-ee4c-cf43-89c776ec9612\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7f3b1570-a292-19d3-f72e-7ae4765f1ecd\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c6253082-180c-65d9-e061-dd4352d947a0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"817067d3-00aa-a8ff-e63e-28d391ba9fab\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9604544b-1ea6-4486-a21e-627c400cef6f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 25,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6a5c319f-7de0-3d1a-716e-d26cf8a6efd0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d51b695f-6c1e-eda7-6511-0766eb159927\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"37204f87-3521-bd05-69e7-d9f6ee0f3d52\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 25,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ef4d4496-10b9-4810-674a-4c82049d5b3a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 23,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af3dd368-d04b-76cf-f1a1-87b22296669e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1a638bbc-5c3d-5dde-f86f-80ee5adeef4f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e03691bf-12a3-904f-b2f0-200e691002f8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 31,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ec18c9e0-4256-57ce-7807-7c10313d42f7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 31,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5d875e93-decb-08dd-8d8e-697b0e52c02a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"879f5ece-b9da-ab9c-a01b-8ce6139ecca7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"869fb914-4aa9-89ee-f04e-e1f17f79d74b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 750,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5ec7a193-be22-d147-2206-00582b408340\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1fd15f57-4fe5-5b6a-1f7c-9c00ab82fb3b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"87b94bca-1308-984a-e5ea-758ac70711c4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b4181349-63f2-6517-b8d7-a69112fc482a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dfecb129-eb44-73c1-7f0c-af1f9eb4e7db\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 39,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cea89e33-fb45-da87-cdae-887548c16a01\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8246c776-b6c9-6ba8-3de0-e38676f81c62\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"76269349-1e8d-a314-f057-5c50c24160c1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c7b0b47d-3fba-e93b-3d9e-7ae93754d584\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a68611cf-018f-e7c8-4b1b-8dcbb730293e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af4aa401-113e-550f-d31f-ca1afcb480a5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 60000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7d7f9cf0-c536-57cd-941e-69b04b15e6de\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d631d92f-b91c-be2d-809d-ecbde33f99bf\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 160,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3234e310-2c0d-3009-1634-37ce7e4ebd89\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ae09d842-efaf-4b38-5857-786cd28bf91c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9d35512f-77d5-9108-e94d-2a2e71490f94\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b6ee3144-0b71-9edb-0097-451a0c4f3012\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"39258284-864d-9483-19e8-73821a73647b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"df539a25-4d4f-c551-19ed-036f97035b66\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 45,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4faaf269-acd3-ffcd-865c-5a2903c81e0a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 33,\n    \"exchange\": \"bitmex\",\n    \"id\": \"596ca21d-bf68-274d-7213-b6a5655c2b83\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 750,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e7821d5a-902b-e38f-f420-f0e637109a09\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 255,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3d247012-8405-5b95-34db-b97cc3b9218c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 192,\n    \"exchange\": \"bitmex\",\n    \"id\": \"249be44f-4586-9053-2cfe-2173a09aacf7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 48,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cf577d96-2835-fb94-9ea4-d79ff9b339d3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 14,\n    \"exchange\": \"bitmex\",\n    \"id\": \"06818b0c-4e27-2acc-d0bf-4d64cbdbc0e6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1e6654dd-be59-9e89-6c1b-a8ce66328990\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 244,\n    \"exchange\": \"bitmex\",\n    \"id\": \"68abc4cc-570e-ec8d-4474-4e6930f10d61\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 135,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ee9ebc59-9e00-dbc4-0791-71205b3c654d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 45,\n    \"exchange\": \"bitmex\",\n    \"id\": \"45e6baa0-23e4-f2b7-2e1c-ecec09a18f54\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 45,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8dd04da4-4ae6-48e3-676c-361570495c93\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c6b0b33c-0b76-8be8-fd15-40b37c2d6d08\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ca24d329-9ec7-4cdc-7a9f-c332f36840fe\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 450,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bd69e264-e3d5-1e10-fa05-37b5df74a64c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 205,\n    \"exchange\": \"bitmex\",\n    \"id\": \"54814f36-5982-a4e1-5535-e6ea5d0c9e37\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b6595034-45d0-3094-330c-32e524fb1975\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 13,\n    \"exchange\": \"bitmex\",\n    \"id\": \"99568b98-ca2a-1103-e9b2-062890aa31cc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 102,\n    \"exchange\": \"bitmex\",\n    \"id\": \"23deac66-c82b-bb4f-839b-9e1df676c832\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"969bbd64-8cc3-2abe-7b8e-0dd8255e9a58\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 63,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b2b00a71-7bfd-152f-f708-615fcf9c58c9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 32,\n    \"exchange\": \"bitmex\",\n    \"id\": \"269de54a-f1aa-81f9-797c-2810c32a27ad\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1350,\n    \"exchange\": \"bitmex\",\n    \"id\": \"20d11cfe-be25-285b-d0f8-c0725dab2c44\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 18,\n    \"exchange\": \"bitmex\",\n    \"id\": \"663fc7f6-f1e2-134e-b9e2-004124ae0bd5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12,\n    \"exchange\": \"bitmex\",\n    \"id\": \"85812db6-6407-a280-d3ca-3649f715b6af\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e59ef29a-984b-6010-245b-c80e03684599\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 75,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f86ba3b5-11aa-5086-f7e8-467de5857a0d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 32,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8cb5b56d-8628-d7d6-bd7f-114c31a42a3c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 314,\n    \"exchange\": \"bitmex\",\n    \"id\": \"65d82378-a86a-4b18-ef7f-886afb717c3f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9363f405-3e6f-e4d4-b9d2-df945d8e8ef7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f02438bd-1a52-9da7-45ce-227a1c6a7f96\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 31,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6709fc6e-5537-419a-258b-4413c2a8e87d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 31,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d7ee062f-899b-7cf0-6952-627d88a1da14\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"22c12574-fdd2-f07e-1b52-f4516344af24\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7d8702aa-d897-83ef-b6a8-a14c94a62585\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 750,\n    \"exchange\": \"bitmex\",\n    \"id\": \"96b46797-a0a0-5a54-9923-528eee2137af\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"27b8d71d-813f-0690-e450-4b83b1b0015b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"87b3792d-b734-f7e9-7fb4-f5ff2a30774f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b3ba3218-2a57-5639-67ec-ecf12022231a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eeaad3f0-bf87-4985-a2d4-ca42e8e30a50\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 169,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e6e2c799-780a-c52f-d253-8cbe80a05e02\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"053f0b44-a53b-d919-dfd2-63d011f02f37\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3ae5d487-0fc0-1515-a55d-3cc250968076\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b8f21108-c852-d221-2ad1-af03dcefdb05\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 205,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3256e798-81dd-0caa-fc95-2cd59603f88e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"124cf89b-9cb2-5ec9-a48d-89cf4e4cc8a0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"47531ae7-2585-5cc4-6fd0-19cc41a10535\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8f632f02-fa62-3073-7865-eb3fafa05da8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8e2c3382-82ec-e475-dc80-f6e3b5ad6622\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f4e96efc-f503-857c-d27a-f270b6ce80b9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 7000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9b7e3655-362b-cabb-a667-ebd5bed35157\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d73be5d8-58b7-2ef7-ef6b-37bc0b47fead\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 160,\n    \"exchange\": \"bitmex\",\n    \"id\": \"15535aa7-13c8-10a6-c1ce-f77a4399fcbc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b96fb988-e8a9-7c8e-2fa7-fc7d5a47bcbc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0b162d70-09f9-ecbc-dd4e-137c76575dfe\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"89ae22ea-d518-6eb7-8030-31a0d22e92ab\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f21a3fd9-7ca4-9feb-2656-c38e0d7de5c2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b9b97510-28c2-eefd-82cf-e60ff3999474\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 14,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eec6ac19-a868-4f89-23db-e2cfae2926b1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"90d6da7d-7278-58a2-8e0a-165d75419ae9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7675aca4-da0a-52ce-6320-861ceb335987\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"558498a3-d2a6-b1e5-f8b1-e121519bdbf6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 24,\n    \"exchange\": \"bitmex\",\n    \"id\": \"31e0ef82-f89f-47af-130b-fb1de0d3d3de\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 154,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0a797425-51c9-461a-8e30-d73bab37018a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1272,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c6342a4c-2ab1-132b-9ee7-c28508c6de14\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1d5282ba-74cd-17ab-cd02-a4857e26c770\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 464,\n    \"exchange\": \"bitmex\",\n    \"id\": \"257c027d-22f4-70a5-b8b8-74218d4ce755\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ccac9e3e-c6dc-43bf-5551-cd4533e5f95c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"46a88159-d3f8-5b7a-27a2-d091879a5513\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b9601e10-41fa-3687-e014-3ddebc0a4ac3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 225,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7cc8b736-b291-39cf-b06a-3e2d049f53e3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 230,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8de69006-bcc5-4c31-1272-e0fbefc7ae6a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"04f4732f-2990-5962-d585-45812838c70c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"42a18b76-0c80-38d6-0a78-d69f4b629d67\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 808,\n    \"exchange\": \"bitmex\",\n    \"id\": \"685a8f29-7fcb-1ab6-846a-1b682499cc49\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"81d0663f-5f98-778a-f4d0-92de192efdb7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 320,\n    \"exchange\": \"bitmex\",\n    \"id\": \"34775244-e984-6c8d-8d5f-d6e7918e8cc6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8e4d33b2-8837-eb36-cd9f-e91a500d8c38\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e4349a00-e8e2-10ff-0667-e69d321437b3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ec17a1ca-4c07-2111-5216-d708a167d999\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 334,\n    \"exchange\": \"bitmex\",\n    \"id\": \"716efd2e-c685-8eec-3510-bf004eb3c843\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 328,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d360744d-2f25-d02a-4893-01bbb6c08f5b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 588,\n    \"exchange\": \"bitmex\",\n    \"id\": \"53252467-de90-6ac1-a003-a82eca090310\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1f4c8d5b-6046-dde5-e852-49cbd46b9bf2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 70,\n    \"exchange\": \"bitmex\",\n    \"id\": \"05c13f24-2dcd-b2d6-13a1-74434ac0b063\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5d7f3d09-e06f-4152-fb58-df512a8fdd32\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9051d45a-5204-a59d-07dc-e9ab5fad7eeb\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 244,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1e64a7d7-feac-56e8-df9e-ec2433cfdc67\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"92dd106e-8862-265f-5b37-aca480493880\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3407dc73-708c-908d-fa84-6b51b210bee4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2608dbdf-76f4-db81-1cab-1af1e463eacc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 8000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3fbefb33-1fc9-8bf5-f087-55033d5260b8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"668641a1-76fa-aa1b-c9ad-b1539a8934f3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"db4b892f-3bbc-6218-4509-033b43f7fcf1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7b99a521-59dc-2e25-f75b-d932b583faff\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1800,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d2bf38ba-cc81-5d71-6f8c-313856600cdc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 18,\n    \"exchange\": \"bitmex\",\n    \"id\": \"72c59e20-15fa-efbc-ca1a-6d00d0df49e7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5bd82eed-e8bb-55aa-ec63-a8325cf5fea6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"31f0c17a-b3b8-5c47-e8eb-fb493a5b34b0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 19,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eb9e0faf-7e04-8ca0-0607-2cfc1cd79c88\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 75,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ade23c56-245f-ac6b-82d1-311ac11ed68a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"db9b8c60-e29e-bda7-6e9d-fb5203729297\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2d9eb179-60db-19cf-71f9-e64590152980\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"83613fc8-dc50-22da-8887-e708b5a0cc11\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c9dbb211-f3d0-0c6c-4dfa-e71a737fb235\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 160,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af8a2f35-b153-915e-67b3-79772c51f945\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"06978606-2bec-6f34-eab8-35f5fd055080\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"da3f222b-c591-5419-197d-c9bbd915ba23\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2c4c38b1-c0db-1f44-eb40-afc4cbc73442\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"440347d6-20d4-77f8-e50a-ae51d33f87ec\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eea67221-e74f-2f5d-0950-25bbc28ebdc6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9bbe163d-a519-22de-ea55-675e2bdc8d25\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"08a716ec-f89e-344a-60ab-8134a9f9c542\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e1696b50-e2e0-8d51-b42f-32f0045e82d2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5a86d0fe-f2b1-0ffa-86ec-e48fbfbe93d1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a61676f6-44ac-9eec-7873-d577d014d77b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b780c8fe-e748-e345-8a15-d4e9268b604f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cae54712-5731-e69b-4d74-a55b9d739ebe\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"012f8042-1116-07b2-3998-621adf2d9f56\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 340,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7f791906-49be-1ec1-2e8e-be18a336de72\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fdcb030b-11fc-0775-56a3-15f61bd4a000\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4cd771cc-014a-b36a-72a1-bee6f3b31ec0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"47da772e-9cd1-2f6b-b364-7d8082a3bb3f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"48c02e9c-68f3-d112-4fb5-d39f8a852848\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eca89072-6d76-c425-75fe-04fe16a3f184\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c34023a6-bbbb-591f-39de-39495f3b102a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b9c4de69-1e20-c863-6873-c0a85289096f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5275e2f9-573b-54dc-6975-692b1c775b5a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ff00d057-672a-4837-766a-115e85942844\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cde478a9-dab6-aa28-f7fe-53ad6869fbdd\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"87a6b89d-2311-b0ad-ad1a-2896c5a86278\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e3a2e6d4-4a27-3ef6-ddaf-8657da6dded0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 7000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6d206dbc-3c0e-870e-a8e3-aa4f6818ec54\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"074fbcc1-e4a2-0366-f454-84f4fd70afc3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6594b53c-981c-a024-42a8-df277aa820df\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"56309d9a-26cd-4238-268d-4a8a38b81678\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"440808ef-d95f-05ce-154c-e3d6e39e5247\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d5cddad9-33bc-a522-78fa-91803049045f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cb432a81-8ac5-d3cf-be89-6736a1357bb5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"25ee23be-4a98-ba12-8814-8cb954c4fce4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e3570614-dcbe-a217-e3e4-bedc5bcd4277\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4d4d9786-776e-3567-6b24-a970c7c1897f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3002be9e-3904-df43-6ae8-03a0489e8477\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5566679f-0964-aa94-ebd4-a5f3e9e68912\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4a19a233-8c62-e757-b21a-df1ab11e0da7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a5047de3-fe99-80fc-a694-d3102b02fb24\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"44987164-d82d-35d7-528d-654d37a2d307\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"00e23411-8dcc-be52-22b8-a2d9ce0e1e92\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2228,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f3261249-01a2-cf6a-02f1-1f681e09f760\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"924f0bf0-21cc-35db-2ae6-254030a1d59a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 284,\n    \"exchange\": \"bitmex\",\n    \"id\": \"37be8c75-75a7-c34d-ce86-4ad75ea23719\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 13,\n    \"exchange\": \"bitmex\",\n    \"id\": \"669601c1-7810-a2c7-cf1e-516e363fd63f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"568d01cd-3cc0-6bc9-91a1-87401c58fed8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"205d9404-33f2-1c9b-83bb-116175ad78b7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1066f9f6-a474-9fc3-4867-8837891622b5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2e9d458a-90b8-7aec-2b38-09ec21821665\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bdbf2c5b-cdbc-125e-b942-d0e8aba360b2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c3f9b4ac-e38b-737a-890d-974a3cd702cd\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 7000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"77aee55f-4d4a-9298-fb75-fae9d8949aed\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e7b32698-118b-9e4d-b94c-a20b02b63b11\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b281c347-9d65-b328-afd2-e68998cc4b06\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1534,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5db98d12-4193-62ef-39fd-a85941e0f1cc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 716,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dc1f6cd1-585a-e718-4054-e29cd0ecbe86\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1347,\n    \"exchange\": \"bitmex\",\n    \"id\": \"23f86d7c-fa5d-b7a4-47fe-3fc5fff9c1b3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"861f6db9-8ac2-1bc3-c88f-ac9eeed39b42\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3223,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dd7515db-457d-2fd1-ef23-dcb718b73c9f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5ed15377-a953-defa-5194-5d084a96a94b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dc5b091d-0706-5f23-6be5-580217f50c8a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"32203e60-f1fe-4da7-279a-df24351cd7ed\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e778fb91-eff9-1d96-e495-3e34e5731ca2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 14,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bbfef45a-44dc-86e9-36b3-445b5f019f32\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e998b366-307f-f9eb-ff08-0f139fac44c6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 47,\n    \"exchange\": \"bitmex\",\n    \"id\": \"286ea49c-e98b-1bef-118d-6f9abde1684e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2044,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ce5fc6ff-6082-7074-5018-3852cf9ca77a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5da1e06c-2106-10ed-a21c-fa784f4044c4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8dba2204-b9eb-a940-0c73-a6977e7c8fb7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f97a320f-01a6-0ec3-1648-50e978b8d71f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4c89cc82-6ae2-a277-d5e2-3a7bbf5e466e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1309,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fd1339e0-1687-9545-5d40-99d82ab0010e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 25,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cd9a98c8-729e-3ece-24da-95e8c42e74a9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2a71c743-f8e5-361c-94cc-621869a51c30\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 750,\n    \"exchange\": \"bitmex\",\n    \"id\": \"009f3d89-6edd-28b5-0b72-d21a41e25386\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 64872,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a2992cd7-c48c-d14c-72bf-1a8b4926ffd8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 494,\n    \"exchange\": \"bitmex\",\n    \"id\": \"65210ebf-1418-26b7-6c07-5cea5de00c47\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 450,\n    \"exchange\": \"bitmex\",\n    \"id\": \"198d2068-6f2b-34dd-7113-10353e055840\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b79c0702-a004-2be9-0b5d-c7d3b5162650\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1eb00db7-9c43-8b91-1ff9-45494166672f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 4,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bcfe948a-d51e-7131-8726-8525a8fc714f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 755,\n    \"exchange\": \"bitmex\",\n    \"id\": \"14ef833a-a473-8bdc-ea3c-04c6e3240cf4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aba99f48-91d1-e2c2-e951-a9375f884052\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 21,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2faea6db-246e-7ba5-1773-5a8b705f4325\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20304,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9c921747-f692-742d-2459-ae0c9ddb022d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 18,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8ba7f99c-c199-848b-5400-b0d17b3ce34f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 75,\n    \"exchange\": \"bitmex\",\n    \"id\": \"878864ea-cca4-1490-3f6d-6cdcf38a9279\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3896,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f1fb3979-79c7-f50c-02b1-df646913c6d6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6ef71cb0-b46b-a374-3524-33ea25ecb600\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 59,\n    \"exchange\": \"bitmex\",\n    \"id\": \"81f3c32e-2b9f-62de-51c2-9270070b54c9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 101,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8f91f412-b799-a677-2a3b-c77d58231dca\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c02bd87c-b535-9b26-9452-004c0055c741\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 160,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aea67e15-b8c1-c9d5-4707-90cb65e5a8f6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8f4fbc1d-b135-407d-2a43-0670df871d99\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2282165c-f11b-657b-0ec5-5fa00c70927c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"df815992-76ae-c65c-8bec-c4bf5a1db91b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 59,\n    \"exchange\": \"bitmex\",\n    \"id\": \"18090edb-906f-61c8-7f3f-5a3b54b0f368\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b02326dd-6e77-c94f-2d70-3146dd7c1b87\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"df91abc1-fbb1-59eb-8068-c004e2d88377\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"53af69b7-81b7-7b8d-77ce-e99e9641608d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"95bb0456-936e-64d7-75f3-89c8ee30b1c9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3ea1b8ba-d064-3e87-498d-c2c18038dce4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 46,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cece880b-e403-e2bb-0dc8-33362113e754\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"423752e1-e155-86ba-7d6b-1060a6dcc8cf\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 195,\n    \"exchange\": \"bitmex\",\n    \"id\": \"657538ef-2a8a-2d13-5ec9-67b452c710f9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eeec538d-1e55-8a33-730e-5313510d1eba\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"48533441-28ba-5167-5f33-0115d13ab167\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6c957223-e749-40e4-3a6b-3eb26c722f7c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3367d3c3-5d51-9847-68f7-cf4bd8d64ab0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"73771d19-f200-5700-6f98-da21f2fc9b82\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 28,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7d61abd4-89ea-cfb3-96db-dea74ae37c1f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 467,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6f7f8e08-1d6b-0174-108a-3c296ba20ceb\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5b292e3f-0cfb-754e-1bc7-a12163df4b87\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2553,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9f17bbc0-0b19-0489-eddb-5cdff08e06aa\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6787759a-72a1-e689-d0c4-7746578d9924\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 103,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3e2b813a-329e-8ea3-8027-3e167383b15b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 101,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c9902538-ea58-e60a-e4ec-02f8ab77f7de\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 795,\n    \"exchange\": \"bitmex\",\n    \"id\": \"806835ef-dec8-836a-1396-abe61b4f3808\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 600,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a8431761-3a2a-12c7-b520-26fd29c2e1a4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 14,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cbeb16bf-c366-081d-b3af-13d429f62bbc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 600,\n    \"exchange\": \"bitmex\",\n    \"id\": \"115344d5-ecde-0923-9048-ffe63a4a5a42\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0e223859-c38c-663d-4a58-2ac1c9f9dcfc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 118,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0f1d32e3-4b73-25de-6b91-566d1ad396b5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 423,\n    \"exchange\": \"bitmex\",\n    \"id\": \"103c3318-fb5e-5a03-ef60-910dc6be5d22\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7fdccc6f-15d6-0eae-1fe1-ce827c0eade8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"95acbe08-8ab0-2ff9-8616-35a95dde4dc3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3ff108ca-c2da-73cb-e2aa-2294b56eb654\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1260,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7f453672-1890-ef67-96aa-7451737a35e3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 800,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cae4af2e-c1dc-f215-2601-983a82fcb994\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f074ee30-5a70-8345-3ed8-554e3ba61318\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d44ffbbb-e817-8757-6dfe-6940a05671ac\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e117ae6e-1b14-a4a6-ffb0-b3d7350f6b86\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 761,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2d6f90cb-3d10-e3c9-99df-eff045bae9b3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 495,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f9507a62-f996-8769-0d5a-ec6f87db53e3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 8,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eb9c2d2c-bb87-b1ee-89b7-848f17f6c9a3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 34,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9863668e-17f3-3a24-8a5c-1ecce4e9bdac\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 441,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aa88a99c-5d71-c2b2-9900-f1c9f324afc8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1afeb131-458e-ce62-5a99-868233afb220\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0edca3d2-7ec8-4c27-d057-fe54118859d2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6e437286-bf4b-6abb-35f8-51ca5d23f1f4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 999,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3cbff978-7634-4d38-66dd-d3ab48224d49\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4fa382c1-1aac-aba7-fa10-4b6265d958df\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"39928a52-8583-97f8-b99f-7e14efa3e9d3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8ec02006-662d-aafa-c348-2e73681b44ab\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7c14ddbf-4756-4162-d065-e448b2c8f15c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"967ff7d7-ff19-bcb8-bbfc-effe93233c68\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5a956b10-e551-b026-955e-73e70e63fdb3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5ae254a5-5473-fc74-6b40-9f181d8335cb\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c1f8a036-52a6-41da-f2a9-79334e75bfa7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0d2b605a-4822-0070-5372-fb225a7521c8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"866744b9-1b1e-c8ad-dfe6-8a2ff427a281\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a9734366-c965-9bea-94e4-42a33402699a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"082729c1-1b63-eba0-2865-599db8a747f4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"48d5e179-9084-1517-9407-5e8ca9fa937f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e48c7952-18a4-982b-32fe-de8fb148a5fa\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2163d4ee-4714-57c2-6adb-682cb1924924\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9379fe0a-3a58-a676-848f-49107b09df00\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 80,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dbbfa7d4-0ad9-fc28-d1c3-5107ec9258a7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"88a73827-dab2-5ef4-23ae-ad300f2eced0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 611,\n    \"exchange\": \"bitmex\",\n    \"id\": \"84aef39f-e6ad-74c0-ce6b-ce8923340ed2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 195,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8cfa7a55-11a2-8825-2090-001583f62cb2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8502e4df-456b-0579-4164-59f1c637c551\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 488,\n    \"exchange\": \"bitmex\",\n    \"id\": \"69adf2e1-21f6-62fa-f01f-a6519ade546a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e5b4830a-b362-b63b-9ffb-94e3cb3662b9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8ce692a9-cc62-7515-12e7-a5fcc23cc77b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"17482343-e0e1-2e7f-cce9-bd2fc915432c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"070569f2-2c82-0896-21b7-069210641899\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4cd7379d-3b2b-ebc1-92df-12127fd5c6f6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 18,\n    \"exchange\": \"bitmex\",\n    \"id\": \"17af67a1-d33b-73ae-0794-37989e3cf7c0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"084e2c6b-26a3-e621-4e75-cb832f296251\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 105,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e8d88acb-cf43-8249-4306-23b99059d2c8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 4000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b85e91e6-1902-c192-d497-3943d36a2af5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 105378,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a33d2554-47f2-79dd-1d31-18169b89c70c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 173930,\n        \"price\": 4081.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.587667Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29000,\n        \"price\": 4080.75,\n      },\n      {\n        \"amount\": 32680,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.612114Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.602Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13770,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.628955Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.619Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6710,\n        \"price\": 4092.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.646214Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.637Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 29720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.656440Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.647Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5710,\n        \"price\": 4092.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.668435Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.649Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 196180,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.668560Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2400,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4092.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.668571Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"deribit\",\n    \"id\": \"16992529\",\n    \"localTimestamp\": 2019-04-01T00:00:09.668654Z,\n    \"price\": 4092.25,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.656Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5160,\n    \"exchange\": \"deribit\",\n    \"id\": \"16992530\",\n    \"localTimestamp\": 2019-04-01T00:00:09.668654Z,\n    \"price\": 4092.25,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.656Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"deribit\",\n    \"id\": \"16992531\",\n    \"localTimestamp\": 2019-04-01T00:00:09.668654Z,\n    \"price\": 4092.25,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.656Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 600,\n    \"exchange\": \"deribit\",\n    \"id\": \"16992532\",\n    \"localTimestamp\": 2019-04-01T00:00:09.668654Z,\n    \"price\": 4092.25,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.656Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 49720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.674967Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.665Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 162600,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.681785Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.667Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 83330,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 258450,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.681858Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 66300,\n        \"price\": 4100.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.682413Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.672Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411410,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 52400,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.683830Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 372790,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91020,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.686285Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.676Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 322790,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 141020,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.687044Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.678Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 292790,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 171020,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.688396Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.679Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 242790,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 221020,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.692683Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24950,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 43660,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.693043Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 74240,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 121940,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.693236Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.684Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232790,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 131940,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.695051Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8600,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 86600,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.697538Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 62760,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 45000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.698281Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.689Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198610,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 255200,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.700677Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5700,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 81200,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.701829Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185340,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.703207Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.694Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 380,\n        \"price\": 4097.25,\n      },\n      {\n        \"amount\": 15600,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.704906Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4112.5,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4111.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.708006Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 132600,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.715418Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.706Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47760,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.717839Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.707Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4075.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.718429Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1040,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.726566Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 19930,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.726616Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107600,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4071.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.726695Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.715Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4077.25,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.727142Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184990,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 255550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.728481Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 59190,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.732441Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 344513,\n    \"exchange\": \"bitmex\",\n    \"id\": \"913c1d3b-299d-56ac-7263-9e30ca6a0532\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"70b67a6f-54c0-4175-5b44-8be643732701\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 16,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b6690ceb-88ec-9228-8837-794877cb84e0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 483,\n    \"exchange\": \"bitmex\",\n    \"id\": \"702e057f-e25a-b367-613f-1280466de1e1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 755,\n    \"exchange\": \"bitmex\",\n    \"id\": \"485b877d-8354-caeb-0254-a99cd6e353d6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 16778,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f2cd6af0-33c6-60b4-801a-fe82707eeeff\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"472a8222-eac2-b1d7-bcf0-101b48d83c93\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 7000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9e88e032-c720-ee30-b6cd-510ee015d38a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 60,\n    \"exchange\": \"bitmex\",\n    \"id\": \"804e9ea8-028e-1d57-2f02-036ab1af5f5c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e94dc48e-113f-7f02-b670-a0c6320e0879\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"953a5394-7610-51ca-f778-e4deb55ba41d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c94700e6-007e-b866-b773-3623cb55180b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3871b520-10c9-7f40-1854-8af6b90efbe2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e94605d4-dbe2-1746-e9d9-09271e0d3b3a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3a893828-bac1-d11f-d08b-69b335c603b8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f6946f8e-5007-5443-ea51-cd2d2297103f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1f9d66f7-32bd-68fc-c7f6-369226bc88e6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3896,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a7734260-dd01-1d1d-d422-3277c3daee13\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 275808,\n    \"exchange\": \"bitmex\",\n    \"id\": \"80b8db4f-15e4-11fc-3c37-042065e9d5ef\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bb9c6c40-8a5c-96b3-2cd2-dd2c2acff31b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d972fa3f-b672-4eed-6bbc-1459f142114f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2249,\n    \"exchange\": \"bitmex\",\n    \"id\": \"10053930-6307-fb03-5462-27ed47b43d37\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"31dbcc7d-d316-d577-2410-533d85e9a41a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fe5bdc4f-8373-4390-3404-8708faa7c0c0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"47db8f13-521e-62e2-da21-3a0574387e44\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 204,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8c65a1fa-4113-ab82-34e6-8455892dda9c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 73,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0af0a725-a1cb-fab9-3dea-c7fcfd188706\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2249,\n    \"exchange\": \"bitmex\",\n    \"id\": \"663df72b-bd1a-fefb-ed19-fa5368efb09f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9e478fae-21d7-bb62-fb53-2b11861b5572\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 42,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f1548cbe-df78-ea27-04d7-776a726a53b1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30001,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aeaa19a7-9c07-48fd-a137-cac0676aba41\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12,\n    \"exchange\": \"bitmex\",\n    \"id\": \"77790b02-699c-972b-2cb8-16d2b5c09ca3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"25e97e51-7d2e-f9a8-19f5-198c947a92e5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 45,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9109e997-fbc4-11e0-1033-aacc1a8b1f10\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 53,\n    \"exchange\": \"bitmex\",\n    \"id\": \"26a22b80-1436-bbca-c98a-ff9eaa63f318\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 255,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3ec75c45-bf52-cf40-694c-072c8aad6e23\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2720,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1c0cf480-6aa0-1038-7320-4e47ffc19e3e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 137,\n    \"exchange\": \"bitmex\",\n    \"id\": \"996207b7-18db-3125-9422-58386d8213b1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8f999370-823a-2e40-cdfe-5f7221be2b7d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 49,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4bb627c7-a8ad-9ae5-9166-813c02e36ee2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 70,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cb983fe1-c97f-9152-c70e-89ec492bc442\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"df80d227-934b-cc9a-55f3-2254515d44f9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"259259ac-31e3-1d4d-738d-1e5256e4ceb9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 353,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b905d043-879e-2039-c275-61942a04028c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"78e985e0-a4c6-8735-5f2b-06633fbea81b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 244,\n    \"exchange\": \"bitmex\",\n    \"id\": \"99b9c40f-100a-fec6-fab7-1287e3dca2f6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"774ba394-db5b-fb31-2aab-cc035a12de6a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"238732b7-fad1-ca7f-3d1f-3171bcaa2f45\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 105,\n    \"exchange\": \"bitmex\",\n    \"id\": \"54cb2110-24b1-9054-186b-29b8273884c8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9a5306e6-8c4b-9229-b6fa-a4ae9f31b7f8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8c409255-6181-2fc5-0a06-8c80a9c2a7e8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"780c02a5-f7ea-0f51-9cfa-3c0c483956f2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 36,\n    \"exchange\": \"bitmex\",\n    \"id\": \"55db2ccc-4bd8-bf06-ad55-84a7784ff2f8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"08bdc099-5358-2e9c-db7f-9945b2eedbf3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 450,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bd66155c-9f0a-2c1e-e8e7-fe536aeb3364\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 4000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d1cc4cf8-f867-b1cf-c185-a94bdeae7a8d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1c7eb8d1-c740-46d4-d3ca-03e7ba25f9e7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d5dd71b7-ec9a-3450-ad2e-cf8c9d0e255e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 91,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e28b9bbc-a386-aec0-5bcb-c2516a934315\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 600,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fa449a96-9d12-2871-02d2-5c3ebc319193\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6e2ca639-0904-5458-04c5-f99a5baaf4d1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8c547fb4-8ae2-86ee-589e-c79ab8c92cf2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fd845b6b-77f4-efc0-b613-96ce05305b88\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fa64dc91-50f7-27e0-bb44-46325de0287d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f09dc4f1-9f38-fdaf-1157-2607ddeaddb1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f9eaad47-51c4-4a1a-d9bf-c990bb7f4581\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2141f926-6583-0d55-73bf-5148066a3369\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"75fab6fe-ae5f-fd13-2abf-74126753dbdc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b16e3bd0-3814-c814-e7bf-7f7bbd27d022\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c54dfa8c-7a36-2d86-7c77-fba7b64da361\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b12d9d1a-a8c2-7971-0cd1-a4a936d14614\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2250,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4a5e6810-96ec-1846-c50c-19498b1ccb32\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f2f07f2e-767f-be9e-0d5b-28161225f4ef\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a29a93b7-cea8-a682-d83e-a45ddde1f7f1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"52142163-a903-07c1-6560-ca5391bebd6a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 39683,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c94dc946-2779-a754-8d9b-6dd0564b75fc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"99398fd1-81ea-10f2-219e-c6beb8b0c227\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 196,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eeb430da-e9ce-1d94-8190-f98a24a7ae63\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f03ac310-e838-36c8-b048-9a87a1e61aaf\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 92,\n    \"exchange\": \"bitmex\",\n    \"id\": \"462c28be-3839-2ee1-a93d-22a7878af82b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1600,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1f4500e7-bc39-cdd7-bc85-63559b42572f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 750,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2b57da8a-bb11-1eae-61c4-a1982ee9418c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6432,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4fa8c26c-bb72-b00a-aa2a-8a9fa3f0a115\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 89240,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.750915Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 243550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.764656Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.748Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2400,\n    \"exchange\": \"deribit\",\n    \"id\": \"16992533\",\n    \"localTimestamp\": 2019-04-01T00:00:09.764705Z,\n    \"price\": 4092,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.748Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 9600,\n    \"exchange\": \"deribit\",\n    \"id\": \"16992534\",\n    \"localTimestamp\": 2019-04-01T00:00:09.764705Z,\n    \"price\": 4092,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.748Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50410,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.770949Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 860,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 161740,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.780318Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 174990,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 253550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.780362Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 236770,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.783185Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 16780,\n    \"exchange\": \"deribit\",\n    \"id\": \"16992535\",\n    \"localTimestamp\": 2019-04-01T00:00:09.783769Z,\n    \"price\": 4092,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.772Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.787513Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 237370,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.787525Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.776Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 242370,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.787537Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.777Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10000,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 211180,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.789093Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.779Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 242020,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 25300,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.790807Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 189990,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.793991Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54190,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 54720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.795915Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.786Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12010,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.797150Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 207840,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 224170,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.799640Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.790Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50460,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.801277Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50260,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.802246Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.793Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 174170,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 257840,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.803740Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 184470,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 157310,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.805358Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 108540,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.811061Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29820,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 137940,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.815211Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 174120,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 257890,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.815264Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 22310,\n        \"price\": 4083.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.816429Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.806Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 161740,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.818672Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.808Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 210180,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 175120,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.819637Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 4076.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.823328Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.813Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88240,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 165600,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.825022Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.815Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24950,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 258240,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.826826Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.817Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 140940,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 83520,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.829459Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 108260,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 25650,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.832282Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4100.75,\n      },\n      {\n        \"amount\": 2360,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.834499Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.825Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 83330,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 124240,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.836127Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33170,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 25060,\n        \"price\": 4086.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.838164Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.828Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 140240,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258940,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.840734Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4100.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.842154Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 43660,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 205460,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.843429Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.834Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 139540,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259640,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.845157Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.835Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 138840,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 10700,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.849156Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.838Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 171280,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 81940,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.849429Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 124030,\n        \"price\": 4091.75,\n      },\n      {\n        \"amount\": 270,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.853211Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.843Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 36820,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.855477Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 25000,\n        \"price\": 4071.75,\n      },\n      {\n        \"amount\": 76640,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.857719Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.848Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81700,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 139050,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.861386Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 261040,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.862351Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 263540,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.863655Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 264940,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.865266Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.855Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 138050,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 265940,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.868209Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 267340,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.869129Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4071.75,\n      },\n      {\n        \"amount\": 101640,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.876547Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.867Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.882849Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.873Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67600,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.886785Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.877Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 230000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.894166Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.884Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 43140,\n        \"price\": 4081.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.895634Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.887Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266640,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.920534Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 14290,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.922336Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.913Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 153100,\n        \"price\": 4083.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.924211Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.914Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10000,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.926722Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.916Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49340,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 203640,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.928186Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.918Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76640,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 132600,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.929423Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.920Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 169460,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 64180,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.933607Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 280000,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.940804Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.928Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10000,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.942777Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21500,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 4700,\n        \"price\": 4083.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.961433Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.951Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48640,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 88940,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.971451Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47520,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 186120,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.971524Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151940,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 123120,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.987465Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.966Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48290,\n        \"price\": 4098.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.992310Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15890,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:09.995119Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42660,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 152940,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.005341Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.987Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12300,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.005922Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.989Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80500,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 108960,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.006065Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5000,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 12800,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.006111Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16590,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.007343Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:09.997Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 122420,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 138750,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.060842Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.051Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135750,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.071015Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 108260,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 122450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.089109Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 185470,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.090680Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 53190,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 1720,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.093298Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.083Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32470,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 25760,\n        \"price\": 4086.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.095175Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.086Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 1900,\n        \"price\": 4074.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.127875Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.118Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4100.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.178588Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 19900,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.214685Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 31000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 244360,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.214766Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.187Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 210180,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 169930,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.216957Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.206Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1400,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 23930,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.228492Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 225180,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.231760Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 97540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.234959Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.225Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224980,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.237260Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 210,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.252086Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 169940,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.258015Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.249Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 43780,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.267224Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.256Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4077.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.270724Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.259Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 220000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.272334Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.263Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15370,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.277012Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.264Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 122940,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 22500,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.279998Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.269Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 111210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.282131Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 132940,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.284771Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.275Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 22000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.290590Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 210000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.323528Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.309Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 124230,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.324139Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 117940,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 37500,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.324189Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.314Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 131210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.325823Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107600,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 101640,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.330770Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47050,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 1090,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.385627Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33320,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.385665Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.371Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5010,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 115260,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.386792Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.426487Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 19930,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 90600,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.429130Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.419Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 49720,\n        \"price\": 4104.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.430295Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.421Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76640,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 132600,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.434856Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 800,\n        \"price\": 4114.25,\n      },\n      {\n        \"amount\": 29200,\n        \"price\": 4113,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.435865Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.424Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3000,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.440796Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.431Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219980,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.481437Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.471Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1630,\n        \"price\": 4074.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.481777Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 290780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.533684Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.524Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 89000,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.536205Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.526Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46190,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.538450Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.529Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 22500,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 34720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.540561Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.530Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 700,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.543386Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 54720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.551090Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4075.25,\n      },\n      {\n        \"amount\": 1840,\n        \"price\": 4074.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.558349Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 45070,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.560615Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.550Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 36820,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.580735Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.569Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 55070,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.623280Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.613Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 36500,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.624170Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.614Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7500,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 69720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.626847Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 89720,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.627726Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.618Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40500,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.639963Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.624Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151760,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.640185Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.630Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 84030,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.650004Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.640Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 184470,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 17400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.660905Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.651Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 117240,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 210700,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.663777Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.654Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.666108Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52490,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 1420,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.678434Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 26460,\n        \"price\": 4086.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.681082Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 279300,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.683104Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.674Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10950,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.693932Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151060,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.699835Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.691Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 240,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.703191Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 204980,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.704960Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.694Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.706537Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151070,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.710186Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.700Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 28640,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.715296Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 273010,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.717011Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 92450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 77520,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.733628Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 62450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.735010Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4102.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.737555Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238830,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 54080,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.739042Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.730Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 294300,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.766956Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 57520,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 88040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.769251Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.756Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8100,\n        \"price\": 4108,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.773501Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 15700,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.773528Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 19900,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 328480,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.774160Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.765Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 73040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 343480,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.777185Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130,\n        \"price\": 4113.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.778099Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.768Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24950,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 58220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.781183Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.770Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 93040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.785158Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12660,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 68220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.785202Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.775Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 114560,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 13360,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.789270Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.777Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88300,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 25650,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.808200Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.795Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 81700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.814360Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39800,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 115260,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.815758Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.806Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 5710,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.818022Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.808Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47590,\n        \"price\": 4098.25,\n      },\n      {\n        \"amount\": 46890,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.820699Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.811Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46890,\n        \"price\": 4098.25,\n      },\n      {\n        \"amount\": 12800,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.823405Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1660,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.829003Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4000,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.829055Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 11650,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.830097Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 410,\n        \"price\": 4074.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.832349Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.822Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 34900,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.840799Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8640,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 35700,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.843031Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.834Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 31750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 38640,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.845442Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.836Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 83330,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.847027Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.838Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2140,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.873642Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87240,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.880522Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 35000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 239530,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.887048Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.877Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67520,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 78740,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.889164Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.880Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12660,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 68220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.892555Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.882Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 117590,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 156840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.893795Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.884Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358480,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.895430Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.886Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 960,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.901297Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.887Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98740,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.901362Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.889Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.901375Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.892Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 200,\n        \"price\": 4074.75,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:10.910855Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:10.901Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 49990,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.036247Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.010Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 200,\n        \"price\": 4141,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4109.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.037059Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.025Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51260,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.065400Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 89650,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.067301Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.057Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33320,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 4920,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.084923Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.076Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 70000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.091263Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4292.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.113878Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.104Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 117290,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.152300Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.138Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 290,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.152508Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 117310,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.159387Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.149Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 84300,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4083.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.173973Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.149Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64300,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 101700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.234582Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 69720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 111210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.234629Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.223Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 126210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.239360Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.228Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44300,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 121700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.239412Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.229Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 34720,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 146210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.244474Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24300,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 141700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.246734Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 35420,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.250603Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.241Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27240,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 8180,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.264202Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 102320,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.264241Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8560,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 106420,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.265812Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.256Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81460,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 39940,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.268907Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.258Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3540,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 40690,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.269449Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 14100,\n        \"price\": 4098.25,\n      },\n      {\n        \"amount\": 39790,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.271802Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 31260,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 310780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.277239Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 48400,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 150300,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.282666Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.273Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29230,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 154390,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.284054Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.275Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76420,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 64540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.285748Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16130,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 169440,\n        \"price\": 4083.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.289094Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.278Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 105040,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.289588Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.280Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 34770,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.291021Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66000,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.295624Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.286Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46420,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.317259Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.307Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12500,\n        \"price\": 4098.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.382706Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.373Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2400,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.384554Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10700,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.386639Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.377Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4119.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.405264Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.390Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1100,\n        \"price\": 4060,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.409477Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4125.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.421088Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30,\n        \"price\": 4054,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.422637Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.443737Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.434Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 300,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.505529Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 8170,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.508909Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 105020,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.510417Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.501Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121700,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 60690,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.529424Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 139390,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 42240,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.555276Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 290780,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 51260,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.558166Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.546Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 119390,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 62240,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.558213Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101700,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 80690,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.559986Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.551Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2520,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.577667Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.563Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 99390,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 82240,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.583508Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.574Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81700,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 100690,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.587249Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100480,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.603307Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.589Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 210000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.635730Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47700,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 5620,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.657411Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.647Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102080,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.676932Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 363020,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.688423Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.678Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.689557Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19330,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.702004Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64300,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.720951Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 20330,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.728926Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.760656Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48020,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.779090Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.752Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12350,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.781282Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.771Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83060,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.785170Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52860,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.787715Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.777Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 78020,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.791266Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.781Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.799741Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.789Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 108020,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.804006Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.793Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.813972Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102100,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.827416Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.808Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4010,\n        \"price\": 4035,\n      },\n      {\n        \"amount\": 13080,\n        \"price\": 4034,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.829694Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82360,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 5240,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.836705Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102300,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.853925Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 40640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.863252Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10000,\n        \"price\": 4132,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.866809Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4047.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.868809Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.872670Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.862Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49000,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.877274Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1400,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.877878Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.868Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62240,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 119390,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.896725Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.886Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47240,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 134390,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.909016Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.896Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27240,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 154390,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.909069Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.899Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78020,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 35240,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.936512Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51630,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.936585Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8170,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.937136Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 108020,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.956768Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.946Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2490,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:11.993784Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:11.984Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4082.25,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4081.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.024537Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2350,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 39850,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.063101Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.052Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 165980,\n        \"price\": 4083.25,\n      },\n      {\n        \"amount\": 3490,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.064599Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.054Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 375290,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.086801Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 45070,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.258404Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.248Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64290,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.309500Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.291Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4100.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.320306Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.294Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102310,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.337408Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 35070,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 90000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.338689Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52320,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.352394Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2550,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.391215Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.377Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141840,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 390290,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.399748Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.390Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5240,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 138020,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.402606Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.393Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42180,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.408286Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.397Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4077.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.408329Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.399Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13770,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.412240Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.401Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10100,\n        \"price\": 4139,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.414208Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.404Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6000,\n        \"price\": 4040.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.419999Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.407Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4105.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.445519Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.434Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 43070,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.456640Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.445Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4590,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.493497Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.484Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4105.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.495343Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.486Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.497227Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.488Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 133920,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 39100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.503977Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.494Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6100,\n        \"price\": 4108,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.509548Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107600,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 101640,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.550104Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 100,\n        \"price\": 4051,\n      },\n      {\n        \"amount\": 51140,\n        \"price\": 4049.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.557206Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.547Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 77240,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 46500,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.571740Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.561Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 31500,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 41800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.579553Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.565Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 164390,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.580093Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 22240,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.586137Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 11500,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 28170,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.588529Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.578Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 149390,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 56800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.605257Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.580Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af1ea5a8-a88b-4347-ed9c-9d496bfe98a9\",\n    \"localTimestamp\": 2019-04-01T00:00:12.628034Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.933Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12,\n    \"exchange\": \"bitmex\",\n    \"id\": \"89eede38-b046-b992-8478-f55daad441ac\",\n    \"localTimestamp\": 2019-04-01T00:00:12.628034Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.933Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3912a96b-3982-7c99-d14c-97f0144b83f4\",\n    \"localTimestamp\": 2019-04-01T00:00:12.628034Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.933Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 92,\n    \"exchange\": \"bitmex\",\n    \"id\": \"59037281-6f76-b0c1-9b5d-35baf7c2ff9c\",\n    \"localTimestamp\": 2019-04-01T00:00:12.628034Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.933Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 70000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 159390,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.628970Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.599Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 139390,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 48170,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.635153Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.645643Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.623Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7240,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.647892Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 149390,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.651025Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.642Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41450,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.654518Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.643Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 129390,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 76800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.657266Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 114390,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 91800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.658803Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.649Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1980,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.663734Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.651Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 94390,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 68170,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.663757Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.654Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 771440,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.665496Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:12.665496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41390,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.667934Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.657Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45000,\n        \"price\": 4117,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.672994Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40050,\n        \"price\": 4123,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.675110Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.664Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40040,\n        \"price\": 4057.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.682723Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4129.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.685675Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76640,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 132600,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.702096Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.691Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.747770Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.738Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52300,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.754730Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.745Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47240,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 90000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.780267Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.770Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2470,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.807937Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 90300,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 95890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.852661Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 16750,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.855704Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.843Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2120,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 32680,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.875998Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.848Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 84300,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 68020,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.892014Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.882Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 149640,\n        \"price\": 4083.25,\n      },\n      {\n        \"amount\": 16330,\n        \"price\": 4082.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.895497Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.884Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9000,\n        \"price\": 4099.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.896491Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.887Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 59100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.898513Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.888Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8600,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 32830,\n        \"price\": 4097.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.906921Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.891Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 4150,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.907025Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.892Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129820,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 63200,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.907688Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.897Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 48170,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 24150,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.916254Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.906Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 26500,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.930607Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.920Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.932390Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 99820,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 35240,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.935365Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.925Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42300,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 151840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.942095Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.928Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48200,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 93040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.942169Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:12.931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42100,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.085925Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 402560,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.116658Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64220,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.125406Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42060,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.132991Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.122Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4074.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.154708Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4110.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.163734Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.163908Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4112.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.178256Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 406660,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.204359Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2460,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.208133Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.199Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 402560,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 48200,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.219589Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 8870,\n        \"price\": 4083.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.231028Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141840,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 412560,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.274804Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.252Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4150,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.276705Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.287704Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.278Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.288721Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.280Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 32060,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 422560,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.299260Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.290Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 95890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.308584Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 47060,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.315086Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.303Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131840,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 432560,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.315906Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.306Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.317656Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.308Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4072.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.319800Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75040,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.321748Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.334516Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.336668Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50,\n        \"price\": 4146.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.375861Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10,\n        \"price\": 4033.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.377237Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4051.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.379739Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.369Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66520,\n        \"price\": 4045,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.382625Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.372Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 769673,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.389380Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.389380Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6980,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.389877Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8560,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 43430,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.424282Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 482550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.433762Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.423Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 467550,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 146840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.437239Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 119820,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.440092Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 35240,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 32290,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.464831Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 262449,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 222533,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 252054,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 316169,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 139911,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 683821,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.471396Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.471396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 813415,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.471398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.471398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 382790,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.471400Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.471400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770973,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.471407Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.471407Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 627881,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.471410Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.471410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6800,\n        \"price\": 4102.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.480039Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 200504,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.484737Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.484737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384473,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.484740Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.484740Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78400,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.485378Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 89820,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.488181Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.479Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772273,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.489204Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.489204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4107.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.491291Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51630,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 307160,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.493100Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51550,\n        \"price\": 4075.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.497194Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.486Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.500259Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.491Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.511739Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.502Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47090,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.518377Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.508Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 773573,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.518934Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.518934Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.518937Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.518937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53330,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.522671Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.513Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 774873,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.524827Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.524827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 14770,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4e364087-4a54-5dd6-0aa2-70884676dc6e\",\n    \"localTimestamp\": 2019-04-01T00:00:13.524857Z,\n    \"price\": 4090.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:12.989Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2940684,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.529240Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.529240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.529245Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.529245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1478,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dc897ea6-aa72-84a9-fd76-0f258e7cc702\",\n    \"localTimestamp\": 2019-04-01T00:00:13.529251Z,\n    \"price\": 4090.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.015Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3508,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0ee18728-954a-f090-604a-4c897c92ee61\",\n    \"localTimestamp\": 2019-04-01T00:00:13.529251Z,\n    \"price\": 4090.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.015Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2935698,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.538579Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.538579Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.559038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.559038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 6492,\n    \"exchange\": \"bitmex\",\n    \"id\": \"484c077e-7992-26a8-c3f0-ad9e2ab7cfc3\",\n    \"localTimestamp\": 2019-04-01T00:00:13.561359Z,\n    \"price\": 4090.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.032Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 17993,\n    \"exchange\": \"bitmex\",\n    \"id\": \"40fb6919-4e36-86ea-6291-4b9f8a490e0a\",\n    \"localTimestamp\": 2019-04-01T00:00:13.561359Z,\n    \"price\": 4090.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.032Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 531843,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86434,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.561402Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.561402Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 45070,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.600952Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.590Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19330,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1040,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.602748Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 46500,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.604660Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.607925Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.597Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64300,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 73330,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.609860Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 1860,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.612782Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.602Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4920,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.615773Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.605Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 25760,\n        \"price\": 4086.25,\n      },\n      {\n        \"amount\": 50690,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.618055Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.608Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65240,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.619654Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.610Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8170,\n        \"price\": 4083.75,\n      },\n      {\n        \"amount\": 7940,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.621785Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.612Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1440,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 76910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.624830Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.615Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.626798Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 466550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.630544Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.619Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 61500,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.633776Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.621Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49700,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.637383Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.626Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 81500,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.639745Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2500,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.644142Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46390,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.645115Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.634Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44300,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 93330,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.656505Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 56910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 55070,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.656558Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 101500,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.659159Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.649Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24300,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 113330,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.661517Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.652Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 89120,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 78740,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.683173Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.672Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3000,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.701790Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.691Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 24800,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.709677Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.700Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112630,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 9260,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.712371Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.702Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5010,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 83060,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.714787Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46190,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 81700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.718138Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.707Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91500,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 57240,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.718284Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 700,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 5710,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.720611Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.710Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 45890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 106500,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.722575Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.712Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2300,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 3050,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.723917Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50400,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.726856Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.735053Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.724Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 92630,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 101700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.738662Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4097.75,\n      },\n      {\n        \"amount\": 39760,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.764141Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 290780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.790381Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.776Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 615552,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.802290Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.802290Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52000,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.819007Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20700,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 150940,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.820698Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.811Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 47090,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.822483Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.813Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6740,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.825334Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64240,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.827068Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.817Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 774885,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.827278Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.827278Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6803,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.829052Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.829052Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4075.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.831255Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"223a70fb-90a3-65a9-f78c-43d81cc409c3\",\n    \"localTimestamp\": 2019-04-01T00:00:13.835686Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.122Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47060,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.839360Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.839921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.839921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 796627,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.840044Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.840044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 234000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.847478Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 490550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.847532Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.834Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 203,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7c961c5d-2221-fef9-f5cf-b39da90370eb\",\n    \"localTimestamp\": 2019-04-01T00:00:13.847621Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.136Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 47,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ee93e5e9-614f-bc43-f17c-0d0c1d078b67\",\n    \"localTimestamp\": 2019-04-01T00:00:13.847621Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.136Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 821117,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.847662Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.847662Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845627,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.847666Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.847666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8560,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 89820,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.860753Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 846927,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.869061Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.869061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 146840,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 24800,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.876985Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.867Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 126230,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.889350Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.880Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 128230,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.896045Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.882Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 130230,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.896124Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.884Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10,\n        \"price\": 4155.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.896320Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.886Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4024.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.897242Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.888Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4136.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.900770Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.890Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 41580,\n        \"price\": 4038.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.906003Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.895Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 132230,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.908695Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.898Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86500,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 20060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.967520Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66500,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 40060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.970062Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.960Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 848227,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.143288Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.143288Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51500,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 55060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.441124Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.994Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 69820,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 44800,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.441192Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.996Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 31500,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 75060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.441668Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:13.999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24800,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 98040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.441684Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.442251Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.029Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47260,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.451831Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4800,\n        \"price\": 4102.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.489698Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.259Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76400,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.490178Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4107.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.490347Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.263Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64290,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.490868Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 49550,\n        \"price\": 4075.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.491072Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47300,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.491414Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81700,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 32800,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.491860Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72630,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 61450,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.492420Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52630,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 81450,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.493003Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4100,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.493540Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.345Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1680,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.494617Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 32630,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 101450,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.495063Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.350Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4072.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.495071Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.495079Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20700,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.495155Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.367Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.495731Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39820,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 94540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.495792Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 466550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 210000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.496842Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4013.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.497126Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54700,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.497649Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.469Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 3986.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.498688Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.473Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 700,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 59820,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.500869Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.491Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 20700,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.504706Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.495Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6980,\n        \"price\": 4097.25,\n      },\n      {\n        \"amount\": 35830,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.514367Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107600,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 100040,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.519428Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51400,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.538540Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.525Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.540680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.540680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24090,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.541877Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.529Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4069.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.577054Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.567Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4067.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.586091Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18100,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 65520,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.616563Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.607Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 95770,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.620312Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.610Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4090,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 95060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.644698Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.635Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80060,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 60890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.646694Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.637Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4140,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.649220Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.640Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60060,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 80890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.652003Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.641Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40060,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 100890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.711492Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26980,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 33750,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.711540Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.699Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3153,\n    \"exchange\": \"bitmex\",\n    \"id\": \"75ba719c-e764-e9f6-66e5-d0ad96af98d5\",\n    \"localTimestamp\": 2019-04-01T00:00:14.726270Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.490Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e121647d-8a4c-8126-6eb0-a5a1654b6532\",\n    \"localTimestamp\": 2019-04-01T00:00:14.726270Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.490Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"055e9cd6-45d4-69e2-624d-2066ed34d862\",\n    \"localTimestamp\": 2019-04-01T00:00:14.726270Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.490Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"516d3444-d95d-1671-d6c7-7fe8a610e10b\",\n    \"localTimestamp\": 2019-04-01T00:00:14.726270Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.490Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 447,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c3ce70f2-82f3-a376-69dd-9de1b129511c\",\n    \"localTimestamp\": 2019-04-01T00:00:14.726270Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.490Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726308Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726308Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726312Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2867447,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 43766,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726319Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726319Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2850299,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 60914,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726323Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2760294,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150919,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2681511,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 229702,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726335Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2646600,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 264613,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726345Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726345Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2556583,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 354630,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2539511,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 371702,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2449486,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 461727,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726359Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2359457,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 551756,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 791063,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726368Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 850827,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20060,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 120890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726407Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.704Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2280650,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 630563,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 796163,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738245Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2263554,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 647659,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738247Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738247Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2179709,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 731504,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 629578,\n        \"price\": 4108,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2089660,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 821553,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738263Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738263Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738265Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68010,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.746011Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.735Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50300,\n        \"price\": 4144,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.748080Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 140000,\n        \"price\": 4030.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.751113Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.740Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40100,\n        \"price\": 4153,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754216Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2010829,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 900384,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754408Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754408Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1920776,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 990437,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754441Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754441Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 246414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754450Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754450Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1903656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1007557,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754533Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1813579,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1097634,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754536Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383790,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 795163,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754539Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1723578,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1187635,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754542Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754542Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1633505,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1277708,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754544Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1631152,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1280061,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754547Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754547Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1614008,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1297205,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754555Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1523911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1387302,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754562Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1433910,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1477303,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754566Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 852147,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754569Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754569Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 796,\n    \"exchange\": \"bitmex\",\n    \"id\": \"88b67156-9672-a810-0205-ab85193c880c\",\n    \"localTimestamp\": 2019-04-01T00:00:14.754573Z,\n    \"price\": 4090,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1476507,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754591Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754591Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1343889,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1566528,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754606Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1326821,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1583596,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754611Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754611Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 539143,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754614Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754614Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 555531,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1784854,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 524690,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 552731,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1782054,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 521890,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1266279,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1644138,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754625Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754625Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1249187,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1661230,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754628Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754628Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1199376,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1711041,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754631Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1727,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5f196951-5403-10ef-3809-7c3b6a32b7ac\",\n    \"localTimestamp\": 2019-04-01T00:00:14.754634Z,\n    \"price\": 4090,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.859Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1709314,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754645Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 852167,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754648Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754648Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1182260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1726430,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754658Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754658Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 939,\n    \"exchange\": \"bitmex\",\n    \"id\": \"91b66296-7dd5-fbff-3417-c782e3b20524\",\n    \"localTimestamp\": 2019-04-01T00:00:14.754663Z,\n    \"price\": 4090,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.911Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1725491,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754669Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 116800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 4090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.756772Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.748Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 65430,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.758123Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4082.25,\n      },\n      {\n        \"amount\": 63390,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.761287Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.751Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4083.75,\n      },\n      {\n        \"amount\": 8170,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.762638Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 41780,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.769736Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.758Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776096Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776096Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384652,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3330356,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1782233,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 827969,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 341704,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776133Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 853467,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776146Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 337704,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 337414,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776149Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776149Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 957820,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 550531,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 313969,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 451915,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776152Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 955620,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 548331,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 311769,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 449715,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776155Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776155Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 855867,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776158Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776158Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 848756,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 381644,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 814344,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 957556,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 307705,\n        \"price\": 3957,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 541930,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776168Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776176Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776176Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 858267,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776178Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776178Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 860667,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776181Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 863067,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776183Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776183Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 866267,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50407,\n        \"price\": 4134.5,\n      },\n      {\n        \"amount\": 1410144,\n        \"price\": 4134,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776188Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869467,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 364880,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776202Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776202Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 372880,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776209Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776209Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 218680,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776211Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776211Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383880,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1168120,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776219Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 79538,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776221Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1171120,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776223Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776223Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776229Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776229Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 870767,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776234Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590990,\n        \"price\": 4109.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776251Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 222680,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 333414,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776284Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776284Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383390,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 175947,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 318674,\n        \"price\": 4124,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 175504,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776289Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 220367,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 178113,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 252915,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3328190,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 625715,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 811249,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 613386,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 955390,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 546165,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1780067,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 346790,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 653067,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 381224,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 355908,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 220514,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776317Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776317Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.785962Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.776Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 66130,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.790857Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.781Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9170,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.800798Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.783Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50700,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 147540,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.800849Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.785Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 51400,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.800864Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 32100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 33330,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.801295Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.791Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 6410,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.803571Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 36530,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.807129Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 553,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8a6d67af-1d2b-6a2e-2685-6c0cb70b7bf2\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.139Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c2d774ab-d77b-5c1b-72b8-7459a3f10300\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.139Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9847b1e3-de31-9af3-0a5d-9a0ad2dc9582\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.139Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2d871865-b6c8-8140-00a2-f03d20d7d38b\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.139Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7e267b2c-76b6-53bd-7253-2270bd71be88\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.139Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 9447,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fb4f2f35-adbf-6a8d-074a-7abed540cf0f\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.139Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 86822,\n        \"price\": 4112.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 274082,\n        \"price\": 4061.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808217Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808217Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 8000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"394399b4-7fd2-098e-2694-91b7b0e9982a\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808228Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.161Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16553,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1195610,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808239Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808239Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1220120,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808241Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808241Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808244Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1220608,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808246Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808246Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1229552,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808249Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808249Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1238650,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808252Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808252Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1246023,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1254921,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808272Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1263624,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1246514,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1775989,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808277Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1247514,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808280Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808280Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874791,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808282Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 515177,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 490686,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808289Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450685,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808295Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 11650,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 66700,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.813144Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.815172Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 792010,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835846Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 701943,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1230386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1793117,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835911Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1233106,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835923Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 67009,\n        \"price\": 4047.5,\n      },\n      {\n        \"amount\": 222994,\n        \"price\": 4045.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835927Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835927Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 681592,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 591521,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1233406,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835936Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835936Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 501446,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835948Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835948Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 440274,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835952Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835952Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1223406,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1803117,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835956Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835956Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377224,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 543143,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1373406,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835965Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1376406,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835968Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1359268,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1820255,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835976Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1269200,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1259200,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1830255,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835988Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835988Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835996Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835996Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1198027,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836000Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1107955,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836006Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 886276,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836010Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836010Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 876276,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1840255,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 786200,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836021Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836021Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384564,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3328102,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1779979,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 827793,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 383562,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 703418,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836030Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836030Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 683066,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836042Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1841555,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836048Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836048Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1858613,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 633066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1908613,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 436290,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836065Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1925683,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836073Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 436310,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836076Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836076Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 583066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1975683,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836080Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836080Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836093Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 573066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1985683,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836096Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836096Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2002765,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836099Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 228906,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836119Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 236857,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836123Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 154996,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 311805,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2004065,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838845Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 436410,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838868Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838868Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 401385,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838876Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2020332,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838878Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838878Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2037426,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838895Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838895Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248906,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838897Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838897Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33201,\n        \"price\": 3927.5,\n      },\n      {\n        \"amount\": 127117,\n        \"price\": 3926.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838900Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838900Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 718603,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 729643,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838903Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838903Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 436430,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838905Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838905Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2053674,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838907Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838907Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2070780,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838909Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838909Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2084280,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838911Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 14,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 15,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838924Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 178098,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838928Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838928Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 436450,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 436462,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 2560,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.844958Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.835Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 433262,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.855710Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.855710Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2101428,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.860009Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.860009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 307160,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.863659Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2118546,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.866170Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.866170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 493848,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.868349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.868349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1420,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 30480,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.868814Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 97540,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.875281Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.862Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 25060,\n        \"price\": 4086.25,\n      },\n      {\n        \"amount\": 1420,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.875337Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249906,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.879165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.879165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4083.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.885406Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.867Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 431962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.887031Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.887031Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 450,\n        \"price\": 4074.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.887201Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 132030,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.889299Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.879Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550443,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.889760Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.889760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379889,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.891326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.891326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 429562,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.894743Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.894743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2040,\n        \"price\": 4102.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.899647Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.889Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 378890,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.901840Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.901840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112240,\n        \"price\": 4199.5,\n      },\n      {\n        \"amount\": 377365,\n        \"price\": 4198.5,\n      },\n      {\n        \"amount\": 150081,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 399540,\n        \"price\": 4196.5,\n      },\n      {\n        \"amount\": 20755,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4194.5,\n      },\n      {\n        \"amount\": 12919,\n        \"price\": 4193.5,\n      },\n      {\n        \"amount\": 72742,\n        \"price\": 4192.5,\n      },\n      {\n        \"amount\": 20803,\n        \"price\": 4191.5,\n      },\n      {\n        \"amount\": 149448,\n        \"price\": 4190.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 249706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 570491,\n        \"price\": 3987,\n      },\n      {\n        \"amount\": 395307,\n        \"price\": 3986,\n      },\n      {\n        \"amount\": 1650006,\n        \"price\": 3985,\n      },\n      {\n        \"amount\": 181921,\n        \"price\": 3984,\n      },\n      {\n        \"amount\": 681391,\n        \"price\": 3983,\n      },\n      {\n        \"amount\": 305942,\n        \"price\": 3982,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.904782Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.904782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 413681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.918774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.918774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 408172,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2139936,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.923414Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.923414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2222749,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.933270Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.933270Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.935957Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.935957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.945769Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.945769Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 101800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 71910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.949597Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.940Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.950425Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.950425Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81450,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 25140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.952064Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.942Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2243130,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.956745Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.956745Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 405772,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.961121Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.961121Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384379,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.966277Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.966277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 362987,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.969787Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.969787Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18750,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.969989Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.960Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341596,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.972765Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.972765Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 81800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 24090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.973104Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.963Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 16420,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.974323Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15720,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.976066Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.966Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61450,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 45140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.978683Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 256476,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2328250,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.978744Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.978744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 44090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.980658Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.970Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2331250,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.981222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.981222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3750,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 30720,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.982915Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2421329,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.983128Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.983128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41450,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 65140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.984607Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.975Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 26410,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.986361Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.977Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 256496,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.989190Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.989190Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51720,\n        \"price\": 4104.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.990257Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.978Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.991250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.991250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4000,\n        \"price\": 4106.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.992775Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.982Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 235102,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.995350Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.995350Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.003057Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.003057Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2511410,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.003059Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.003059Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3600,\n        \"price\": 4075.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.007352Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.985Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2930,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.008845Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:14.999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.009606Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.009606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.017222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.017222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2514410,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.021701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.021701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2604493,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.024374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.024374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2609493,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.032238Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.032238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2614493,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.044536Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.044536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 29910,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.044708Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.034Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132540,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 66400,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.047721Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51400,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 76720,\n        \"price\": 4104.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.051234Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.040Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2675671,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.053579Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.053579Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70306,\n        \"price\": 4125.5,\n      },\n      {\n        \"amount\": 574006,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.053609Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.053609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.056815Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.056815Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65770,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 37330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.057344Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26980,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 34220,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.059766Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 400523,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 574056,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.061062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.061062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 35770,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 67330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.061725Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.052Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 451550,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 81400,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.064627Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.054Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66140,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.116132Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.104Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 436550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.120045Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5770,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.122579Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 421550,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 147540,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.125157Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 226514,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.127304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 452571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 2797156,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.127333Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127333Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2814298,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.127339Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 452573,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.127349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2847302,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.127353Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38010,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 35770,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.128539Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.118Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4071.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.193294Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.182Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44290,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.196094Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4069.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.198303Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4068.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.202290Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 85500,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.262463Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 327160,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.266091Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.256Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 347160,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.287820Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.268Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100500,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.312920Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 97330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.315591Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9910,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 103060,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.318254Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.309Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 367160,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.321548Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6410,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 5140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.323145Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 247450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.348589Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 134030,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.350477Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18850,\n        \"price\": 4083.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.351977Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.342Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4109.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.367262Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2640,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1490,\n        \"price\": 4074.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.371545Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.362Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131090,\n        \"price\": 4081.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.387428Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.378Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 24150,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.396001Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.379Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4073.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.457060Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77000,\n        \"price\": 4111.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.461248Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.449Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 81370,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.470281Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.453Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20060,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 50890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.470701Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.457Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96400,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 425650,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.471175Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.458Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66180,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.516232Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.506Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81400,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.575371Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.557Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.593974Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.585Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 98040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.597732Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.600848Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 37330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 68010,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.611179Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.601Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132540,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 440650,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.612363Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.602Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66400,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 147540,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.615088Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.605Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5770,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 98010,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.616458Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44250,\n        \"price\": 4011,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.633290Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.622Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 3984,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.637850Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.625Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51400,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 162540,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.646926Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.635Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78010,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.648179Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 246750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 78710,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.659632Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 35770,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.661801Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.652Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 66800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.676214Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.665Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 86800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.678135Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177540,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.735400Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.702Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65770,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.737447Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.723Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1440,\n        \"price\": 4074.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.741000Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 31630,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.741771Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.732Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 24090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.954524Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.945Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 44090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.959055Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.949Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3600,\n        \"price\": 4068.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.963037Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:15.952Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18200,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.017689Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2010,\n        \"price\": 4066.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.053034Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.040Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1500,\n        \"price\": 4074.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.110385Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48710,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 95770,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.110434Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.091Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1560,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 17400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.155043Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.144Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40520,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 28190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.174624Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64950,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 18630,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.175768Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 41750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.178569Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.169Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8170,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 8940,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.182384Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.172Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 66800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.295572Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 234000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.318632Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 86800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.320738Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.309Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 464650,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.325098Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41350,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.366521Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 460550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.375182Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4102.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.375540Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.364Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24150,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.401613Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 74720,\n        \"price\": 4104.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.460300Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.450Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4106.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.461960Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.452Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4075.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.464053Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.455Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12200,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.476340Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49720,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 76400,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.488980Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.479Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 280,\n        \"price\": 4074.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.497806Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.487Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51200,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.553684Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 161940,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.556334Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.546Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10,\n        \"price\": 4066.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.563923Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 347160,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 25140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.605777Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.596Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327160,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 45140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.616081Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.603Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 71750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.638714Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 9910,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.640083Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.630Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24360,\n        \"price\": 4086.25,\n      },\n      {\n        \"amount\": 51390,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.642582Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.632Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83060,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 29910,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.678741Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 307160,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 61640,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.717418Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.707Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 32640,\n        \"price\": 4079.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.833653Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6550,\n        \"price\": 4102.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.848721Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.837Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 24300,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.868012Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.858Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64980,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.973954Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.964Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51180,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:16.993921Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:16.985Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47700,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.047202Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4104.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.058303Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2180,\n        \"price\": 4107,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.058364Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4075.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.060329Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.048Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 55280,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.060735Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.051Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20060,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 90890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.064302Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.055Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3090,\n        \"price\": 4066.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.072033Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41750,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 276750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.183292Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.172Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 162540,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 113040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.186082Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 93040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 84540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.189750Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.179Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 73040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 61750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.197518Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 147540,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 43190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.200086Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445550,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 88040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.201999Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23190,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 104540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.205227Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 31750,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 306750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.207132Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 74540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 113060,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.209158Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.199Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.235496Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.225Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132540,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.238821Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.228Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.240472Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.231Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64940,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.353713Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 55290,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.359543Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.350Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.410606Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.413591Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.402Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 336750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.415007Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.405Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7940,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 8500,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.432126Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4074.25,\n      },\n      {\n        \"amount\": 1220,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.568867Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.542Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 421550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 210000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.602213Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.542Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 70890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 24090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.634630Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.624Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 101700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.635772Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.626Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 327160,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.648785Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 44090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.653399Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.644Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 26410,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 25140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.655626Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5140,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 121700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.667268Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.657Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6410,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 133060,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.696526Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24630,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.700980Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 17400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1230,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.745992Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.750160Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.740Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 306750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.757601Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75040,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 132600,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.758561Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.747Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 11750,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 43190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.781735Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 28190,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 147540,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.785697Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.775Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.788516Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.778Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 103060,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 94540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.791127Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 55300,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.792654Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.783Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 276750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 124540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.795470Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.785Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 436550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.796135Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.786Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 162540,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.798184Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 246750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 41750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.801175Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.790Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.808923Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 55930,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.822197Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47050,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 16340,\n        \"price\": 4082.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.845096Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.835Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4079.25,\n      },\n      {\n        \"amount\": 32640,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.846408Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.837Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21610,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.875909Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177540,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.897760Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 154540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:17.903751Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.891Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177740,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.009715Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:17.999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 184620,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.018028Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 48180,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.092329Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.075Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 28180,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 23750,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.125305Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 48180,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.144244Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.134Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 28180,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 43750,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.152135Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.162694Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 55310,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.228911Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 124540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 71750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.311614Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 162740,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 451550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.322418Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 147740,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.327237Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.327330Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132740,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 466550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.334793Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 101750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.348257Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.413849Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.403Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 23750,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 66800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.427388Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.417Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 20060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.434253Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8180,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 66800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.435154Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3750,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 86800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.455423Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.446Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 481550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.460700Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.462979Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.453Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33980,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.498689Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.489Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64920,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.617590Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.583Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 55270,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.661199Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.630Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 191418,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.707187Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.707187Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54570,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.709120Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.700Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 479205,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 250075,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 628078,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 509697,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 358434,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 155201,\n        \"price\": 4106.5,\n      },\n      {\n        \"amount\": 383064,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 287108,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 812844,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 136596,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 248952,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 224038,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 362223,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 96442,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 234970,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 218867,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 176598,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 251415,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 354408,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 225014,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 492348,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 331914,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 663982,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.719992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.719992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238915,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 822793,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222514,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 170947,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 348840,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.723043Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.723043Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2851301,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.730843Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.730843Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.733843Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.733843Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52700,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.736142Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2875811,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.736920Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.736920Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2895811,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.741226Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.741226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131050,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.751004Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.741Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.752477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.752477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 541165,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1774979,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 326914,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.757867Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.757867Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215135,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.759708Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.759708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215155,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.761228Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.761228Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2912078,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.776285Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.776285Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215175,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.785001Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.785001Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2024723,\n        \"price\": 4180,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.786756Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.786756Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 97060,\n        \"price\": 3507,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.792812Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.792812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2922078,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.798668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.798668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 354708,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.803015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.803015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.806028Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.806028Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383262,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.807355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.807355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213875,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.811820Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.811820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102360,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 65240,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.813966Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.785Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213895,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.814379Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.814379Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.816552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.816552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 466550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.816969Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213915,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.818498Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.818498Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101050,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.821644Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.811Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213935,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.828360Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.828360Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 454184,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.829851Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.829851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241062,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 152374,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 234664,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 103204,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 223375,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 241813,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 627647,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 614674,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 541809,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 347434,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 377546,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 550765,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.831821Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.831821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 400519,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 213937,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.834411Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.834411Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16130,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 8170,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.836211Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 399719,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.837361Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.837361Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 247450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.840605Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 7840,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.842529Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 212637,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.843152Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.843152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 492310,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 78076,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 170871,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 155072,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 136968,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 449829,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 86282,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 160583,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 139721,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 251679,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.843180Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.843180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 35530,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 7410,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.844789Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.835Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 451550,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 43190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.848817Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.836Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10950,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 67400,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.848873Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.838Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 71050,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 132360,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.850362Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53400,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.853216Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.842Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 360708,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.854366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.854366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23190,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 91050,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.855443Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61050,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 277450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.860709Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.848Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377262,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.863674Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.863674Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123204,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 186598,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 594674,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 1764979,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 624279,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 305318,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 560476,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 335917,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.863696Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.863696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 234000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.864174Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 436550,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 53040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.866396Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 421550,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 68040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.868084Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.858Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.871396Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.871396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.872426Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.860Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 31050,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 307450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.873959Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 235857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.874157Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.874157Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 398719,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.876253Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.876253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 199137,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.877654Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.877654Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2956198,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.884457Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.884457Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197837,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.893767Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.893767Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 40060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.894219Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.884Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64220,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 740,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.900318Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.890Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197857,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.902872Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.902872Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2969698,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.909939Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.909939Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 396719,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.911107Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.911107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 60060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.916762Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.905Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.918722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.918722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 196557,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.929045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.929045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 196577,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.937316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.937316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40060,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 28170,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.938662Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.927Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 815026,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.938811Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.938811Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231039,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.943797Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.943797Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 453687,\n        \"price\": 4120.5,\n      },\n      {\n        \"amount\": 245747,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 195852,\n        \"price\": 4065.5,\n      },\n      {\n        \"amount\": 133226,\n        \"price\": 4056.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.950035Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.950035Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 521379,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.952454Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.952454Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2976941,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.958368Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.958368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 352708,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.960002Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.960002Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 397719,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.962301Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.962301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.964125Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.964125Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.966070Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.966070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 60060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.967044Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.951Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 196597,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.970660Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.970660Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 235846,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.972261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.972261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 550476,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 170583,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.973365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.973365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 195297,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.976903Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.976903Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1500,\n        \"price\": 4376.5,\n      },\n      {\n        \"amount\": 18254,\n        \"price\": 4373.5,\n      },\n      {\n        \"amount\": 915,\n        \"price\": 4346.5,\n      },\n      {\n        \"amount\": 121560,\n        \"price\": 4342.5,\n      },\n      {\n        \"amount\": 806,\n        \"price\": 4315.5,\n      },\n      {\n        \"amount\": 11875,\n        \"price\": 4312.5,\n      },\n      {\n        \"amount\": 8755,\n        \"price\": 4284.5,\n      },\n      {\n        \"amount\": 35438,\n        \"price\": 4281.5,\n      },\n      {\n        \"amount\": 15200,\n        \"price\": 4254.5,\n      },\n      {\n        \"amount\": 31111,\n        \"price\": 4250.5,\n      },\n      {\n        \"amount\": 31078,\n        \"price\": 4223.5,\n      },\n      {\n        \"amount\": 44855,\n        \"price\": 4219.5,\n      },\n      {\n        \"amount\": 72242,\n        \"price\": 4192.5,\n      },\n      {\n        \"amount\": 185119,\n        \"price\": 4189.5,\n      },\n      {\n        \"amount\": 167115,\n        \"price\": 4162.5,\n      },\n      {\n        \"amount\": 198020,\n        \"price\": 4158.5,\n      },\n      {\n        \"amount\": 290798,\n        \"price\": 4131.5,\n      },\n      {\n        \"amount\": 222630,\n        \"price\": 4127.5,\n      },\n      {\n        \"amount\": 230977,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 541875,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 136909,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 139782,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 204170,\n        \"price\": 4050.5,\n      },\n      {\n        \"amount\": 67262,\n        \"price\": 4047.5,\n      },\n      {\n        \"amount\": 240748,\n        \"price\": 4019.5,\n      },\n      {\n        \"amount\": 640957,\n        \"price\": 4016.5,\n      },\n      {\n        \"amount\": 36128,\n        \"price\": 3989.5,\n      },\n      {\n        \"amount\": 132067,\n        \"price\": 3985.5,\n      },\n      {\n        \"amount\": 50725,\n        \"price\": 3958.5,\n      },\n      {\n        \"amount\": 86354,\n        \"price\": 3954.5,\n      },\n      {\n        \"amount\": 32736,\n        \"price\": 3927.5,\n      },\n      {\n        \"amount\": 10015,\n        \"price\": 3924.5,\n      },\n      {\n        \"amount\": 18449,\n        \"price\": 3897.5,\n      },\n      {\n        \"amount\": 18664,\n        \"price\": 3893.5,\n      },\n      {\n        \"amount\": 27008,\n        \"price\": 3866.5,\n      },\n      {\n        \"amount\": 24708,\n        \"price\": 3862.5,\n      },\n      {\n        \"amount\": 19769,\n        \"price\": 3835.5,\n      },\n      {\n        \"amount\": 34826,\n        \"price\": 3832.5,\n      },\n      {\n        \"amount\": 22883,\n        \"price\": 3805.5,\n      },\n      {\n        \"amount\": 57085,\n        \"price\": 3801.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.979357Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.979357Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 304073,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.983081Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.983081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 195317,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.987173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.987173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.991415Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 32640,\n        \"price\": 4079.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.991426Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.978Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194017,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.993755Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.993755Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 187183,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.000684Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.000684Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 337450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.000758Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:18.990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5140,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 31630,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.073415Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.064Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26980,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.074732Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64210,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.077035Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54590,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.084300Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.074Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6410,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 328160,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.215519Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.192Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40060,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.221282Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.200Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20060,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.242211Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8170,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 27840,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.250432Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 131910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.269122Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.249Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4079.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.290343Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50490,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 136840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.348601Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.338Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 311780,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 148740,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.351531Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46390,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 140940,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.353176Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.386498Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3011109,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.781582Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.781582Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152979,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.781596Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.781596Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.781599Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.781599Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248736,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790700Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790700Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 142452,\n        \"price\": 4216.5,\n      },\n      {\n        \"amount\": 18580,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 867295,\n        \"price\": 4175,\n      },\n      {\n        \"amount\": 913727,\n        \"price\": 4155,\n      },\n      {\n        \"amount\": 49537,\n        \"price\": 4134.5,\n      },\n      {\n        \"amount\": 256243,\n        \"price\": 4114.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1030989,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 192353,\n        \"price\": 4054,\n      },\n      {\n        \"amount\": 338643,\n        \"price\": 4034.5,\n      },\n      {\n        \"amount\": 44399,\n        \"price\": 4014.5,\n      },\n      {\n        \"amount\": 477027,\n        \"price\": 3995,\n      },\n      {\n        \"amount\": 56557,\n        \"price\": 3975.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790736Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1663422,\n        \"price\": 4129,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790745Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790745Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175435,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790748Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790748Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790763Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027682,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790789Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790789Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 395973,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790791Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790791Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 395873,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 520744,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790796Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 210392,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266585,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 1951922,\n        \"price\": 4130,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.796491Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.796491Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 395748,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.796496Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.796496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.796500Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.796500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 276054,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 246514,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.802472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.802472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 246914,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 275554,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.808114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.808114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027702,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.818414Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.818414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 550376,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.826067Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.826067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 246864,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 520794,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.829035Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.829035Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 174459,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 428480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 549427,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.829068Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.829068Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 542054,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.829071Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.829071Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 427480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 543054,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.832194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.832194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185418,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.832197Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.832197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.832199Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.832199Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027722,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.832202Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.832202Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 729274,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 247233,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.832207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.832207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063356,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.844024Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.844024Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 548059,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.846783Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.846783Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.872999Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.872999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64240,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.883842Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46380,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.883958Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.484Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4192.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.896360Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30350,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 83740,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.896851Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.925616Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 361690,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.925637Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.825Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64250,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.925791Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.925808Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128740,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 26410,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.925829Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46390,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.925869Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 24090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.925897Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.870Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 291780,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 25140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.925957Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.873Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 52030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.926049Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.884Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 45140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.926098Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.901Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32640,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.932541Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 71910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 72030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.932570Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.912Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 29910,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.933818Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.925Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 61640,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.939790Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50490,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.969124Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331690,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 60350,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.973313Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.964Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68740,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 151840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.976713Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.967Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53740,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.978981Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.969Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 301690,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.982856Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:19.973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063376,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.984646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.984646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1056819,\n        \"price\": 4041,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.992595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.992595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 348860,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.996650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.996650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157567,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.004622Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.004622Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 169916,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.006531Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.006531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 900,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.021210Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8190,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 166840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.023230Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98740,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 95240,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.028478Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.044935Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.044935Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 234576,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.052091Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.052091Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40350,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 28190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.080356Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38740,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 460550,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.083148Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 271690,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 70350,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.087488Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2553,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a1d18041-a1c8-5c0a-e3f1-af240ae09f81\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8f01e8ae-39d4-4686-3de8-60d5597b1ed0\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 21,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9921abb4-b177-89bf-8ad6-1b05ffe71fb4\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9c749853-7858-f32e-8795-d3207cbc0741\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 34,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d1f763ae-14cb-495b-5032-50e3c7d04e6f\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 4938,\n    \"exchange\": \"bitmex\",\n    \"id\": \"01b63807-a75f-c2b4-2dc0-a44755763b08\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.106714Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.096Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100350,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.110150Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 300,\n        \"price\": 4081.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.112508Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.129242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 301043,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.129275Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129275Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2824602,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.129279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238774,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.129281Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2313895,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 749481,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.129290Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129290Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 824696,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.129293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 173930,\n        \"price\": 4081.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.141274Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34340,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 47380,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.145464Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 116780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.146631Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 270240,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.152590Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.161653Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 269540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 28890,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.175226Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.189182Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 72030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.192180Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.183Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 131910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.195158Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10250,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 68100,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.203181Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.192Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64210,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.317143Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.307Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 43140,\n        \"price\": 4081.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.322037Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50480,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.323328Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.314Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 130790,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.350726Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107600,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 83800,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.390254Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.380Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 26000,\n        \"price\": 4040.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.489119Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.479Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 272043,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.494109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.494109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 844696,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.494112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.494112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 272013,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.494120Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.494120Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845626,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.494122Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.494122Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 271763,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.496749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.496749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 271513,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.504830Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.504830Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 261513,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.504909Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.504909Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 261113,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.507591Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.507591Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.510331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.510331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2064818,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1019488,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.514198Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.514198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1043998,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.515579Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.515579Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1052994,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.517082Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.517082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1062148,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.520556Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.520556Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1071017,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.520571Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.520571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1079699,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.522670Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.522670Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1637767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1506750,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.536827Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.536827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.541341Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 822693,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.553334Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.553334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 245233,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 409964,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.555256Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.555256Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 718593,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.559513Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.559513Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 173930,\n        \"price\": 4081.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.570185Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68159,\n        \"price\": 4271,\n      },\n      {\n        \"amount\": 11275,\n        \"price\": 4253,\n      },\n      {\n        \"amount\": 92273,\n        \"price\": 4235,\n      },\n      {\n        \"amount\": 58483,\n        \"price\": 4217,\n      },\n      {\n        \"amount\": 301640,\n        \"price\": 4199,\n      },\n      {\n        \"amount\": 51620,\n        \"price\": 4181,\n      },\n      {\n        \"amount\": 227529,\n        \"price\": 4163,\n      },\n      {\n        \"amount\": 998575,\n        \"price\": 4145,\n      },\n      {\n        \"amount\": 576034,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 474980,\n        \"price\": 4109,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.570341Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.570341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 51180,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.575924Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4267.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.578641Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.578641Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10522,\n        \"price\": 4287.5,\n      },\n      {\n        \"amount\": 128057,\n        \"price\": 4248,\n      },\n      {\n        \"amount\": 264167,\n        \"price\": 4228.5,\n      },\n      {\n        \"amount\": 38022,\n        \"price\": 4209,\n      },\n      {\n        \"amount\": 316966,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 161560,\n        \"price\": 4169.5,\n      },\n      {\n        \"amount\": 8121921,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 331163,\n        \"price\": 4130.5,\n      },\n      {\n        \"amount\": 132911,\n        \"price\": 4110.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.579976Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.579976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241576,\n        \"price\": 4279,\n      },\n      {\n        \"amount\": 24237,\n        \"price\": 4260.5,\n      },\n      {\n        \"amount\": 95236,\n        \"price\": 4241.5,\n      },\n      {\n        \"amount\": 74403,\n        \"price\": 4222.5,\n      },\n      {\n        \"amount\": 54667,\n        \"price\": 4204,\n      },\n      {\n        \"amount\": 459822,\n        \"price\": 4185,\n      },\n      {\n        \"amount\": 213117,\n        \"price\": 4166.5,\n      },\n      {\n        \"amount\": 470165,\n        \"price\": 4147.5,\n      },\n      {\n        \"amount\": 266802,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 1765045,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.583938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.583938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266318,\n        \"price\": 4275,\n      },\n      {\n        \"amount\": 354418,\n        \"price\": 4256.5,\n      },\n      {\n        \"amount\": 26090,\n        \"price\": 4238.5,\n      },\n      {\n        \"amount\": 1260098,\n        \"price\": 4220,\n      },\n      {\n        \"amount\": 11683,\n        \"price\": 4201.5,\n      },\n      {\n        \"amount\": 152470,\n        \"price\": 4183,\n      },\n      {\n        \"amount\": 73609,\n        \"price\": 4164.5,\n      },\n      {\n        \"amount\": 1924711,\n        \"price\": 4146,\n      },\n      {\n        \"amount\": 979805,\n        \"price\": 4128,\n      },\n      {\n        \"amount\": 586492,\n        \"price\": 4109.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.591036Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.591036Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58800,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 132600,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.593004Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.582Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 57893,\n        \"price\": 4263,\n      },\n      {\n        \"amount\": 29094,\n        \"price\": 4245.5,\n      },\n      {\n        \"amount\": 260731,\n        \"price\": 4228.5,\n      },\n      {\n        \"amount\": 21039,\n        \"price\": 4211.5,\n      },\n      {\n        \"amount\": 179108,\n        \"price\": 4194,\n      },\n      {\n        \"amount\": 574494,\n        \"price\": 4177,\n      },\n      {\n        \"amount\": 155722,\n        \"price\": 4159.5,\n      },\n      {\n        \"amount\": 209688,\n        \"price\": 4142.5,\n      },\n      {\n        \"amount\": 66870,\n        \"price\": 4125.5,\n      },\n      {\n        \"amount\": 624642,\n        \"price\": 4108,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.597043Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.597043Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 244233,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.610149Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.610149Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.612592Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.603Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 66800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.614446Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.605Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 136780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.615826Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 156780,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.618157Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.608Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2096827,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.642274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.642274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 273554,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.642304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.642304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 71910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 86800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.661877Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 118740,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.662396Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.623Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23440,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.662868Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.625Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 26410,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 5140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.663097Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.632Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 369687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.663821Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.663821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 157640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.664101Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.643Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 20060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.664745Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.652Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6410,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 291690,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.665206Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.666341Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.657Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233904,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 998155,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.670344Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.670344Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.673995Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.673995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27491,\n        \"price\": 4213.5,\n      },\n      {\n        \"amount\": 98791,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 182933,\n        \"price\": 4172,\n      },\n      {\n        \"amount\": 447576,\n        \"price\": 4151,\n      },\n      {\n        \"amount\": 331103,\n        \"price\": 4130.5,\n      },\n      {\n        \"amount\": 1765015,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 598057,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 81375,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 255673,\n        \"price\": 4029,\n      },\n      {\n        \"amount\": 171649,\n        \"price\": 4009,\n      },\n      {\n        \"amount\": 279818,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 42807,\n        \"price\": 3969.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.680675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.680675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70350,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.684078Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.674Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64240,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.690009Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.693553Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.683Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1300469,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 1951672,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 2331309,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 1764765,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 3327852,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 521129,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1500743,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1177910,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1843762,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 2722951,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.694207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.694207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51250,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.697273Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184983,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 456139,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 288705,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 317178,\n        \"price\": 3964,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.698566Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.698566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749487,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 683021,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.702783Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.702783Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1157451,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 1764705,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 812784,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 3327792,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 729214,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 326854,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 521069,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 950908,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1500683,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 682961,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.708056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.708056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2330643,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 3327126,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1177244,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2722285,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.711711Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.711711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 538673,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 2087958,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.718825Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.718825Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 173618,\n        \"price\": 5000,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 102294,\n        \"price\": 1000,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.720152Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.720152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8121621,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 749187,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 3326826,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1843462,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 1908066,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 1754910,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 508157,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 1610896,\n        \"price\": 3950,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.724135Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.724135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 376546,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.748131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.748131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 529970,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 2079276,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.753781Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.753781Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107600,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 83800,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.754863Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550661,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.755939Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.755939Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72655,\n        \"price\": 3884.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.756740Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.756740Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 8330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.764589Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 185850,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.770337Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 69120,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 39270,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.772188Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550581,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.773016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.773016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 29000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c700fbd1-f7bf-857b-6687-00f09968adb5\",\n    \"localTimestamp\": 2019-04-01T00:00:20.774965Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.373Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1a8b354e-09a2-1f1a-043f-d552c1f519d8\",\n    \"localTimestamp\": 2019-04-01T00:00:20.786410Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.384Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 250,\n    \"exchange\": \"bitmex\",\n    \"id\": \"302f6a40-07e3-7c50-25e9-32e7ea37e820\",\n    \"localTimestamp\": 2019-04-01T00:00:20.786441Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.392Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 250,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af99dcf0-f0fb-85e0-3585-6b6ec2638af8\",\n    \"localTimestamp\": 2019-04-01T00:00:20.786445Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.405Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5d46f131-a8a7-6f6e-d367-b3d7fc51b666\",\n    \"localTimestamp\": 2019-04-01T00:00:20.786448Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.414Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e6dfe393-c1f3-0cc6-ce2f-584e5387d011\",\n    \"localTimestamp\": 2019-04-01T00:00:20.786459Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.425Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58800,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 132600,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.792788Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.783Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 25000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6eb4d999-c285-37a5-2e0a-580a1de74b1b\",\n    \"localTimestamp\": 2019-04-01T00:00:20.796738Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.431Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 299540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.817109Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.806Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181140,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 461250,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.868668Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 544581,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 83282,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.885680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.885680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50550,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 181840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.888336Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.878Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 70120,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.890630Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.881Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33640,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 7110,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.892908Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.883Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52700,\n        \"price\": 4099.75,\n      },\n      {\n        \"amount\": 740,\n        \"price\": 4097.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.895179Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.886Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.918556Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.906Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.942588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.942588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.955465Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.946Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 131910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.958207Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.948Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 52030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.978204Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758979,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.980396Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.980396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6630,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.989876Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:20.981Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 15,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.001031Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.001031Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 16,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.001062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.001062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 235813,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.001930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.001930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.009147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.009147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 206909,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.025127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.025127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66572,\n        \"price\": 4140.5,\n      },\n      {\n        \"amount\": 185726,\n        \"price\": 4127.5,\n      },\n      {\n        \"amount\": 419250,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 149725,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 106141,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 244151,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 124366,\n        \"price\": 4058.5,\n      },\n      {\n        \"amount\": 45319,\n        \"price\": 4048.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.028797Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.028797Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 530404,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036329Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 151980,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 729199,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036339Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 346708,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036341Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 363262,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036343Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 339708,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036345Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036345Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 486310,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036347Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036347Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 802693,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 204175,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 382933,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 627566,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 376497,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 244201,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036359Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758969,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 363252,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036361Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036361Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 367145,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 486294,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 326838,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 136877,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 304041,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 272316,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 125792,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.047173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.047173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231904,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 626566,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 168916,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 484294,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 325838,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.047176Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.047176Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 166840,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 65550,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.051261Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 269540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 37330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.055933Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.056235Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.056235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 179418,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.056271Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.056271Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 531766,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.078762Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.078762Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 446250,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.083788Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.054Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 6680,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.083910Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.074Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40120,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 299540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.089991Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.080Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64220,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.091632Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10120,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 329540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.098789Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.087Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.112966Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 446180,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.132952Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.105Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 70,\n    \"exchange\": \"deribit\",\n    \"id\": \"16992536\",\n    \"localTimestamp\": 2019-04-01T00:00:21.134068Z,\n    \"price\": 4092,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.105Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 480,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e6f2935e-130f-16fa-a72a-5f2854020a8c\",\n    \"localTimestamp\": 2019-04-01T00:00:21.162267Z,\n    \"price\": 4089.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.750Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 951340,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 372897,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 541431,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 799993,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 241951,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 271754,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 167566,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 233676,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 366782,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 148830,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 321788,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162325Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149690,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 303936,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 212757,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 328511,\n        \"price\": 4061,\n      },\n      {\n        \"amount\": 1056714,\n        \"price\": 4041,\n      },\n      {\n        \"amount\": 1322982,\n        \"price\": 4011,\n      },\n      {\n        \"amount\": 443761,\n        \"price\": 3961,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162329Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bdb2bff2-52bd-762d-b7c6-558e2f57824a\",\n    \"localTimestamp\": 2019-04-01T00:00:21.162332Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.795Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1435563,\n        \"price\": 4070,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162334Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522822,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 2069800,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162341Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162344Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162344Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233629,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162346Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162346Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 271679,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 167491,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 233554,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162373Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162373Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1753969,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 794993,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 332454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 316788,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162376Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"431e63d3-c2d6-ab70-ef30-61ddacdf579c\",\n    \"localTimestamp\": 2019-04-01T00:00:21.205207Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.874Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2434,\n    \"exchange\": \"bitmex\",\n    \"id\": \"30fb908c-6edc-41ff-5d3b-f3909b37a8b3\",\n    \"localTimestamp\": 2019-04-01T00:00:21.205207Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.874Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 72030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.238013Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.228Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 24090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.252531Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.241Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 816,\n    \"exchange\": \"bitmex\",\n    \"id\": \"67e87ae8-9feb-c478-845b-884bf7f1e8be\",\n    \"localTimestamp\": 2019-04-01T00:00:21.253583Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.962Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233435,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.264024Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.264024Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 728732,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.267853Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.267853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 71910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 92030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.270228Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.256Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.312210Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 133980,\n        \"price\": 4091.75,\n      },\n      {\n        \"amount\": 161990,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.325584Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.306Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 270679,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.326615Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.326615Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153772,\n        \"price\": 4169,\n      },\n      {\n        \"amount\": 192417,\n        \"price\": 4167,\n      },\n      {\n        \"amount\": 535283,\n        \"price\": 4165.5,\n      },\n      {\n        \"amount\": 183783,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 116909,\n        \"price\": 4162,\n      },\n      {\n        \"amount\": 97279,\n        \"price\": 4160.5,\n      },\n      {\n        \"amount\": 544168,\n        \"price\": 4159,\n      },\n      {\n        \"amount\": 233135,\n        \"price\": 4157,\n      },\n      {\n        \"amount\": 121197,\n        \"price\": 4155.5,\n      },\n      {\n        \"amount\": 114075,\n        \"price\": 4154,\n      },\n      {\n        \"amount\": 1601254,\n        \"price\": 4152,\n      },\n      {\n        \"amount\": 103154,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 637367,\n        \"price\": 4149,\n      },\n      {\n        \"amount\": 453634,\n        \"price\": 4147,\n      },\n      {\n        \"amount\": 473115,\n        \"price\": 4145.5,\n      },\n      {\n        \"amount\": 1781236,\n        \"price\": 4144,\n      },\n      {\n        \"amount\": 390130,\n        \"price\": 4142,\n      },\n      {\n        \"amount\": 65372,\n        \"price\": 4140.5,\n      },\n      {\n        \"amount\": 594696,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 241335,\n        \"price\": 4137,\n      },\n      {\n        \"amount\": 134335,\n        \"price\": 4135.5,\n      },\n      {\n        \"amount\": 1408944,\n        \"price\": 4134,\n      },\n      {\n        \"amount\": 284410,\n        \"price\": 4132,\n      },\n      {\n        \"amount\": 329903,\n        \"price\": 4130.5,\n      },\n      {\n        \"amount\": 1662222,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 184526,\n        \"price\": 4127.5,\n      },\n      {\n        \"amount\": 65670,\n        \"price\": 4125.5,\n      },\n      {\n        \"amount\": 317474,\n        \"price\": 4124,\n      },\n      {\n        \"amount\": 979081,\n        \"price\": 4122.5,\n      },\n      {\n        \"amount\": 452487,\n        \"price\": 4120.5,\n      },\n      {\n        \"amount\": 685025,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 528478,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 409314,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 418050,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 85622,\n        \"price\": 4112.5,\n      },\n      {\n        \"amount\": 244547,\n        \"price\": 4111,\n      },\n      {\n        \"amount\": 473780,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 508497,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 381733,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 247752,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 122004,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 148490,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 625366,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 540675,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 717393,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 540231,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.353679Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.353679Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.361668Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 187735,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.371570Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.371570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 332409,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.377395Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.377395Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 540078,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.381014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.381014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10830,\n        \"price\": 4419,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.427091Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.427091Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 406853,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 379272,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 146029,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 712471,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 169772,\n        \"price\": 3976,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.430687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.430687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.445157Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.445157Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1843062,\n        \"price\": 4050,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.462161Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.462161Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47480,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.477599Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64280,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.525014Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.489Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65490,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.525463Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.497Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 532078,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.533221Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.533221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 512909,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.543344Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.543344Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 166741,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.544914Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.544914Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 66800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.546226Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 20060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.550462Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 66800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.553183Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.543Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 86800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.565057Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1600054,\n        \"price\": 4152,\n      },\n      {\n        \"amount\": 246177,\n        \"price\": 4123,\n      },\n      {\n        \"amount\": 811884,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 531328,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 148080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 271416,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 276808,\n        \"price\": 4055.5,\n      },\n      {\n        \"amount\": 561082,\n        \"price\": 4028.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.584274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.584274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1035168,\n        \"price\": 4188,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.630473Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.630473Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50490,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 196840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.632242Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.623Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 16,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.635447Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.635447Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 17,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.635473Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.635473Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181840,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 461180,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.639040Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.625Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 359540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.639144Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.628Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 329540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 40120,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.641989Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377165,\n        \"price\": 4198.5,\n      },\n      {\n        \"amount\": 399340,\n        \"price\": 4196.5,\n      },\n      {\n        \"amount\": 94486,\n        \"price\": 4194.5,\n      },\n      {\n        \"amount\": 72042,\n        \"price\": 4192.5,\n      },\n      {\n        \"amount\": 149248,\n        \"price\": 4190.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 332209,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395107,\n        \"price\": 3986,\n      },\n      {\n        \"amount\": 181721,\n        \"price\": 3984,\n      },\n      {\n        \"amount\": 305742,\n        \"price\": 3982,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.662238Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.662238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233335,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.691322Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.691322Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241379,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.705347Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.705347Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233235,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.713749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.713749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 186435,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.751361Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.751361Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 147080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331209,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.763600Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.763600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 146980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331109,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.766546Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.766546Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 359151,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.774089Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.774089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 347419,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 225679,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 389799,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.796569Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.796569Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224282,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.827365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.827365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233220,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.839303Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.839303Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 69061,\n        \"price\": 4151.5,\n      },\n      {\n        \"amount\": 317404,\n        \"price\": 4124,\n      },\n      {\n        \"amount\": 811824,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 531278,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 271356,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 276738,\n        \"price\": 4055.5,\n      },\n      {\n        \"amount\": 561002,\n        \"price\": 4028.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.866011Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.866011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64220,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.874791Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 40060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.877962Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.866Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.881205Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.870Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 25140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.884710Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.872Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238801,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.897865Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.897865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 237574,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.903639Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.903639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 60060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.906315Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.896Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98740,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 45140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.909256Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.900Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 236497,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.911639Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.911639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24630,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.912034Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.903Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 338141,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.927834Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.927834Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224182,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.933033Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.933033Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 80060,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.943370Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.934Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 116640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 65140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.947454Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60060,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 28170,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.949563Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.940Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 1600,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.951852Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.942Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 271690,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 27110,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.953478Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.943Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 30610,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.959250Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.950Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4847,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4819,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4791,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4707,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.962685Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.962685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 300,\n        \"price\": 4903,\n      },\n      {\n        \"amount\": 5050,\n        \"price\": 4875,\n      },\n      {\n        \"amount\": 5020,\n        \"price\": 4763,\n      },\n      {\n        \"amount\": 4300,\n        \"price\": 4735,\n      },\n      {\n        \"amount\": 33610,\n        \"price\": 4679,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4651,\n      },\n      {\n        \"amount\": 25550,\n        \"price\": 4624,\n      },\n      {\n        \"amount\": 15700,\n        \"price\": 4596,\n      },\n      {\n        \"amount\": 60400,\n        \"price\": 4568,\n      },\n      {\n        \"amount\": 33850,\n        \"price\": 4540,\n      },\n      {\n        \"amount\": 3811,\n        \"price\": 4512,\n      },\n      {\n        \"amount\": 6202,\n        \"price\": 4484,\n      },\n      {\n        \"amount\": 11468,\n        \"price\": 4456,\n      },\n      {\n        \"amount\": 18338,\n        \"price\": 4428,\n      },\n      {\n        \"amount\": 1295247,\n        \"price\": 4400,\n      },\n      {\n        \"amount\": 20111,\n        \"price\": 4372,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 403161,\n        \"price\": 4004,\n      },\n      {\n        \"amount\": 2524877,\n        \"price\": 3980,\n      },\n      {\n        \"amount\": 307627,\n        \"price\": 3957,\n      },\n      {\n        \"amount\": 578691,\n        \"price\": 3933,\n      },\n      {\n        \"amount\": 85264,\n        \"price\": 3909,\n      },\n      {\n        \"amount\": 168436,\n        \"price\": 3886,\n      },\n      {\n        \"amount\": 141744,\n        \"price\": 3862,\n      },\n      {\n        \"amount\": 260174,\n        \"price\": 3839,\n      },\n      {\n        \"amount\": 286923,\n        \"price\": 3815,\n      },\n      {\n        \"amount\": 170849,\n        \"price\": 3791,\n      },\n      {\n        \"amount\": 51650,\n        \"price\": 3768,\n      },\n      {\n        \"amount\": 155247,\n        \"price\": 3744,\n      },\n      {\n        \"amount\": 405747,\n        \"price\": 3720,\n      },\n      {\n        \"amount\": 119000,\n        \"price\": 3697,\n      },\n      {\n        \"amount\": 53066,\n        \"price\": 3673,\n      },\n      {\n        \"amount\": 3087942,\n        \"price\": 3650,\n      },\n      {\n        \"amount\": 80530,\n        \"price\": 3626,\n      },\n      {\n        \"amount\": 101753,\n        \"price\": 3602,\n      },\n      {\n        \"amount\": 14956,\n        \"price\": 3579,\n      },\n      {\n        \"amount\": 309516,\n        \"price\": 3555,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.962716Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.962716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 379016,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3326570,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1753713,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 794481,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 306883,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.981103Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.981103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 359140,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.984552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.984552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.987489Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.987489Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232816,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.991099Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.991099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232796,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.998156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.998156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54480,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.998926Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.989Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10850,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.004814Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.994Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 723632,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.004965Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.004965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 720732,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.004968Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.004968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2100,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.020622Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:21.999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 299855,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 534060,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 219067,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.020980Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.020980Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231949,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.023101Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.023101Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 712289,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 372715,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 720550,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 531096,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 794299,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 359128,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338129,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 246502,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.028281Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.028281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185135,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.031215Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.031215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 229229,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 316748,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.033184Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.033184Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160625,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.043158Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.043158Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 4077.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.044960Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.012Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 350,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.045502Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.034Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 528196,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.046376Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.046376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160613,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.049067Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.049067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2100,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 10330,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.049489Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.040Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 663481,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.053450Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.053450Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226429,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 313948,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.055949Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.055949Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 358128,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.057019Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.057019Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 159313,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.065818Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.065818Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107600,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 83800,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.068688Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.058Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244302,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 311748,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.071029Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.071029Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156913,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.073096Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.073096Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135171,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.075170Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.075170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 124771,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.078982Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.078982Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 242102,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 309548,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.084254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.084254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378752,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3326306,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1753449,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 793771,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 241148,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.088284Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.088284Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 122371,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.091230Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.091230Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 119971,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.101302Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.101302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 116771,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.109726Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.109726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 113571,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.109729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.109729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 330952,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.114629Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.114629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.114655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.114655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 446180,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 65470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.135712Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.126Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10120,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 359540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.138560Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.129Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112271,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.139673Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.139673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.139701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.139701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472,\n        \"price\": 4314,\n      },\n      {\n        \"amount\": 1706,\n        \"price\": 4277.5,\n      },\n      {\n        \"amount\": 9350,\n        \"price\": 4240.5,\n      },\n      {\n        \"amount\": 2214,\n        \"price\": 4203.5,\n      },\n      {\n        \"amount\": 164529,\n        \"price\": 4167,\n      },\n      {\n        \"amount\": 1937729,\n        \"price\": 4130,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 124350,\n        \"price\": 4056.5,\n      },\n      {\n        \"amount\": 222996,\n        \"price\": 4019.5,\n      },\n      {\n        \"amount\": 243632,\n        \"price\": 3982.5,\n      },\n      {\n        \"amount\": 295799,\n        \"price\": 3946,\n      },\n      {\n        \"amount\": 40884,\n        \"price\": 3909,\n      },\n      {\n        \"amount\": 112067,\n        \"price\": 3872,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.150696Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.150696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 64,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0316a323-c0bb-b3cb-0b32-855001d97549\",\n    \"localTimestamp\": 2019-04-01T00:00:22.150727Z,\n    \"price\": 4089.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.130Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 329540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 37330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.154119Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 109871,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.154753Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.154753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 166840,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 80470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.155633Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151840,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 95470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.158617Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.149Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 309540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 30120,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.165357Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 279540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 67330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.165683Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.154Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 85381,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.171871Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.171871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 24090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.176868Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 32100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.179383Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.186152Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.177Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 249540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.188097Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.179Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 52030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.191152Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219129,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.192816Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.192816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 52100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.194111Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.184Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.197499Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.197499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32530,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.208525Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378493,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3326047,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1753190,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 793253,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 295919,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.214208Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.214208Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 72030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.228217Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.218Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27110,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 25140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.229379Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5140,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 72100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.231596Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 6136,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.235933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.235933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.241441Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.241441Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 508719,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.245198Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.245198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 17,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.255475Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.255475Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 18,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.255503Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.255503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1010052,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.255507Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.255507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64240,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.263755Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1008752,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.268592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.268592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484209,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.270175Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.270175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 481489,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.272127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.272127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95560,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.272621Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.274308Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.274308Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 231148,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.276791Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.276791Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 456979,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.280603Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.280603Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 479759,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.290329Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.290329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8170,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.295842Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.264Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58800,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 132600,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.308236Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.284Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7110,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 74480,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.310186Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36411,\n        \"price\": 4488,\n      },\n      {\n        \"amount\": 5534,\n        \"price\": 4484,\n      },\n      {\n        \"amount\": 93381,\n        \"price\": 4480,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4476,\n      },\n      {\n        \"amount\": 5575,\n        \"price\": 4472,\n      },\n      {\n        \"amount\": 14700,\n        \"price\": 4468,\n      },\n      {\n        \"amount\": 5961,\n        \"price\": 4464,\n      },\n      {\n        \"amount\": 110050,\n        \"price\": 4460,\n      },\n      {\n        \"amount\": 10800,\n        \"price\": 4456,\n      },\n      {\n        \"amount\": 4616,\n        \"price\": 4452,\n      },\n      {\n        \"amount\": 39583,\n        \"price\": 4448,\n      },\n      {\n        \"amount\": 164678,\n        \"price\": 4444,\n      },\n      {\n        \"amount\": 84950,\n        \"price\": 4440,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4436,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 4432,\n      },\n      {\n        \"amount\": 17670,\n        \"price\": 4428,\n      },\n      {\n        \"amount\": 5950,\n        \"price\": 4424,\n      },\n      {\n        \"amount\": 524455,\n        \"price\": 4420,\n      },\n      {\n        \"amount\": 1148,\n        \"price\": 4416,\n      },\n      {\n        \"amount\": 14518,\n        \"price\": 4412,\n      },\n      {\n        \"amount\": 22905,\n        \"price\": 4408,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 4404,\n      },\n      {\n        \"amount\": 1294579,\n        \"price\": 4400,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4396,\n      },\n      {\n        \"amount\": 1815,\n        \"price\": 4392,\n      },\n      {\n        \"amount\": 19641,\n        \"price\": 4388,\n      },\n      {\n        \"amount\": 11567,\n        \"price\": 4384,\n      },\n      {\n        \"amount\": 163652,\n        \"price\": 4380,\n      },\n      {\n        \"amount\": 81030,\n        \"price\": 4376,\n      },\n      {\n        \"amount\": 19443,\n        \"price\": 4372,\n      },\n      {\n        \"amount\": 153794,\n        \"price\": 4368,\n      },\n      {\n        \"amount\": 11246,\n        \"price\": 4364,\n      },\n      {\n        \"amount\": 134647,\n        \"price\": 4360,\n      },\n      {\n        \"amount\": 1251,\n        \"price\": 4356,\n      },\n      {\n        \"amount\": 78738,\n        \"price\": 4352,\n      },\n      {\n        \"amount\": 110009,\n        \"price\": 4348,\n      },\n      {\n        \"amount\": 168616,\n        \"price\": 4344,\n      },\n      {\n        \"amount\": 181930,\n        \"price\": 4340,\n      },\n      {\n        \"amount\": 1080,\n        \"price\": 4336,\n      },\n      {\n        \"amount\": 10700,\n        \"price\": 4332,\n      },\n      {\n        \"amount\": 142640,\n        \"price\": 4328,\n      },\n      {\n        \"amount\": 15330,\n        \"price\": 4324,\n      },\n      {\n        \"amount\": 416046,\n        \"price\": 4320,\n      },\n      {\n        \"amount\": 103488,\n        \"price\": 4316,\n      },\n      {\n        \"amount\": 20100,\n        \"price\": 4312,\n      },\n      {\n        \"amount\": 12850,\n        \"price\": 4308,\n      },\n      {\n        \"amount\": 25244,\n        \"price\": 4304,\n      },\n      {\n        \"amount\": 769493,\n        \"price\": 4300,\n      },\n      {\n        \"amount\": 122753,\n        \"price\": 4296,\n      },\n      {\n        \"amount\": 157472,\n        \"price\": 4292,\n      },\n      {\n        \"amount\": 111324,\n        \"price\": 4288,\n      },\n      {\n        \"amount\": 27357,\n        \"price\": 4284,\n      },\n      {\n        \"amount\": 292332,\n        \"price\": 4280,\n      },\n      {\n        \"amount\": 93620,\n        \"price\": 4276,\n      },\n      {\n        \"amount\": 52638,\n        \"price\": 4272,\n      },\n      {\n        \"amount\": 55624,\n        \"price\": 4268,\n      },\n      {\n        \"amount\": 456118,\n        \"price\": 4264,\n      },\n      {\n        \"amount\": 390883,\n        \"price\": 4260,\n      },\n      {\n        \"amount\": 15016,\n        \"price\": 4256,\n      },\n      {\n        \"amount\": 29050,\n        \"price\": 4252,\n      },\n      {\n        \"amount\": 127389,\n        \"price\": 4248,\n      },\n      {\n        \"amount\": 56160,\n        \"price\": 4244,\n      },\n      {\n        \"amount\": 544929,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 86922,\n        \"price\": 4236,\n      },\n      {\n        \"amount\": 23119,\n        \"price\": 4232,\n      },\n      {\n        \"amount\": 444652,\n        \"price\": 4228,\n      },\n      {\n        \"amount\": 53972,\n        \"price\": 4224,\n      },\n      {\n        \"amount\": 1259430,\n        \"price\": 4220,\n      },\n      {\n        \"amount\": 80522,\n        \"price\": 4216,\n      },\n      {\n        \"amount\": 198144,\n        \"price\": 4212,\n      },\n      {\n        \"amount\": 79139,\n        \"price\": 4208,\n      },\n      {\n        \"amount\": 53999,\n        \"price\": 4204,\n      },\n      {\n        \"amount\": 4151098,\n        \"price\": 4200,\n      },\n      {\n        \"amount\": 129488,\n        \"price\": 4196,\n      },\n      {\n        \"amount\": 772240,\n        \"price\": 4192,\n      },\n      {\n        \"amount\": 1034500,\n        \"price\": 4188,\n      },\n      {\n        \"amount\": 89594,\n        \"price\": 4184,\n      },\n      {\n        \"amount\": 2024055,\n        \"price\": 4180,\n      },\n      {\n        \"amount\": 2087400,\n        \"price\": 4176,\n      },\n      {\n        \"amount\": 182265,\n        \"price\": 4172,\n      },\n      {\n        \"amount\": 496653,\n        \"price\": 4168,\n      },\n      {\n        \"amount\": 183115,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1666331,\n        \"price\": 4160,\n      },\n      {\n        \"amount\": 243536,\n        \"price\": 4156,\n      },\n      {\n        \"amount\": 1599386,\n        \"price\": 4152,\n      },\n      {\n        \"amount\": 2675372,\n        \"price\": 4148,\n      },\n      {\n        \"amount\": 1780568,\n        \"price\": 4144,\n      },\n      {\n        \"amount\": 1299801,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 196320,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 283742,\n        \"price\": 4132,\n      },\n      {\n        \"amount\": 979137,\n        \"price\": 4128,\n      },\n      {\n        \"amount\": 316736,\n        \"price\": 4124,\n      },\n      {\n        \"amount\": 2329975,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 406185,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 380976,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 623974,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 247084,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 3325379,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 711621,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 232128,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.322381Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.322381Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231128,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.322427Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.322427Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227928,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.328090Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.328090Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 923632,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.330347Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.330347Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 443479,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.332274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.332274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110560,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.337443Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.319Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 97330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.339115Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.339274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.339274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 802147,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.349298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.349298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625348,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 815008,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 594656,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 951322,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 540657,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1753172,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 347401,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 711603,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 372697,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 720532,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 528178,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 793235,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 219111,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 224164,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 166723,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 227910,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 366689,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 231112,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 479723,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 309512,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 78040,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 663445,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 170835,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 624243,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 155036,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 306847,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.377570Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.377570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 782235,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.381799Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.381799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.385967Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 307169,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.391997Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.391997Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 159448,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.393978Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.393978Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 418989,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.402161Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.402161Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8182.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.417698Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.417698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384785,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.417723Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.417723Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 781766,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.427134Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.427134Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 691685,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.428379Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.428379Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 3100,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.432819Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.423Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 363803,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.435352Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.435352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1662220,\n        \"price\": 4129,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.442201Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.442201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 608872,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.448124Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.448124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 781835,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.448153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.448153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518793,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.452127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.452127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 428710,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.456115Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.456115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 646067,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.457102Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.457102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136140,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.459352Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.450Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.459695Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.459695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383985,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.469938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.469938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377151,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.469970Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.469970Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 11030,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.471826Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.462Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378405,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3325291,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1753084,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 781659,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 306705,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.480924Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.480924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378231,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3325117,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1752910,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 781311,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.486540Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.486540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 56402,\n        \"price\": 3783,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.494542Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.494542Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378143,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3325029,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1752822,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 781135,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 230794,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.507375Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.507375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 361300,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 121081,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 230981,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 222452,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 145106,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 230054,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3324106,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 624425,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 814085,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 593733,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 950399,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 539734,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1751899,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 346478,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 645144,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 306246,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 719609,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 527255,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 780212,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.518665Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.518665Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.521348Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.497Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 7364,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.522929Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.522929Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127038,\n        \"price\": 4135.5,\n      },\n      {\n        \"amount\": 445176,\n        \"price\": 4120.5,\n      },\n      {\n        \"amount\": 239356,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 229517,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 812866,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 345502,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 526523,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 158959,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 227666,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 478746,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 623022,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 511443,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 217356,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 266745,\n        \"price\": 4061.5,\n      },\n      {\n        \"amount\": 182093,\n        \"price\": 4046.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.529353Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.529353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 11550,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.541147Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 44630,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.542398Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.544381Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24270,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 45120,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.545698Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377960,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3323923,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1751716,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 779846,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 230132,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.545879Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.545879Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 32100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 64630,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.547144Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.537Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525523,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.548977Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.548977Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.548990Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 28170,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.550353Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.541Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 102700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.551682Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.542Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54480,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 136640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.553294Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.561580Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.561580Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47480,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 71630,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.567839Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.558Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107600,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 83800,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.576387Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.619820Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.619820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377872,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3323835,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1751628,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 779670,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 229814,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.619847Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.619847Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 158800,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.619911Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.619911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1002500,\n        \"price\": 4188,\n      },\n      {\n        \"amount\": 509683,\n        \"price\": 4165.5,\n      },\n      {\n        \"amount\": 45188,\n        \"price\": 4143.5,\n      },\n      {\n        \"amount\": 426555,\n        \"price\": 4121.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 651230,\n        \"price\": 4046,\n      },\n      {\n        \"amount\": 579070,\n        \"price\": 4024.5,\n      },\n      {\n        \"amount\": 308002,\n        \"price\": 4002,\n      },\n      {\n        \"amount\": 186621,\n        \"price\": 3980.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.632472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.632472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378996,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 357444,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 360640,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 3323505,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1751408,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 719499,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 158712,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 227622,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.640220Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.640220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64000,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 330,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.648592Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110490,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.656149Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95490,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 151140,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.674433Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.664Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 25120,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 48890,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.676350Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 279540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.679286Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.670Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 37330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 309540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.689706Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80490,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 166140,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.695331Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 846704,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 376944,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 809772,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 946295,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 327284,\n        \"price\": 3952,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.696277Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.696277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 289540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 68890,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.697410Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65361,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703614Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703614Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 844801,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 375041,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 807869,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 942489,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1063050,\n        \"price\": 3940,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703636Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65341,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703645Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65321,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703685Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 18,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 19,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65301,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703692Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65281,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703694Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703694Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65261,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703715Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703715Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48890,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 44270,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.707053Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65241,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.712798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.712798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65490,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 461180,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.713386Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.699Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 259540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 55120,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.713402Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.703Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65221,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.713988Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.713988Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 177546,\n        \"price\": 3969,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.727050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.727050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589733,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.738607Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.738607Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.739345Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50490,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.751296Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.742Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 62221,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.761666Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.761666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.762783Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59221,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.763337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.763337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 524823,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.771152Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.771152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.772822Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.772822Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 692806,\n        \"price\": 4158,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.812926Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.812926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.820826Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.820826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 539634,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.826416Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.826416Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 67700,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.828354Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10850,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 17100,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.833718Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.824Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.836553Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.836553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 8640,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.839453Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.830Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 460480,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.841402Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.832Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48190,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 51190,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.843803Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.834Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54120,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 45270,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.849234Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.836Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70930,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 272390,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.850344Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351265,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.857283Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.857283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6410,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 99440,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.857957Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.842Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67400,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 48180,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.858318Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 11730,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.860993Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.850Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 52030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.864492Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 72030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.867787Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50930,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 32100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.869925Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.860Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30930,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 52100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.871983Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.862Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8170,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 46800,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.874284Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 166306,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.874949Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.874949Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 116640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 68180,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.877586Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.867Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227140,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.877915Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.877915Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58800,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 132600,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.880572Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227390,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.882151Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.882151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39120,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 60270,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.890515Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.879Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 37134,\n        \"price\": 4134.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.893206Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.893206Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 24090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.894221Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.884Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 229537,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.895781Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.895781Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82700,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 72100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.896970Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.887Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24731,\n        \"price\": 4134.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.897440Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.897440Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198507,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.907326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.907326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 337765,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.910331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.910331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13040,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.917702Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.906Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 218911,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.919151Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.919151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 313255,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.924236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.924236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 182705,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.926305Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.926305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181140,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.931709Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.919Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.938165Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 269540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.938211Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:22.925Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 206705,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.938529Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.938529Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 116858,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.966351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.966351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101081,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 135106,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.970605Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.970605Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 7000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d0546abb-699c-57eb-1bae-67e065f5007f\",\n    \"localTimestamp\": 2019-04-01T00:00:22.989731Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.965Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 19,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.993650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.993650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 20,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.993676Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.993676Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377696,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3323329,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1751232,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 779318,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 228901,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.993687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.993687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 303255,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.997660Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.997660Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 134712,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204901,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.002029Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.002029Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132369,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.013448Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.013448Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 109858,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.015761Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.015761Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227290,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.026665Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.026665Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4082.75,\n      },\n      {\n        \"amount\": 16340,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.030004Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.018Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 638144,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.038501Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.038501Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96141,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 315917,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.043219Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.043219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 289755,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.045690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.045690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 32640,\n        \"price\": 4079.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.049175Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.022Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.052831Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.052831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 203656,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.054680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.054680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 273488,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.056199Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.056199Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1091689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.060624Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.060624Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 280,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.073524Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.064Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51250,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.079330Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.080273Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.080273Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1470505,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.080315Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.080315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.084009Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.084009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 266744,\n        \"price\": 4061.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.085459Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.085459Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53947,\n        \"price\": 4457,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.091430Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.091430Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 210000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 24700,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.104913Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84463,\n        \"price\": 3929,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.105551Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.105551Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 257240,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.108173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.108173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 512823,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.109799Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.109799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102368,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.112772Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.112772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.115540Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.115540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 255940,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.119541Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.119541Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.121393Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.121393Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 900,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 25400,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.122070Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227255,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.123335Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.123335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1296643,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.133517Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.133517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1296843,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.134935Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.134935Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.139382Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.139382Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 415,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8dc876cb-b854-3900-9500-279ad5031f2a\",\n    \"localTimestamp\": 2019-04-01T00:00:23.160308Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.130Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52198,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.160374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.160374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54918,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.160377Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.160377Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3149,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bb72b49c-aa32-74c4-a370-f92bdad2f387\",\n    \"localTimestamp\": 2019-04-01T00:00:23.170074Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.142Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51769,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.170114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227245,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.170118Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170118Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59101,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.170121Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170121Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 24019,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d6347a81-510d-020f-d35d-dc909807b332\",\n    \"localTimestamp\": 2019-04-01T00:00:23.187993Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.158Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 21,\n    \"exchange\": \"bitmex\",\n    \"id\": \"450922cd-a6c5-8b5f-6b2a-bad3b9b92fad\",\n    \"localTimestamp\": 2019-04-01T00:00:23.187993Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.158Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 4597,\n    \"exchange\": \"bitmex\",\n    \"id\": \"76abb6ef-e20b-5713-b8b1-e865c3dc1157\",\n    \"localTimestamp\": 2019-04-01T00:00:23.187993Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.158Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 23153,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.188019Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.188019Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 35000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.200974Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 175900,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.205746Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 15403,\n    \"exchange\": \"bitmex\",\n    \"id\": \"50c5354c-51a0-5b76-8175-50e6582a93b9\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 34,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c66b364f-81dd-d545-e99b-0ca1a6ab50f5\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b232a8f8-c5b2-4907-7cc9-3699d90f423b\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"27817fc4-8a0a-8429-992a-fcb5b528c77b\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2720,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4342471b-1e12-f265-93ef-a5ffe9142ee4\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 160,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9d801307-ce24-8317-b3f7-b9580b642481\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7889d069-fae0-29af-e1cf-81231abab882\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"387d7f31-9da4-d406-7481-e0287659bac7\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6e5c58a2-f20e-c286-03f1-26c10a279ae4\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"52311ed0-59e0-42bd-5b7f-78350eecfbd8\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5abb1c4d-f568-e2da-05fe-311263dc9281\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b436254f-c88c-448f-86bd-892f8a0402e0\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2e5ba21b-9f13-cff3-bbb4-7d7fd3a1cd23\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 600,\n    \"exchange\": \"bitmex\",\n    \"id\": \"93750047-621c-3233-ebca-8f473bb388e6\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2b5c2536-aac0-3887-70ca-8314ea170266\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"baac6402-b1dc-8f74-c08c-00409db8c081\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.219388Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.219388Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.219390Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.219390Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59081,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.219392Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.219392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 166106,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.219419Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.219419Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59061,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.223298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.223298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377533,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3323166,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1751069,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 778992,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 308600,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.227810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.227810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 43140,\n        \"price\": 4081.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.229550Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.232814Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.232814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 222916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.237437Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.237437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33590,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 68230,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.238865Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.229Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 719497,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.243791Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.243791Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 719485,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.246548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.246548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 703485,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.249312Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.249312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23930,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 123640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.251114Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.241Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.252183Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59041,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.253077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.253077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 512821,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.254033Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.254033Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59021,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.255687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.255687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48190,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 59120,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.255778Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.246Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59001,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.258960Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.258960Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 58981,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.261635Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.261635Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40270,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 68190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.261809Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.252Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 58961,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.266192Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.266192Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.267968Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.267968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202896,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.271279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.271279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.274014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.274014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202876,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.274672Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.274672Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 703408,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.277157Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.277157Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 20,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.282169Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.282169Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 21,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.282191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.282191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 345402,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.283514Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.283514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.286807Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.286807Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1258806,\n        \"price\": 4011,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.297287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.297287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 364085,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.300099Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.300099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 564222,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 678835,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.309408Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.309408Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1771069,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.312515Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.312515Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 177987,\n        \"price\": 4007,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.314505Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.314505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 369085,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.318308Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.318308Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.325916Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.325916Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.327617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.327617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2100,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1280,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.332301Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 469732,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 246027,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 619926,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 504449,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 353396,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 151153,\n        \"price\": 4106.5,\n      },\n      {\n        \"amount\": 373485,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 235308,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 803821,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 148326,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 243036,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 178657,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 356592,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 97033,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 225469,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 218404,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 131058,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 226006,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3319118,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 620377,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 199608,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 474698,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 304552,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 73992,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 659397,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.352581Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.352581Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.355837Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.355837Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 678831,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.357235Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.357235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 192876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.360847Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.360847Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33980,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.361211Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 159790,\n        \"price\": 4080.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.362201Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.333Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 55360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.367737Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.367737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778990,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.368869Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.368869Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 302350,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 372981,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.371026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.371026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 678829,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.373145Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.373145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 276832,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 487742,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.375821Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.375821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 496821,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.378277Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.378277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.384601Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.384601Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 192931,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.416861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.416861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 35360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.418077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.418077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 35415,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.425626Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.425626Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 25415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.428422Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.428422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 493921,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.430058Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.430058Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 380981,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.432476Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.432476Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.441535Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.441535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.444871Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.444871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.447348Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.447348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.462692Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.462692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.462719Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.462719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 311877,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.471349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.471349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1290,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.499649Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.486Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51210,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.501931Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.492Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59566,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312877,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504289Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16040,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 122731,\n        \"price\": 4296,\n      },\n      {\n        \"amount\": 15324,\n        \"price\": 4295.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 499021,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504301Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 484698,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504303Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504303Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384981,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5000,\n        \"price\": 4074.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.517035Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.508Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50690,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 176600,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.521233Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.511Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 43930,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.535438Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.524Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29000,\n        \"price\": 4080.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.537133Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 25270,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 138640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.538145Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 32100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 102700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.540317Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.530Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123578,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1772569,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59758,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541188Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 167106,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 408646,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 375946,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 133519,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 643066,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 210490,\n        \"price\": 3976,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 507021,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541235Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296350,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 513021,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541237Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 484714,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541240Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 313027,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 16190,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 385781,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541244Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 122707,\n        \"price\": 4296,\n      },\n      {\n        \"amount\": 15360,\n        \"price\": 4295.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541246Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541246Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541249Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541249Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16394,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.546627Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.546627Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7940,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 13740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.551296Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.538Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 313477,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.555403Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.555403Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127245,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 413477,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.567965Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.567965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129578,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.567971Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.567971Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72377,\n        \"price\": 4271,\n      },\n      {\n        \"amount\": 15500,\n        \"price\": 4253,\n      },\n      {\n        \"amount\": 96498,\n        \"price\": 4235,\n      },\n      {\n        \"amount\": 62708,\n        \"price\": 4217,\n      },\n      {\n        \"amount\": 305865,\n        \"price\": 4199,\n      },\n      {\n        \"amount\": 55845,\n        \"price\": 4181,\n      },\n      {\n        \"amount\": 231754,\n        \"price\": 4163,\n      },\n      {\n        \"amount\": 1002800,\n        \"price\": 4145,\n      },\n      {\n        \"amount\": 580259,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 473957,\n        \"price\": 4109,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.569444Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.569444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 177840,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.576263Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.554Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15572,\n        \"price\": 4287.5,\n      },\n      {\n        \"amount\": 132446,\n        \"price\": 4248,\n      },\n      {\n        \"amount\": 265788,\n        \"price\": 4228.5,\n      },\n      {\n        \"amount\": 43079,\n        \"price\": 4209,\n      },\n      {\n        \"amount\": 322023,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 166617,\n        \"price\": 4169.5,\n      },\n      {\n        \"amount\": 8126678,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 334960,\n        \"price\": 4130.5,\n      },\n      {\n        \"amount\": 137968,\n        \"price\": 4110.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.577659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.577659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5057,\n        \"price\": 4267.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.577688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.577688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 678827,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 199607,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.581456Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.581456Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.581485Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.581485Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 16412,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.587331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.587331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.592662Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.592662Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 150281,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 18780,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 13119,\n        \"price\": 4193.5,\n      },\n      {\n        \"amount\": 21003,\n        \"price\": 4191.5,\n      },\n      {\n        \"amount\": 185319,\n        \"price\": 4189.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 1650206,\n        \"price\": 3985,\n      },\n      {\n        \"amount\": 681591,\n        \"price\": 3983,\n      },\n      {\n        \"amount\": 529742,\n        \"price\": 3981,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.602507Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.602507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 153240,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.608022Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.608022Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 398842,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 29757,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.608566Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.608566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 63930,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.611918Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.602Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137432,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 74032,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.612239Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.612239Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48230,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 158640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.613658Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.604Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 123141,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 359641,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.614016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.614016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91876,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 390906,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.618049Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.618049Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 385506,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 42191,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.620145Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.620145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 295350,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 514021,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.625006Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.625006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 678876,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.626908Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.626908Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 140232,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 76832,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.629636Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.629636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.631873Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.631873Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 92876,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.634050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.634050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 753424,\n        \"price\": 3910,\n      },\n      {\n        \"amount\": 769498,\n        \"price\": 3842.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.635982Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.635982Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 245247,\n        \"price\": 4279,\n      },\n      {\n        \"amount\": 27908,\n        \"price\": 4260.5,\n      },\n      {\n        \"amount\": 98907,\n        \"price\": 4241.5,\n      },\n      {\n        \"amount\": 78074,\n        \"price\": 4222.5,\n      },\n      {\n        \"amount\": 57670,\n        \"price\": 4204,\n      },\n      {\n        \"amount\": 463493,\n        \"price\": 4185,\n      },\n      {\n        \"amount\": 216788,\n        \"price\": 4166.5,\n      },\n      {\n        \"amount\": 473836,\n        \"price\": 4147.5,\n      },\n      {\n        \"amount\": 270473,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 1768376,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.640206Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.640206Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778938,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 218885,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 199555,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 76728,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.644065Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.644065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96835,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 226204,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.646214Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.646214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 270814,\n        \"price\": 4275,\n      },\n      {\n        \"amount\": 358916,\n        \"price\": 4256.5,\n      },\n      {\n        \"amount\": 30588,\n        \"price\": 4238.5,\n      },\n      {\n        \"amount\": 1263928,\n        \"price\": 4220,\n      },\n      {\n        \"amount\": 16181,\n        \"price\": 4201.5,\n      },\n      {\n        \"amount\": 156968,\n        \"price\": 4183,\n      },\n      {\n        \"amount\": 78107,\n        \"price\": 4164.5,\n      },\n      {\n        \"amount\": 1929209,\n        \"price\": 4146,\n      },\n      {\n        \"amount\": 983635,\n        \"price\": 4128,\n      },\n      {\n        \"amount\": 590990,\n        \"price\": 4109.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.651161Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.651161Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 511548,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1435668,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1177349,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2722390,\n        \"price\": 4040,\n      },\n      {\n        \"amount\": 1821411,\n        \"price\": 4010,\n      },\n      {\n        \"amount\": 1499183,\n        \"price\": 3960,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.653568Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.653568Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 561481,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.657281Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.657281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 306013,\n        \"price\": 3911,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.665189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.665189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149832,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.669043Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.669043Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579533,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 844442,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 171653,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 74915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 590107,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.676355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.676355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107463,\n        \"price\": 3944,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.688828Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.688828Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 566422,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 846142,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 486914,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 78928,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 298119,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 513748,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.694850Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.694850Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 345452,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.694874Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.694874Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.699337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.699337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61776,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 76915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 212515,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 394906,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.707153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.707153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 568622,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 847842,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 489114,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 81128,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 300319,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 515948,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.710906Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.710906Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 149,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cc81d99a-4f67-e1fa-5606-a2cd409bf704\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1196,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bd054f6d-b4a3-3448-d361-fd1ae670808a\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 126,\n    \"exchange\": \"bitmex\",\n    \"id\": \"be46b9dd-622e-014f-0e5e-7c741d456db3\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 472,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e5a06a29-8bf8-b101-a0d9-f6584306dadd\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 31,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b68298d0-989e-7d8b-6643-f0fb6f1f1fa4\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 103,\n    \"exchange\": \"bitmex\",\n    \"id\": \"333fd54e-92ba-f281-fb4a-ba98ae43978d\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 410,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f8ce1659-1690-e539-b843-2ec113a1863c\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 31,\n    \"exchange\": \"bitmex\",\n    \"id\": \"899aef9f-0ded-2b2b-81cc-db3e6b6f2d10\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 577,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9b4bea15-0a21-1aa6-e423-06cd539828d5\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 39,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cb550f61-467b-65b7-70c1-2d3fdb34e9a0\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"919b3433-d451-199b-fab4-23ca9900d8ef\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 723,\n    \"exchange\": \"bitmex\",\n    \"id\": \"85379e51-bab7-1ae1-5f55-b42126dacf91\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 58,\n    \"exchange\": \"bitmex\",\n    \"id\": \"52a7ea50-8af1-3a22-1465-6fd79750d5df\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 101,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f394e317-1214-5ffa-895a-702e53c62c99\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 884,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cdc43ead-88c4-d544-8dd0-176d0af043d5\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.742574Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.742574Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 432642,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.742578Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.742578Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123662,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.742584Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.742584Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 385880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.745727Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.745727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 642888,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 199335,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 622912,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 515838,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1030879,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.749688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.749688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 596107,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.752137Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.752137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 37330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.752645Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.742Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 440642,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.757351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.757351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.757384Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.757384Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 467818,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.760162Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.760162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213231,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.770134Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.770134Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 166140,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 66210,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.771652Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.745Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 413263,\n        \"price\": 4111.5,\n      },\n      {\n        \"amount\": 386380,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.777529Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.777529Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 301550,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 208236,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.782056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.782056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 77015,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213331,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 596207,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.785243Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.785243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386451,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 213360,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.787659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.787659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 17546,\n        \"price\": 4221,\n      },\n      {\n        \"amount\": 151757,\n        \"price\": 4171,\n      },\n      {\n        \"amount\": 372385,\n        \"price\": 4141,\n      },\n      {\n        \"amount\": 215736,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 244512,\n        \"price\": 4111,\n      },\n      {\n        \"amount\": 133484,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192248,\n        \"price\": 4054,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.791799Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.791799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 596507,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.794966Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.794966Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213519,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.807515Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.807515Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23649,\n        \"price\": 4211.5,\n      },\n      {\n        \"amount\": 102162,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 182690,\n        \"price\": 4170.5,\n      },\n      {\n        \"amount\": 104459,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 1938599,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 1768811,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 598492,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 82245,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 2151705,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 422308,\n        \"price\": 4010.5,\n      },\n      {\n        \"amount\": 179727,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 89094,\n        \"price\": 3971.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.813470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.813470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 468817,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 323420,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.816114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.816114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 847802,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 218865,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87508,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 199295,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 81048,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.820461Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.820461Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151140,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 81210,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.824020Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.813Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238704,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 852802,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 388951,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 491614,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 175835,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 229856,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.824473Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.824473Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 209540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 67330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.825541Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 37700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 130000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.830131Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389101,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 77165,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.831769Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.831769Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445480,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 96210,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.833864Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29120,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 97330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.836633Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 679876,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.837993Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.837993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136140,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.840012Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1416242,\n        \"price\": 4134,\n      },\n      {\n        \"amount\": 692337,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 244743,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 240167,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 569842,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 680852,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 150565,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 389589,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213763,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87752,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 200027,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 660374,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 138099,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 97607,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 952620,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1184686,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1611310,\n        \"price\": 4045,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.847437Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.847437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 150315,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 171903,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 80798,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 660624,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.849277Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.849277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 171403,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 127745,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.852256Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.852256Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 179540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.853713Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.856771Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.847Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 43930,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 32100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.859300Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.850Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 499614,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.862200Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.862200Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226535,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 999221,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.864265Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.864265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 143640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 40270,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.865093Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 72030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.865511Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 208027,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.867203Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.867203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82700,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 52100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.867529Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.858Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.871515Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.862Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 210763,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.872302Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.872302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23930,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 72100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.873981Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 207763,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.877062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.877062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61326,\n        \"price\": 4263,\n      },\n      {\n        \"amount\": 32530,\n        \"price\": 4245.5,\n      },\n      {\n        \"amount\": 269224,\n        \"price\": 4228.5,\n      },\n      {\n        \"amount\": 27085,\n        \"price\": 4211.5,\n      },\n      {\n        \"amount\": 182544,\n        \"price\": 4194,\n      },\n      {\n        \"amount\": 577930,\n        \"price\": 4177,\n      },\n      {\n        \"amount\": 159158,\n        \"price\": 4159.5,\n      },\n      {\n        \"amount\": 213124,\n        \"price\": 4142.5,\n      },\n      {\n        \"amount\": 69106,\n        \"price\": 4125.5,\n      },\n      {\n        \"amount\": 623362,\n        \"price\": 4108,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.882305Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.882305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.885911Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.885911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386804,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.889650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.889650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2330641,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 3319784,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1185352,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2723056,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.892292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.892292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1042,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0f573daa-ac74-4b59-a995-cb2fdb1aa2fc\",\n    \"localTimestamp\": 2019-04-01T00:00:23.906807Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.880Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127620,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.906911Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.906911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 410550,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 650388,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 653124,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 145599,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.922340Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.922340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1330,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.933638Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96190,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.942777Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9eb81653-2b25-51d2-2592-1702c5d31342\",\n    \"localTimestamp\": 2019-04-01T00:00:23.947496Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.908Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.947525Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.947525Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"93275924-0696-2b68-be90-24fe945886b7\",\n    \"localTimestamp\": 2019-04-01T00:00:23.947555Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.925Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127617,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.947581Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.947581Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26800,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 24090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.951654Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.942Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61888,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 207775,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.952692Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.952692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 68230,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.956392Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:23.944Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.957698Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.957698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749987,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 683761,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.957722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.957722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185115,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 412550,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 290705,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 319178,\n        \"price\": 3964,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.967988Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.967988Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899473,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 612826,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.970554Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.970554Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450763,\n        \"price\": 4111.5,\n      },\n      {\n        \"amount\": 3334784,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 178903,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 211705,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 551030,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 233352,\n        \"price\": 4065.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.980663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.980663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219865,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.990348Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.990348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.997069Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.997069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 644060,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 1285352,\n        \"price\": 4060,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.008805Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.008805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129914,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.014070Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.014070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111190,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.016652Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.001Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.019922Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.010Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 210998,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.023600Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.023600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211198,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.032706Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.032706Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.033653Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.023Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 212545,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.038874Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.038874Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214079,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.042810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.042810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8126978,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 750287,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 3335084,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1843362,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 1908366,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 1755210,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 508457,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 1611196,\n        \"price\": 3950,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.050046Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.050046Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214311,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.062786Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.062786Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1157511,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 1768871,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 803881,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 3335144,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 680912,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 304612,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 515898,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 952680,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1435728,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 683821,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.068520Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.068520Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 83318,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.070268Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.070268Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 598260,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.076047Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.076047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 117745,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.077489Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.077489Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 643362,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 161153,\n        \"price\": 4106.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.080742Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.080742Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 339799,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.083875Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.083875Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.094195Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.094195Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1103689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.094212Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.094212Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 599262,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.098990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.098990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1300051,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 1938849,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 2330891,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 1769121,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 3335394,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 516148,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1435978,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1285602,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1843612,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 2723306,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.104114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.104114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 844786,\n        \"price\": 4126,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.107574Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.107574Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9620,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 36230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.142872Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 137370,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.145545Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 72030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.209439Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 47200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.243523Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.233Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 71910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 92030,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.246261Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 24090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.248790Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.239Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87507,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.294727Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.294727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 242,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aa899311-b0a4-ea40-cfbc-e449ebc722b3\",\n    \"localTimestamp\": 2019-04-01T00:00:24.294753Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.120Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445572,\n        \"price\": 4120.5,\n      },\n      {\n        \"amount\": 245302,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 234133,\n        \"price\": 4065.5,\n      },\n      {\n        \"amount\": 124740,\n        \"price\": 4056.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.308053Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.308053Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579717,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 852986,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 220049,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 150499,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 179087,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 208039,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 499626,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 304624,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 80810,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.308142Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.308142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 385041,\n        \"price\": 4112,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 336332,\n        \"price\": 4061,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.320555Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.320555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 601164,\n        \"price\": 4123.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 163406,\n        \"price\": 4072.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.320557Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.320557Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.320583Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.320583Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 173406,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 232757,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.320588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.320588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 142723,\n        \"price\": 3967.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.320592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.320592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87397,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 105764,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 156092,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 985280,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 748861,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.323112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.323112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1022,\n    \"exchange\": \"bitmex\",\n    \"id\": \"03553819-eb98-fe1b-c922-6869d0fe72cb\",\n    \"localTimestamp\": 2019-04-01T00:00:24.345086Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.317Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.345159Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.345159Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 196260,\n        \"price\": 4136,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.345164Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.345164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 599277,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.345166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.345166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 214039,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.358131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.358131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609277,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.358142Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.358142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 435415,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.358146Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.358146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1290,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.358165Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.346Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 266743,\n        \"price\": 4061.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.358185Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.358185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 376202,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3335650,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1772825,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 853498,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 216627,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.358194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.358194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224411,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.365675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.365675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 465416,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.369109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.369109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111170,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.369198Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.354Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 4700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3e452c23-ecac-ecb6-c4a4-a3dabe440ac4\",\n    \"localTimestamp\": 2019-04-01T00:00:24.399174Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.365Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 82807,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.399204Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.399204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 615416,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.399207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.399207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 179097,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 214049,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.399209Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.399209Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 376466,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3335914,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1773089,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 854026,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215003,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.412844Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.412844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 501792,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.412849Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.412849Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 815032,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.412853Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.412853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 901639,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.418368Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.418368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1775255,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.418387Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.418387Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 117538,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.419638Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.419638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 652554,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.421754Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.421754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75613,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 616778,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.427201Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.427201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 347618,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.427274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.427274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.433852Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.433852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 82857,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.436763Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.436763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 622543,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.438431Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.438431Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 158416,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.440153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.440153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 303716,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.442324Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.442324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 204411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 168416,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.445667Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.445667Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 135709,\n        \"price\": 3885.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.449405Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.449405Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 204561,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.460375Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.460375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 614992,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.461207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.461207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 345127,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 94043,\n        \"price\": 4126.5,\n      },\n      {\n        \"amount\": 299318,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 277036,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 170201,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 210364,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 367040,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 472734,\n        \"price\": 4048,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.465266Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.465266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 591899,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.465902Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.465902Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 263259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.472014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.472014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184787,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.476079Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.476079Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48230,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 143640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.479329Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 683078,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.480745Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.480745Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.487004Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.487004Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 97390,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.492509Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 243190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.498737Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.489Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 6850,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3a2c6757-ffde-6b59-d575-310ecf4d8a94\",\n    \"localTimestamp\": 2019-04-01T00:00:24.503934Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.479Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76007,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.503939Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.503939Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 43930,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.510445Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.501Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189875,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.513698Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.513698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193963,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.515387Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.515387Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1301,\n    \"exchange\": \"bitmex\",\n    \"id\": \"52d5275c-b735-c1e3-c70d-242ef1c63ead\",\n    \"localTimestamp\": 2019-04-01T00:00:24.536171Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.504Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 74706,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.536203Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.536203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84706,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.536207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.536207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198051,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.540715Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.540715Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 248051,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.541972Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.541972Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 203259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 258051,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.548499Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.548499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.551322Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.551322Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26980,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.558084Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 262139,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.559997Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.559997Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 158640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.560580Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.551Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266227,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.563752Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.563752Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 32100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 102700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.563800Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 316227,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.566509Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.566509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 63930,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.568983Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.559Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316546,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.571467Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.571467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.571507Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.571507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 326546,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.571512Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.571512Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330546,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.578135Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.578135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 338724,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.578219Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.578219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378725,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.581470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.581470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386903,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.584186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.584186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 395081,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.587151Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.587151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 92706,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.587166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.587166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403259,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.591046Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591046Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403359,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.591064Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591064Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 422026,\n        \"price\": 4132.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.594236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.594236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 97706,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.600648Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.600648Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.600674Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.600674Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403480,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.604606Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.604606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47050,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.620871Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.612Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 8242,\n    \"exchange\": \"bitmex\",\n    \"id\": \"04210371-fe85-6618-715c-96a11dee49b4\",\n    \"localTimestamp\": 2019-04-01T00:00:24.628318Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7370175d-56d7-2284-c2ed-7586c4938640\",\n    \"localTimestamp\": 2019-04-01T00:00:24.628318Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 14,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8d06cf22-a6c2-4ddb-ac39-3756364344c8\",\n    \"localTimestamp\": 2019-04-01T00:00:24.628318Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 184,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b7d48694-a595-eebb-fc1b-6648dacfd97b\",\n    \"localTimestamp\": 2019-04-01T00:00:24.628318Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.628350Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.628350Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 578717,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 855026,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.628353Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.628353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 178206,\n        \"price\": 3969,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.628356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.628356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180494,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.628358Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.628358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 393480,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.630589Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.630589Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 401658,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.633255Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.633255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 629367,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.644573Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.644573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 409836,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.644597Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.644597Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 159790,\n        \"price\": 4080.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.648719Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 628365,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.650583Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.650583Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 418014,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.650606Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.650606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426192,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.651974Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.651974Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 434370,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.654437Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.654437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 584370,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.659755Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.659755Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 592548,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.662254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.662254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.663729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.663729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2316,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e6061d11-c213-16bb-853a-ad25fdac7e2d\",\n    \"localTimestamp\": 2019-04-01T00:00:24.687780Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.657Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1197,\n    \"exchange\": \"bitmex\",\n    \"id\": \"224def9d-2396-b050-1f92-4771ec4ca393\",\n    \"localTimestamp\": 2019-04-01T00:00:24.687780Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.657Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e2b9c17d-c0f7-7177-0d1f-49d41c865165\",\n    \"localTimestamp\": 2019-04-01T00:00:24.687780Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.657Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 912,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4799f995-0575-48cc-a919-219ef45ac5de\",\n    \"localTimestamp\": 2019-04-01T00:00:24.687780Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.657Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80541,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.687812Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.687812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 290,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.689687Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 188,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b8a9bd37-dd68-6ca3-ad61-bde6ddf0b44f\",\n    \"localTimestamp\": 2019-04-01T00:00:24.701017Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.672Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e3cdfd72-17ab-bba6-bcf9-90d3bda11d24\",\n    \"localTimestamp\": 2019-04-01T00:00:24.701017Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.672Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a77d3d97-9c1a-646c-431b-540a3fde99b9\",\n    \"localTimestamp\": 2019-04-01T00:00:24.701017Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.672Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 106,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2cb59435-cae2-66a2-e24c-0f1aea10c37b\",\n    \"localTimestamp\": 2019-04-01T00:00:24.701017Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.672Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 78541,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.701062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.701062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 228541,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.701070Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.701070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582548,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.706494Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.706494Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.715299Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.715299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.717234Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.706Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.721677Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.721677Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 677978,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.721753Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.721753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110470,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 138070,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.725585Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.710Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96690,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 29820,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.725966Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.712Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 211230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.726013Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5710,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 159340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.726603Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1594,\n    \"exchange\": \"bitmex\",\n    \"id\": \"30dcb600-ecfa-8cc8-392e-d201bb4c4350\",\n    \"localTimestamp\": 2019-04-01T00:00:24.739059Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.709Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2229829c-b33b-987e-3ca5-a1c4251b727d\",\n    \"localTimestamp\": 2019-04-01T00:00:24.739059Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.709Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 165,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f2c6ad02-145f-b9af-e464-63245df9bbff\",\n    \"localTimestamp\": 2019-04-01T00:00:24.739059Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.709Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 226767,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.739097Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.739097Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 376725,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3336173,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1775514,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 855544,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 304255,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.739101Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.739101Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.744419Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.744419Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.761858Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.761858Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 480650,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.762923Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.762923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 686211,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 308536,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.767815Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.767815Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 158536,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.768936Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.768936Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110540,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.776804Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 686371,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.777095Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.777095Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 475650,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 691371,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.780078Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.780078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141124,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.783115Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.783115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 36230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.800858Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.787Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24700,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 17800,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.802108Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2933,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dab19f93-f363-8673-c9de-3c1543b0c7b6\",\n    \"localTimestamp\": 2019-04-01T00:00:24.806793Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.776Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"20a499f3-693a-db60-e423-3d734b9fa8ca\",\n    \"localTimestamp\": 2019-04-01T00:00:24.806793Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.776Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4b53e9df-30b5-e258-e0d5-0113c3478d8d\",\n    \"localTimestamp\": 2019-04-01T00:00:24.806793Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.776Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aef98d69-15ae-aeea-2369-e85cc09c8a1f\",\n    \"localTimestamp\": 2019-04-01T00:00:24.806793Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.776Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3457,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e09803c4-0d31-0527-0d0c-9f3f895f3a9e\",\n    \"localTimestamp\": 2019-04-01T00:00:24.806793Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.776Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659981,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.806827Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.806827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 400435,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.812846Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.812846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 93810,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.814659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.814659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.817392Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.817392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 395435,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.819247Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.819247Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389435,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.823297Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.823297Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 658536,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.825791Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.825791Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.828126Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.828126Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 8940,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.829351Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 758536,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.830371Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.830371Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 11030,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 68100,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.832155Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.822Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 763536,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.834539Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.834539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 769607,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.837276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.837276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.839263Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.839263Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.841222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.841222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 211230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.844677Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81279,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.845428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.845428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 356474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.848166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.848166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 35,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bd81423a-2e75-b744-0256-ec3fcf8c8f1e\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4fb2b61c-5c79-e337-b945-4dac25811b1b\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b68c45af-58e0-97c2-2552-cd222e07da03\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f0e80c48-f86c-184f-7a1d-7c190eb07a60\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"78e06a40-da25-e641-c7ad-ac8b95c2b82e\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 96,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4abc42f8-9148-6c0d-0787-57cd1e304130\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 336,\n    \"exchange\": \"bitmex\",\n    \"id\": \"76627ece-1716-e6ac-3b4c-d1be81fa4135\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 233,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3fa34dd3-7d82-9f18-e621-6900b79ff548\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7ffcb8bc-8dcd-9f10-690f-acab45bfec32\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 18,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cba7a303-f825-954a-96db-2a694dad4cec\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 196,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5f727ee6-49e7-f9ee-395c-269656a7647c\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 23,\n    \"exchange\": \"bitmex\",\n    \"id\": \"34e8b799-35f6-3a42-56ae-80207f42dc79\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 979,\n    \"exchange\": \"bitmex\",\n    \"id\": \"92b191cd-e37b-3625-b5f9-1c1796a87a4f\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"75f71346-dd80-a09a-07f7-2793943f38a2\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 447,\n    \"exchange\": \"bitmex\",\n    \"id\": \"199afa5b-460f-0cb5-3314-ce3522469f57\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1122,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2c3c917e-03e9-e6aa-76b3-bbbfdf981a34\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 296,\n    \"exchange\": \"bitmex\",\n    \"id\": \"faf0d26a-1cd4-860d-ef32-3828f27e9906\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 497,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9de571db-edd1-1195-20a7-c22fa833a90a\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6742428a-60f8-15db-3cf0-9af9f7bebf7b\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 962,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2b7924be-e3d3-9282-376a-241962756cd9\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 575,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cc977afb-fd57-af3f-c1d6-a31c7afac892\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 498,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1bdd2fc4-3bbf-133a-2a21-76f0a60d2821\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1303,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fcb00da1-7f3a-0971-4c32-8ac7d18f5db7\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2817,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2025b4f5-8081-436e-3282-1574317fd0aa\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10222,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1249cb50-8fe4-9eb3-c19a-61b916611bfe\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1024,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6185a5d1-fa4e-045c-c22e-e77351bea7ad\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 295,\n    \"exchange\": \"bitmex\",\n    \"id\": \"27ace06a-75aa-d537-d871-a7f251d2fd95\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 378,\n    \"exchange\": \"bitmex\",\n    \"id\": \"94fea65d-0340-b21d-dc18-d68255fe861a\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 745241,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.888205Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.888205Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101662,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 322523,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 372285,\n        \"price\": 4141,\n      },\n      {\n        \"amount\": 594796,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 266485,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 1662320,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 215636,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 692437,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 245202,\n        \"price\": 4111,\n      },\n      {\n        \"amount\": 474057,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 133434,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 815082,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 652514,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 855584,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 214963,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 653164,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 304205,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 534110,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 232657,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 244251,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 336232,\n        \"price\": 4061,\n      },\n      {\n        \"amount\": 124818,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 236648,\n        \"price\": 4051,\n      },\n      {\n        \"amount\": 303653,\n        \"price\": 4049,\n      },\n      {\n        \"amount\": 1056614,\n        \"price\": 4041,\n      },\n      {\n        \"amount\": 528166,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 179227,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 280318,\n        \"price\": 3989,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.888214Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.888214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.888216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.888216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 180335,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.892801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.892801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390700,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 184231,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.900534Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.900534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 685345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.908535Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.908535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180594,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.912222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.912222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.915387Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.915387Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 584517,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.921390Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.921390Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.921730Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.921730Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 109538,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.925242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.925242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 6,\n    \"exchange\": \"bitmex\",\n    \"id\": \"651e5e63-2f55-57bb-0981-bcfe35e0c9a4\",\n    \"localTimestamp\": 2019-04-01T00:00:24.947625Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.919Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"00b22336-94dd-5041-23e7-5ae8cb09c111\",\n    \"localTimestamp\": 2019-04-01T00:00:24.947625Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.919Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 80,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ecd03b5b-70d4-37a5-613c-05e7a99e3fee\",\n    \"localTimestamp\": 2019-04-01T00:00:24.947625Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.919Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 352,\n    \"exchange\": \"bitmex\",\n    \"id\": \"65db28aa-2359-cdd0-32a9-11541ba4c280\",\n    \"localTimestamp\": 2019-04-01T00:00:24.947625Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.919Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 744763,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.947659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.947659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.947671Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.947671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 99538,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.947673Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.947673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.947675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.947675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219549,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 150999,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 653664,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 183731,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.952319Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.952319Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101651,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.954663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.954663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101401,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 390950,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502042,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 304374,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.956854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.956854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 304540,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 93644,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.959022Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.959022Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101151,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 391200,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502292,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 93394,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.963659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.963659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391034,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 304706,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 93228,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.963685Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.963685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 665345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.963694Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.963694Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249177,\n        \"price\": 4008,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.965877Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.965877Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 655345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.968526Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.968526Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219049,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 181094,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 184231,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 622412,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.969584Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.969584Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.972733Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.972733Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 677578,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 219449,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.975696Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.975696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88327,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.975719Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.975719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.978174Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.978174Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 742017,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.992376Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.992376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2111,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5f0f1881-b9f2-b2d0-0874-d4012ab5ae75\",\n    \"localTimestamp\": 2019-04-01T00:00:24.999153Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.969Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 321,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fe386625-2275-38f9-47f6-10cd5b8025a8\",\n    \"localTimestamp\": 2019-04-01T00:00:24.999153Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.969Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 309,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1442da3a-8141-4422-76d0-176fdd7ac393\",\n    \"localTimestamp\": 2019-04-01T00:00:24.999153Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.969Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5,\n    \"exchange\": \"bitmex\",\n    \"id\": \"510ca589-0f21-0798-1272-8498b49ae623\",\n    \"localTimestamp\": 2019-04-01T00:00:24.999153Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.969Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.004706Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.004706Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 615345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.009135Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.009135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383405,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 328962,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.056658Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.056658Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 209236,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.060457Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.060457Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 208231,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.069961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.069961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367587,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.072910Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.072910Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.121264Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.121264Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88527,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.121295Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.121295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 139340,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 119440,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.319070Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.874Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 17100,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 990,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.319133Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 43930,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 159340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.319162Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.881Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23930,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 179340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.320243Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.894Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164340,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 39040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.320280Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.903Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 175900,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 25400,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.320288Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.904Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82700,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 184340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.320298Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.907Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 49990,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 176600,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.320303Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.909Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7940,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 14740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.320318Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29000,\n        \"price\": 4080.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.328798Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.947Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 177840,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.330583Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:24.975Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.339066Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110550,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.339072Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 67200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.339376Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 87200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.340074Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 300,\n        \"price\": 4091.25,\n      },\n      {\n        \"amount\": 134680,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.340977Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.183Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135380,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.341010Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.187Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32030,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 107200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.341920Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.190Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24700,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 162690,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.341960Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.341968Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 175900,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 64700,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.341973Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 175200,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.341984Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.342614Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.212Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13040,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 97540,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.346285Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.346357Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.346721Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.217Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12040,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 56930,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.347033Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.218Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.347053Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7240,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 34220,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.347287Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 50690,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.347515Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.224Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4083.75,\n      },\n      {\n        \"amount\": 27680,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.347574Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 740,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 48400,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.348253Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.230Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 7240,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.348505Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18140,\n        \"price\": 4083.25,\n      },\n      {\n        \"amount\": 32740,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.348517Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137370,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.348950Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.348976Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29120,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.349528Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53700,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.349555Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.241Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95990,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.349871Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 24700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.349878Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 118740,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.350904Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.246Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 176640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.350951Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.248Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.350957Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5010,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.350962Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.252Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53000,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.354973Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47530,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.354979Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67400,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.355561Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.269Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4097.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.355566Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52300,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.355572Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 32890,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 119440,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.356056Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.291Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.356091Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12010,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.356096Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66700,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 81700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.356124Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 34680,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.356749Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.306Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66000,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 24630,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.361769Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.308Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10330,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 42050,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.362550Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.311Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51300,\n        \"price\": 4099.75,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.362585Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50600,\n        \"price\": 4099.75,\n      },\n      {\n        \"amount\": 66700,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.362857Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10000,\n        \"price\": 4099.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.363209Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.317Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 11700,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.364084Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 13500,\n        \"price\": 4098.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.364576Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.332Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30430,\n        \"price\": 4098.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.364615Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2600,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.364977Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.338Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51600,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.370229Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 223190,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 49120,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.370726Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67300,\n        \"price\": 4100.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.371205Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95550,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 53040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.371234Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41350,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 25330,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.371240Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.357Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 97330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 125990,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.372221Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 800,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.372260Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.361Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 739017,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383174Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383174Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383176Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383176Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 738417,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383179Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383179Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 737917,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659855,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 703495,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383193Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383193Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 13010,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.392018Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.370Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 395480,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 229540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.392123Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 720147,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.402337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.402337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2100,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.410405Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.397Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16014,\n        \"price\": 4168.5,\n      },\n      {\n        \"amount\": 217988,\n        \"price\": 4166.5,\n      },\n      {\n        \"amount\": 465336,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 94364,\n        \"price\": 4163.5,\n      },\n      {\n        \"amount\": 182485,\n        \"price\": 4161.5,\n      },\n      {\n        \"amount\": 1667531,\n        \"price\": 4160,\n      },\n      {\n        \"amount\": 199220,\n        \"price\": 4158.5,\n      },\n      {\n        \"amount\": 176217,\n        \"price\": 4156.5,\n      },\n      {\n        \"amount\": 914927,\n        \"price\": 4155,\n      },\n      {\n        \"amount\": 232900,\n        \"price\": 4153.5,\n      },\n      {\n        \"amount\": 70261,\n        \"price\": 4151.5,\n      },\n      {\n        \"amount\": 8128178,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 787870,\n        \"price\": 4148.5,\n      },\n      {\n        \"amount\": 98164,\n        \"price\": 4146.5,\n      },\n      {\n        \"amount\": 1004000,\n        \"price\": 4145,\n      },\n      {\n        \"amount\": 46388,\n        \"price\": 4143.5,\n      },\n      {\n        \"amount\": 140665,\n        \"price\": 4141.5,\n      },\n      {\n        \"amount\": 1301251,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 75522,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 151877,\n        \"price\": 4136.5,\n      },\n      {\n        \"amount\": 818719,\n        \"price\": 4135,\n      },\n      {\n        \"amount\": 247780,\n        \"price\": 4133.5,\n      },\n      {\n        \"amount\": 291998,\n        \"price\": 4131.5,\n      },\n      {\n        \"amount\": 1940049,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 271673,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 581459,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 751487,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 602364,\n        \"price\": 4123.5,\n      },\n      {\n        \"amount\": 390966,\n        \"price\": 4122,\n      },\n      {\n        \"amount\": 2332091,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 449271,\n        \"price\": 4118.5,\n      },\n      {\n        \"amount\": 1093105,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 1158711,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 300518,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 386241,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 139168,\n        \"price\": 4110.5,\n      },\n      {\n        \"amount\": 247227,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 354596,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 236508,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 179857,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 227735,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 278236,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 816282,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 1776714,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 304916,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 856784,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 182294,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 79105,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 503492,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 654864,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 210436,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 305405,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 535310,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 157292,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 552230,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 126992,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 174606,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 233857,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 599692,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 555114,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 434016,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 150680,\n        \"price\": 4064.5,\n      },\n      {\n        \"amount\": 628120,\n        \"price\": 4063,\n      },\n      {\n        \"amount\": 267943,\n        \"price\": 4061.5,\n      },\n      {\n        \"amount\": 88502,\n        \"price\": 4059.5,\n      },\n      {\n        \"amount\": 368240,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 125940,\n        \"price\": 4056.5,\n      },\n      {\n        \"amount\": 707516,\n        \"price\": 4055,\n      },\n      {\n        \"amount\": 128758,\n        \"price\": 4053,\n      },\n      {\n        \"amount\": 101112,\n        \"price\": 4051.5,\n      },\n      {\n        \"amount\": 1844812,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 46519,\n        \"price\": 4048.5,\n      },\n      {\n        \"amount\": 183293,\n        \"price\": 4046.5,\n      },\n      {\n        \"amount\": 1612510,\n        \"price\": 4045,\n      },\n      {\n        \"amount\": 94522,\n        \"price\": 4043.5,\n      },\n      {\n        \"amount\": 496396,\n        \"price\": 4042,\n      },\n      {\n        \"amount\": 2724506,\n        \"price\": 4040,\n      },\n      {\n        \"amount\": 136809,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 330162,\n        \"price\": 4037,\n      },\n      {\n        \"amount\": 1084380,\n        \"price\": 4035.5,\n      },\n      {\n        \"amount\": 183666,\n        \"price\": 4034,\n      },\n      {\n        \"amount\": 425164,\n        \"price\": 4032,\n      },\n      {\n        \"amount\": 447709,\n        \"price\": 4030.5,\n      },\n      {\n        \"amount\": 256873,\n        \"price\": 4029,\n      },\n      {\n        \"amount\": 183557,\n        \"price\": 4027.5,\n      },\n      {\n        \"amount\": 1027358,\n        \"price\": 4025.5,\n      },\n      {\n        \"amount\": 450201,\n        \"price\": 4024,\n      },\n      {\n        \"amount\": 503832,\n        \"price\": 4022.5,\n      },\n      {\n        \"amount\": 1421614,\n        \"price\": 4021,\n      },\n      {\n        \"amount\": 224196,\n        \"price\": 4019.5,\n      },\n      {\n        \"amount\": 97015,\n        \"price\": 4017.5,\n      },\n      {\n        \"amount\": 407494,\n        \"price\": 4016,\n      },\n      {\n        \"amount\": 45599,\n        \"price\": 4014.5,\n      },\n      {\n        \"amount\": 815743,\n        \"price\": 4013,\n      },\n      {\n        \"amount\": 90909,\n        \"price\": 4011.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 324693,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412251Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 143503,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412260Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383383,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330184,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412262Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 369811,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412264Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412264Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 85243,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 323887,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 576517,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412283Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145631,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412286Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412286Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 167813,\n        \"price\": 4143.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.421003Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.421003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383353,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330214,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.421037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.421037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 728474,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.421041Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.421041Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66000,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 13710,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.434529Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.408Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 155990,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.434573Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80550,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.439203Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29430,\n        \"price\": 4098.75,\n      },\n      {\n        \"amount\": 48530,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.439257Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 40400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.439296Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 37330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.439314Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.427Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65550,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 68040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.440787Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.429Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 42350,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.442096Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.431Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8550,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.443117Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.433Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9000,\n        \"price\": 4099.25,\n      },\n      {\n        \"amount\": 7630,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.446678Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.436Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450004Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.439Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50550,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 238190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450155Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.440Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 376899,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3336347,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1776888,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 857132,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 325182,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450490Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450490Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 731437,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450533Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383323,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330244,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450539Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 145270,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450544Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 376987,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3336435,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1776976,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 857308,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215281,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450550Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450550Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 150081,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 201564,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 18580,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 404833,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 12919,\n        \"price\": 4193.5,\n      },\n      {\n        \"amount\": 98991,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 20803,\n        \"price\": 4191.5,\n      },\n      {\n        \"amount\": 101862,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 185119,\n        \"price\": 4189.5,\n      },\n      {\n        \"amount\": 322723,\n        \"price\": 4189,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737767,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358460,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 1650006,\n        \"price\": 3985,\n      },\n      {\n        \"amount\": 137168,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 681391,\n        \"price\": 3983,\n      },\n      {\n        \"amount\": 243832,\n        \"price\": 3982.5,\n      },\n      {\n        \"amount\": 529542,\n        \"price\": 3981,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450560Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65760,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 158270,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450571Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 170270,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450574Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450574Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377075,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3336523,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1777064,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 857484,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 216769,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450577Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145661,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450579Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450579Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50600,\n        \"price\": 4099.75,\n      },\n      {\n        \"amount\": 1040,\n        \"price\": 4097.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.451683Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.442Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96100,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.453654Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 149440,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.455539Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.446Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12500,\n        \"price\": 4098.25,\n      },\n      {\n        \"amount\": 43350,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.456749Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.447Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 846838,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 388293,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 805933,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 905743,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 353826,\n        \"price\": 3952,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.458703Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.458703Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 360503,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.458726Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.458726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 225281,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.458732Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.458732Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 173680,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.461128Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.449Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 848741,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 390196,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 807836,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 909549,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1083833,\n        \"price\": 3940,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.477431Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.477431Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377258,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3336706,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1777247,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 857850,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 225943,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.477463Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.477463Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 392176,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 355586,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 357252,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 3337036,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1777467,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 677688,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 151087,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 88571,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 130267,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 85353,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 210656,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 87727,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 230516,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 175596,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 133691,\n        \"price\": 4067.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.477470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.477470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 816363,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.485166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.485166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733203,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.485194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.485194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42350,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.487096Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.478Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733828,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.488784Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.488784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 617792,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 350418,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 858850,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 130301,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 518948,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.491181Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.491181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 67200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 116100,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.492314Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 45330,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.495363Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.485Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733728,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.498692Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.498692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1010,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.501220Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.492Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.507466Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.507466Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 620592,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 354148,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 859850,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 130309,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 521748,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.507469Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.507469Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383293,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330274,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.507474Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.507474Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 135168,\n        \"price\": 3533,\n      },\n      {\n        \"amount\": 26045,\n        \"price\": 3044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.507480Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.507480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50520,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.507627Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.497Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 990,\n        \"price\": 4100.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.513461Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.504Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6630,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.515232Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.506Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.516415Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.516415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4097.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.517582Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.508Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32601,\n        \"price\": 3927.5,\n      },\n      {\n        \"amount\": 52520,\n        \"price\": 3925.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.518973Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.518973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 171640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.526342Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.516Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 28550,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.527589Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.518Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 101700,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.529630Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.521Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 370858,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.551084Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.551084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 734353,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.559938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.559938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1990,\n        \"price\": 4100.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.560108Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.538Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 136100,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.560518Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 65330,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.561776Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.547Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10700,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1040,\n        \"price\": 4097.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.579087Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.565Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2990,\n        \"price\": 4100.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.579954Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.567Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377346,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3337124,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1777555,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 860026,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 226261,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.584171Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.584171Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383263,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330304,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.586488Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.586488Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 24090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.606526Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153680,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 151640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.608215Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4074.75,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.611021Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.599Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 546,\n    \"exchange\": \"bitmex\",\n    \"id\": \"296e2de3-48c6-eae3-c1c4-209bc578b120\",\n    \"localTimestamp\": 2019-04-01T00:00:25.612722Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.294Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 201,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9ad11b50-4bbd-841d-01e3-54884d6a1a3b\",\n    \"localTimestamp\": 2019-04-01T00:00:25.612722Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.294Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 448,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6984912a-0234-d026-fef0-5303a8d1f022\",\n    \"localTimestamp\": 2019-04-01T00:00:25.612722Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.294Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 350,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b0b65056-9570-857a-bd1e-3d41fc672257\",\n    \"localTimestamp\": 2019-04-01T00:00:25.612722Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.294Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1455,\n    \"exchange\": \"bitmex\",\n    \"id\": \"316fbf01-df41-7e58-3aae-aa2c3760a523\",\n    \"localTimestamp\": 2019-04-01T00:00:25.612722Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.294Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 545,\n    \"exchange\": \"bitmex\",\n    \"id\": \"db8503bb-89c4-d6db-9305-44f4eb25e6eb\",\n    \"localTimestamp\": 2019-04-01T00:00:25.629620Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.307Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f81c20ab-eae7-32b5-147d-0ad2f2cd502c\",\n    \"localTimestamp\": 2019-04-01T00:00:25.629620Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.307Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8ae02337-1af3-02d2-cb51-ec6135544360\",\n    \"localTimestamp\": 2019-04-01T00:00:25.629652Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.316Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.629655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.629655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 250,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c85df08b-8508-cef5-5221-6e00f7d7c797\",\n    \"localTimestamp\": 2019-04-01T00:00:25.629659Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.325Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130364,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.629661Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.629661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 738353,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.629667Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.629667Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 234102,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.634957Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.634957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 739853,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.646136Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.646136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.652052Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.643Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129440,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.653598Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 48550,\n        \"price\": 4086.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.669332Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.657Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383241,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330326,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.669919Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.669919Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 125940,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.672324Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.675712Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.665Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 161750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.677997Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 225000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.680167Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.670Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 161990,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 136080,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.683473Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 356348,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.696141Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.696141Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29695,\n        \"price\": 4211.5,\n      },\n      {\n        \"amount\": 104037,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 184430,\n        \"price\": 4170.5,\n      },\n      {\n        \"amount\": 105764,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 1940919,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 1769556,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 600127,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 83115,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 2153010,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 424048,\n        \"price\": 4010.5,\n      },\n      {\n        \"amount\": 181402,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 91704,\n        \"price\": 3971.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.696236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.696236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 170581,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.696247Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.696247Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582317,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.696250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.696250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741853,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.704298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358548,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.704306Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704306Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527346,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.704310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181794,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 89071,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 85853,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 207731,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.704326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13010,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.710269Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1500,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.712442Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.702Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383211,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330356,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.718261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.718261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 218949,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 151587,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 208231,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 621912,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.718293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.718293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41350,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.725474Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66300,\n        \"price\": 4100.25,\n      },\n      {\n        \"amount\": 9600,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.728006Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 371480,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 74520,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.730550Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.721Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 33620,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.733555Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.724Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1990,\n        \"price\": 4100.75,\n      },\n      {\n        \"amount\": 1060,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.736831Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a0d538d1-e6a0-6c90-8c66-5172f17fb1c4\",\n    \"localTimestamp\": 2019-04-01T00:00:25.737779Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.481Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5700,\n        \"price\": 4101.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.738246Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 777814,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.757136Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.757136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.760056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.760056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6400,\n        \"price\": 4101.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.761851Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.752Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 648514,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 155587,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 308706,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.765030Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.765030Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 229540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.767553Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.758Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 225016,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.768336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.768336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88946,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 224891,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.770631Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.770631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.786852Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.786852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 310,\n        \"price\": 4091.25,\n      },\n      {\n        \"amount\": 162690,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.789046Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.779Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741764,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.801847Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.801847Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88846,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.806137Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.806137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19220,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 126910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.807405Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.795Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 106910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 48550,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.808933Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45330,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 61350,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.813270Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 393915,\n        \"price\": 4009.5,\n      },\n      {\n        \"amount\": 414421,\n        \"price\": 4007.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.814871Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.814871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 83040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.817484Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 39090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.817528Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.807Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 28550,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 59090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.820727Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.809Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 691764,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.821069Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.821069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9620,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.822846Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.811Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383181,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330386,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.823085Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.823085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 105940,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 81350,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.825807Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 913549,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.826185Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.826185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50520,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 107040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.828629Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391134,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.831419Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.831419Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 641764,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.833143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.833143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 323082,\n        \"price\": 3931,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.837639Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.837639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 631764,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.839666Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.839666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 778404,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.844479Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.844479Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383151,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330416,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.846027Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.846027Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27671,\n        \"price\": 4213.5,\n      },\n      {\n        \"amount\": 99141,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 182385,\n        \"price\": 4172,\n      },\n      {\n        \"amount\": 447666,\n        \"price\": 4151,\n      },\n      {\n        \"amount\": 335020,\n        \"price\": 4130.5,\n      },\n      {\n        \"amount\": 1769586,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 600157,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 83175,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 256963,\n        \"price\": 4029,\n      },\n      {\n        \"amount\": 171769,\n        \"price\": 4009,\n      },\n      {\n        \"amount\": 280468,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 42987,\n        \"price\": 3969.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.854318Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.854318Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4220,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 43550,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.861570Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 47200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.864497Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.855Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184556,\n        \"price\": 4127.5,\n      },\n      {\n        \"amount\": 581489,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 94073,\n        \"price\": 4126.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.867063Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.867063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 116640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 32100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.867935Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.858Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 631775,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778415,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.870701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.870701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.875243Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.875243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6010,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 52330,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.877633Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.868Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88966,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.883330Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.883330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 203076,\n        \"price\": 4064,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.889636Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.889636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 578317,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 159587,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220891,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 89853,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.891684Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.891684Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 22700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 106910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.894323Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.885Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 503092,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.895924Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.895924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 778544,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.895969Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.895969Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 778748,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.898824Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.898824Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.907075Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.907075Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358498,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 218999,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.907151Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.907151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 63550,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.909452Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.899Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 235230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.910767Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.901Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 32330,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 101350,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.912998Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.904Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 476540,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.913477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.913477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 262190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.915717Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.905Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 329282,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.917267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.917267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 309916,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94853,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 208331,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.930573Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.930573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 470540,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.938164Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.938164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.938194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.938194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4091.25,\n      },\n      {\n        \"amount\": 64930,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.941031Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 382612,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.942571Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.942571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527522,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3337300,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1777731,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 860378,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221527,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.946725Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.946725Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.949690Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 186337,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.951000Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.951000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.951030Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.951030Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 159440,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.953761Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.943Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3963,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5498e11e-55b9-5093-6652-3b7dc7d64ce0\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 221,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d19ed005-4d02-d7e0-aff1-762b51613bb2\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 244,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b1d1b762-0a08-99d1-b878-703fb50b2c7b\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1874,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b847d568-b7bc-d814-e216-bb47752675a7\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 160,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d90873a7-6024-a1bc-6ea0-7e4c5d4016aa\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"20b72c4e-ad0b-fe2f-5c26-47bbf52731db\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 101,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1985bde0-c978-2af9-5ed9-00518cc28ec5\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"734fef14-5f7b-7875-829d-07ba82e6227f\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e2bfe2ad-ef01-69b9-6429-277ec8479616\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"de29b0ea-17dd-ed4e-af6c-9833690dded5\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aa0428b5-cff4-0c46-f71b-1de16d8a68cc\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"be17a4d5-6585-9253-1554-66df3329fa2f\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"08e98fcb-d00d-b708-0171-e3f51b9a058f\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"79a9c103-2336-d76a-7cab-4dc49e8dd90f\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5,\n    \"exchange\": \"bitmex\",\n    \"id\": \"79a4bdfe-b5a2-75d4-bc83-af8370bfa0ea\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2e97e885-f406-82f0-c60d-db10c9737fa1\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"982899b6-4d5f-da4f-36e1-6bc70c3fee27\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9b391cb1-c173-027b-2202-baf76b16ad80\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0644b3a2-08ec-01b4-2e05-30c034733a39\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 244,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ac393485-642d-9c02-1797-201da78d99f3\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 25,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af172e0a-9867-4896-01f6-4629c3427ca2\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8172247c-a620-6c86-53b7-5328e704df85\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 148,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8ae4366f-7828-aa48-45b4-76acad3e6345\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 956488,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 577608,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.960163Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.960163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.960166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.960166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 89966,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.960168Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.960168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 451063,\n        \"price\": 4111.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.960170Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.960170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 503087,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 308711,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.960173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.960173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 4010,\n        \"price\": 4075.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.963651Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.949Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29120,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 249540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.965160Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:25.951Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 578347,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.968568Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.968568Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8600,\n        \"price\": 4433,\n      },\n      {\n        \"amount\": 5854,\n        \"price\": 4432,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.968601Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.968601Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 233553,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 203867,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.972816Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.972816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 79966,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 186581,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.976271Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.976271Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226669,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 998155,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.984655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.984655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 422,\n        \"price\": 4314,\n      },\n      {\n        \"amount\": 80016,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.003595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.003595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2331425,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 3336634,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1284936,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2723840,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.009974Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.009974Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 778796,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.013358Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.013358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 187381,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.017324Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.017324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6890,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.027133Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.027298Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.007Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1540,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.028018Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.013Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 89,\n    \"exchange\": \"bitmex\",\n    \"id\": \"756ea2cb-7499-a3d0-96ca-b9b5057d920e\",\n    \"localTimestamp\": 2019-04-01T00:00:26.028055Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.781Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 507622,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.032040Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.032040Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 610754,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.036119Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.036119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 370113,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.036196Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.036196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 750687,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 748061,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.044477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.044477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 773264,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.057538Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.057538Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238190,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 53120,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.062073Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.048Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632609,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.062589Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.062589Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 183115,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 410550,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 288705,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 317178,\n        \"price\": 3964,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.070468Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.070468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 188381,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.071854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.071854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1386292,\n        \"price\": 4190,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.075386Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.075386Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47050,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.075875Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29120,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 262190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.075994Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.066Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95440,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.077172Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96330,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.079112Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 360113,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 642609,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.079489Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.079489Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 930,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.081109Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.071Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 244906,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 956651,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 677851,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 80342,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 309623,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.082646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.082646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 400114,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.088545Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.088545Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80292,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.090315Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.090315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102280,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 149589,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 403298,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 77193,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 256937,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 205524,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 153076,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 269864,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3349514,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 617069,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 824735,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 588357,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 962125,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 575354,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1781273,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 356888,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 650768,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 308950,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 679461,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 577703,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 861344,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 218677,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 160231,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 186015,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 80614,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 390812,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 54034,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 188703,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 642931,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.096419Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.096419Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131140,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.099660Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 773263,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.107682Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.107682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238190,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 74470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.111506Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 211230,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.125173Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96853,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.130933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.130933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12252,\n        \"price\": 4458,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.133006Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.133006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27680,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.142562Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 76600,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.144719Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 762467,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.151383Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.151383Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 398752,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 644293,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.151414Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.151414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1158651,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 1769526,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 807776,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 3349454,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 679401,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 309563,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 521688,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 985220,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1435918,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 748001,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.156823Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.156823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 769838,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.160817Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.160817Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 135380,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.167490Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.157Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8127878,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 750387,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 3349154,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1844512,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 1908066,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 1754910,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 508157,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 1610896,\n        \"price\": 3950,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.169265Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.169265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66100,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.169559Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.160Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 199540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 79120,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.170839Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.161Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 770030,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.172056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.172056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 161990,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.172587Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 195000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.175580Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40090,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.175622Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94740,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 79820,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.179097Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 105240,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 195700,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.180560Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.171Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690768,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 379799,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.181567Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.181567Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95630,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 102450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.183021Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 396888,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 419799,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.183616Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.183616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4097.75,\n      },\n      {\n        \"amount\": 49530,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.185004Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.176Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 990,\n        \"price\": 4100.75,\n      },\n      {\n        \"amount\": 10600,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.187200Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.178Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 744921,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 795840,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 660649,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.188495Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.188495Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 780030,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.190766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.190766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4100.75,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.193445Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.184Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21310,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.202505Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.202505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 124740,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.203774Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.193Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129738,\n        \"price\": 4196,\n      },\n      {\n        \"amount\": 97914,\n        \"price\": 4146.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.204760Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.204760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.206534Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.209571Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.209571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 192353,\n        \"price\": 4054,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.211463Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.211463Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 410495,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.214577Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.214577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577694,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.217836Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.217836Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50470,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 107040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.222160Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.209Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.222196Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.210Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 779030,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.232404Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.232404Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390312,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.234596Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.234596Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662564,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.237486Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.237486Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 864735,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 730768,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 459799,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 197292,\n        \"price\": 4077.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.239353Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.239353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 66800,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.249388Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.239Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 17400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.252525Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1400,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.254476Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 5532,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3c4e37b5-46f6-e3aa-5c2f-542d6438da37\",\n    \"localTimestamp\": 2019-04-01T00:00:26.260249Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.035Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 355624,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 153114,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 744959,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221557,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.260298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.260298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 21,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.260300Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.260300Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 22,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.260303Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.260303Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 304563,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.260305Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.260305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770768,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 499799,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.260307Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.260307Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 106990,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.261310Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1301001,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 1940669,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 2331175,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 1769276,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 3348904,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 521438,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1435668,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1284686,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1844262,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 2723590,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.265935Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.265935Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367014,\n        \"price\": 4129.5,\n      },\n      {\n        \"amount\": 390311,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 779031,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 1844261,\n        \"price\": 4050,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.268743Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.268743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137170,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.271484Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130911,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.274484Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.274484Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 304812,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.279551Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.279551Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 655364,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 207831,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.284567Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.284567Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305062,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 655114,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.289350Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.289350Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7a0e5963-a407-aaea-3a3f-c41739a0c483\",\n    \"localTimestamp\": 2019-04-01T00:00:26.298908Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.086Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 580594,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.298937Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.298937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.305001Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.305001Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1927469,\n        \"price\": 4130,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.305004Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.305004Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 235230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.305600Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.296Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 4319,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2d98026e-4f02-4790-7c7c-2d5b62cfd806\",\n    \"localTimestamp\": 2019-04-01T00:00:26.310611Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.125Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6477,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d0bc0782-f519-bb48-6c4e-0c4ee110f3eb\",\n    \"localTimestamp\": 2019-04-01T00:00:26.310611Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.125Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4075.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.310611Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305162,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.313992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.313992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.314400Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 420698,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 432834,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.315807Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.315807Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 262190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.316601Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.307Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.317538Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.317538Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588346,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.331796Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.331796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 779747,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.336435Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.336435Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 929747,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.336528Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.336528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 270,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.337448Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4040.5,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 4041.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.337526Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.327Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50490,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.338317Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.328Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12650,\n        \"price\": 4308,\n      },\n      {\n        \"amount\": 80814,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.341922Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.341922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.348778Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80864,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.353187Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.353187Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 134680,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.364862Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 829747,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.366359Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.366359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 622563,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.370321Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.370321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f4b5de75-57d9-1a6d-29e7-27a281ae8aaf\",\n    \"localTimestamp\": 2019-04-01T00:00:26.375346Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.210Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137037,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.375386Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.375386Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130913,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.378863Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.378863Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 829951,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.388248Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.388248Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645063,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.391729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.391729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66100,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 740,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.393166Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.382Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.393445Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.384Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1786273,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 800840,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.393909Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.393909Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 128168,\n        \"price\": 3944,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.395356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.395356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 55930,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.395935Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.386Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 175900,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.398508Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.388Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26980,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 23400,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.400234Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.391Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232995,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3385773,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.401513Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.401513Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8870,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.402040Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6950,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.403635Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.394Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770946,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221777,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 622022,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 521548,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1030989,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.407027Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.407027Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 97330,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.411964Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.403Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 3520,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.414769Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.405Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390461,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 21960,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.419643Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.419643Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130937,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.421634Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.421634Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.425503Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.425503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650763,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.427029Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.427029Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 839951,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.429472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.429472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 626149,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.432598Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.432598Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650763,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.435691Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.435691Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 218781,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 370202,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221985,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 96905,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 207935,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.439374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.439374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131063,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.441091Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.441091Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 200240,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.444048Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81350,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 43440,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.444089Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.427Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 100000,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 85930,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.444103Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.431Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650011,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.450444Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.450444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 573294,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.452047Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.452047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131217,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.456095Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.456095Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131219,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.460798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.460798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660011,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.469047Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.469047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131225,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.469079Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.469079Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61350,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 63440,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.470381Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.441Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214885,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 164127,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 386565,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366306,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 843847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 364612,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 503726,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 100801,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 204039,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.471029Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.471029Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 65490,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.471701Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.461Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.475576Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.466Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 863847,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.476548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.476548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 37330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.477355Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121570,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.480113Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.469Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 131640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.481657Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41350,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 83440,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.485643Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.475Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 858847,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.487822Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.487822Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 862070,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.492323Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.492323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94740,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 102450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.494040Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.484Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 863416,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.495732Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.495732Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 864950,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.501283Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.501283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65690,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.504732Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.495Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 543468,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 162044,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 674392,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 682961,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.505026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.505026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 134665,\n        \"price\": 4141.5,\n      },\n      {\n        \"amount\": 445271,\n        \"price\": 4118.5,\n      },\n      {\n        \"amount\": 768946,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 199076,\n        \"price\": 4064,\n      },\n      {\n        \"amount\": 490396,\n        \"price\": 4042,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.508164Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.508164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 200725,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.510481Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.510481Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 141570,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.513923Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.504Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 372700,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.518003Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.508Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214965,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 200765,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 366326,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222145,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 100841,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 204119,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.518417Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.518417Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 874950,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.523660Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.523660Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 575460,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.525185Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.525185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 752,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d3cab654-6659-415b-950b-722d1e753cf7\",\n    \"localTimestamp\": 2019-04-01T00:00:26.534275Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.429Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 200767,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.534310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.534310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 315917,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 560199,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.534312Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.534312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 211230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.534952Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.508Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64090,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.541384Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.532Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 366373,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.543084Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.543084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663917,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.543113Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.543113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224145,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.543116Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.543116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.543695Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.545932Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.545932Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.545960Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.545960Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 93140,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.546221Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19980,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 14000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.551349Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.542Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81064,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.555659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.555659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 499820,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.555684Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.555684Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 223190,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 68040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.556715Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.547Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 366173,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 664117,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.560262Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.560262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 139970,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.561081Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.549Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63140,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 132450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.561128Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.550Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 864750,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 396903,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 209127,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 42964,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 559835,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 521563,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.569729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.569729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 365739,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 664551,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.569750Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.569750Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 12740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.571328Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.561Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 120689,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.573958Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.573958Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33140,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.581234Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 879950,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.581253Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.581253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.581271Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.581271Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8822,\n        \"price\": 3688.5,\n      },\n      {\n        \"amount\": 266853,\n        \"price\": 3688,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.583586Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.583586Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845840,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 164127,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 150121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.588991Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.588991Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96064,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.594004Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.594004Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.600500Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.600500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44438,\n        \"price\": 3951.5,\n      },\n      {\n        \"amount\": 34944,\n        \"price\": 3934.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.602214Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.602214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 889950,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.606533Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.606533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 889972,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.629336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.629336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 860973,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 348840,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.634568Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.634568Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194867,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.660304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.660304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 28785,\n        \"price\": 3918.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.674427Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.674427Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46388,\n        \"price\": 4143.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.676862Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.676862Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 362597,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.684008Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.684008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 667878,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.690671Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.690671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.694398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.694398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 985268,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.696825Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.696825Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24360,\n        \"price\": 4086.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.698671Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.689Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72590,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.704096Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.691Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662051,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.707168Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.707168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 939972,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.709814Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.709814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 159627,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.716847Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.716847Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 210,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.728597Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194885,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.730930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.730930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64080,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.736707Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.725Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 939772,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.747838Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.747838Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 236639,\n        \"price\": 4105.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.750817Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.750817Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 43550,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 106910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.751151Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.741Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 655217,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.752459Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.752459Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 63550,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.754705Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63440,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 101000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.755555Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 119970,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 53140,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.757247Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.748Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95864,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.757301Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.757301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 493726,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.760856Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.760856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224612,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.764252Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.764252Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 943772,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.766013Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.766013Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 116640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 83040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.768438Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 53345,\n        \"price\": 3994.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.772092Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.772092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 79819,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.777341Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.777341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 362702,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.779023Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.779023Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 25090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 121910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.781721Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 637541,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.782227Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.782227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5090,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 141910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.786165Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.775Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51241,\n        \"price\": 4206.5,\n      },\n      {\n        \"amount\": 99046,\n        \"price\": 4160.5,\n      },\n      {\n        \"amount\": 214670,\n        \"price\": 4142.5,\n      },\n      {\n        \"amount\": 249105,\n        \"price\": 4133.5,\n      },\n      {\n        \"amount\": 164483,\n        \"price\": 4124.5,\n      },\n      {\n        \"amount\": 849443,\n        \"price\": 4115.5,\n      },\n      {\n        \"amount\": 161816,\n        \"price\": 4106.5,\n      },\n      {\n        \"amount\": 575796,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 34714,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943993,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 162486,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 600820,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 644943,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 102216,\n        \"price\": 4051.5,\n      },\n      {\n        \"amount\": 328290,\n        \"price\": 4042.5,\n      },\n      {\n        \"amount\": 584990,\n        \"price\": 4033.5,\n      },\n      {\n        \"amount\": 264595,\n        \"price\": 4015.5,\n      },\n      {\n        \"amount\": 44975,\n        \"price\": 3969.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.791464Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.791464Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 43440,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 136640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.792802Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.778Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.797120Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.797120Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 620889,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.802524Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.802524Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577249,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.806573Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.806573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 187715,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 96964,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.806611Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.806611Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 365857,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 577251,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.809058Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.809058Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96670,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.811395Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.811395Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6a8115cc-b891-b2a6-0bfd-21f2753d913d\",\n    \"localTimestamp\": 2019-04-01T00:00:26.818955Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.728Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202260,\n        \"price\": 4136,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 185418,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.822221Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.822221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 408570,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 527446,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 153038,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 768794,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 682535,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.823799Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.823799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3379773,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.825594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.825594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189415,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 97770,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.828995Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.828995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 162450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.829172Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.830127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.830127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 195700,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.834163Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.825Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 575276,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 845656,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 214781,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 159443,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 189231,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 362690,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 224600,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 493714,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 305150,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 100829,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.834222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.834222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.840827Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.840827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6970,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.842311Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 43550,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 161910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.862366Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127627,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.864322Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.864322Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23440,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 121000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.865621Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.855Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.878348Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.878348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 125342,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579536,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.891494Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.891494Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 331296,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.896921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.896921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.905633Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.905633Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 54550,\n        \"price\": 4075.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.916863Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.903Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 90020,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.917490Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.906Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 58870,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.919367Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.908Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3540,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.920728Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.910Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1850,\n    \"exchange\": \"bitmex\",\n    \"id\": \"89c38201-8dc6-68cc-c4cf-8157c8bb37e7\",\n    \"localTimestamp\": 2019-04-01T00:00:26.921083Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.819Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 104090,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.921811Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.912Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 166990,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.925424Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.915Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39750,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.926644Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.917Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 238486,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 552230,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.926651Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.926651Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 40710,\n        \"price\": 4086.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.928716Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.919Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 176173,\n        \"price\": 4161,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.929147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.929147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5030,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.932511Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4079.75,\n      },\n      {\n        \"amount\": 32670,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.934160Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.925Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9000,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.935633Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137870,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.938422Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.929Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4091.25,\n      },\n      {\n        \"amount\": 162690,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.959763Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.950Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 125442,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.961078Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.961078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579591,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.966751Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.966751Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 118270,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.974224Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 459978,\n        \"price\": 4117.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.980138Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.980138Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136990,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 83140,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.981739Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.972Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 203190,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 215700,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.984708Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.975Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49080,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 218190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.987024Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.977Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 67100,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.988082Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.978Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.998766Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.989Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 166990,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.000036Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.991Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577591,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.001010Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.001010Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49000,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.002440Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5140,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.006154Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577675,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.007839Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.007839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4075.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.008034Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:26.998Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 360430,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.022844Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.013Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 233190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.034100Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.024Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136990,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 113140,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.037542Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 303950,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 95829,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 204019,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.046299Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.046299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.054849Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.060260Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.060260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135281,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.066959Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.066959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 576199,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.069680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.069680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 408439,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.074108Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.074108Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 397826,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.074137Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.074137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213190,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.077034Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.066Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.078851Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 576719,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.079397Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.079397Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 331266,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.086268Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.086268Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 966143,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.100957Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.100957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 846579,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.107050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.107050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 769717,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.107113Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.107113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 120840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.116508Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.101Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 94090,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 100020,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.118496Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.108Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12000,\n        \"price\": 4034,\n      },\n      {\n        \"amount\": 1060,\n        \"price\": 4034.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.121473Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 280,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.123799Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239700,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.126600Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 963048,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.126921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.126921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 141910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 59460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.128576Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49090,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.132369Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.122Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215704,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.132505Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.132505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184688,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.138129Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.138129Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 621522,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 522063,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.141173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.141173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1787196,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.141198Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.141198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 244240,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.142731Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 745882,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.146077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.146077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 126910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 38400,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.148298Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.138Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 18520,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.152849Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 304873,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.154044Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.154044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.156712Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266335,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.165617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.165617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 555820,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.176287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.176287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 33520,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.178526Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.180624Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.180624Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 556331,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.198698Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.198698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 961143,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.198732Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.198732Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 105602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 536331,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.205594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.205594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 637449,\n        \"price\": 3951,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.212577Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.212577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 570399,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.216573Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.216573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 95930,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 31290,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.227340Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.212Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 264240,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.227976Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 143140,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.228010Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.217Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 566332,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.229058Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.229058Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 100020,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.230651Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1001144,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.237501Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.237501Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50690,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 8170,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.241977Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 258003,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 999221,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.242346Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.242346Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1031145,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.244430Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.244430Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 265840,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.245956Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1309381,\n        \"price\": 3990,\n      },\n      {\n        \"amount\": 1084109,\n        \"price\": 3940,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.248376Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.248376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144740,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.252196Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2331841,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 3380439,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1285352,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2724256,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.253638Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.253638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 58870,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.254232Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 568944,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.257736Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.257736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 119870,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.260619Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.246Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5140,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.263320Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 568994,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031195,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.267402Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.267402Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 751187,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 683335,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.272343Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.272343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100,\n        \"price\": 7360,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.278250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.278250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 569218,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.281854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.281854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.283741Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.283741Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 571399,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 845579,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.285427Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.285427Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6900,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.292337Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.263Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1021195,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.293158Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.293158Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241840,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 102220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.294742Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.284Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185115,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 412495,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 290705,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 319178,\n        \"price\": 3964,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.297775Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.297775Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 527772,\n        \"price\": 4068,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.304396Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.304396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1017195,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.304399Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.304399Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 568418,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.304401Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.304401Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 265840,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.307155Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.296Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472,\n        \"price\": 4314,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.314114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.314114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.326462Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.326462Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 558418,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.331593Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.331593Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 587399,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.350005Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.350005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1017305,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.351813Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.351813Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 97745,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.354180Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.354180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.362274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.362274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386554,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.366305Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.366305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 599719,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 822579,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.368291Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.368291Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525706,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.379803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.379803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 521618,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.381990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.381990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184548,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 97665,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.386339Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.386339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305151,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.388270Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.388270Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386758,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.391281Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.391281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 587846,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 600219,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203519,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 146161,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.392533Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.392533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215204,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.404818Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.404818Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 497004,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.407078Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.407078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87827,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.410590Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.410590Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3100,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.415322Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.406Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1018305,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.417701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.417701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8128178,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 751487,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 3380739,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1844561,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 1908366,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 1755210,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 508457,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 1611196,\n        \"price\": 3950,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.421234Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.421234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 746882,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 586399,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.426197Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.426197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 55870,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.427269Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.418Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 397876,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 215154,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.429014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.429014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 208740,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.429654Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.420Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224612,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.431448Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.431448Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 825479,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.433620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.433620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1158711,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 1769336,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 807836,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 3380799,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 746942,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 305211,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 522123,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 985328,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1435728,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 683395,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.440725Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.440725Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 621897,\n        \"price\": 4028,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.442879Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.442879Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 502004,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.450121Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.450121Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1040,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.455766Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.445Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 203521,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.457051Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.457051Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 90020,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 130840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.461542Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 235521,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.463609Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.463609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 998305,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.464744Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.464744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 131910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.466189Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.453Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 117870,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 59750,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.466251Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.457Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305212,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.467715Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.467715Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 55402,\n        \"price\": 3783,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.469666Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.469666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305214,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.471520Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.471520Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 210,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.478055Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.465Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131800,\n        \"price\": 4219,\n      },\n      {\n        \"amount\": 153807,\n        \"price\": 4169,\n      },\n      {\n        \"amount\": 594831,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 692472,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 474092,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 861008,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.484439Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.484439Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1001366,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.489552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.489552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224689,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.491779Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.491779Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80020,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 140840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.494461Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.482Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 655318,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.503202Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.503202Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.503262Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.503262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1301251,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 1927719,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 2332091,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 1769586,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 3381049,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 522373,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1435978,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1285602,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1844811,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 2724506,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.508556Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.508556Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 496916,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.513138Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.513138Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 180982,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 254792,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 609328,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 215712,\n        \"price\": 4064.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.517827Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.517827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.520553Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.520553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 681422,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 890983,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 509183,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.522679Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.522679Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305215,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.524755Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.524755Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49140,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.525270Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.486Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 70020,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 150840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.526986Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.512Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 79750,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.529357Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.519Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 67100,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.531004Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.521Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12850,\n        \"price\": 4308,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.532142Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.532142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 126840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 199900,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.532527Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.523Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 65930,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.534993Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.526Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 99750,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.537050Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 15700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.538863Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.529Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 505183,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.540066Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.540066Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 501095,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.544372Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.544372Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 28400,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 209900,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.546175Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64090,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 239900,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.546360Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5300,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.546572Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 24460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.548205Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 205000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 15520,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.548702Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.538Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 238740,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.552030Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.541Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 451379,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.552859Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.552859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4072.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.555937Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 218740,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 32100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.558544Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202360,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 72260,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.561339Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.551Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75000,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.563073Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 473,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c337b9c0-c8d3-0fa8-d0ed-deca2a6bdb73\",\n    \"localTimestamp\": 2019-04-01T00:00:27.573679Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.548Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 7627,\n    \"exchange\": \"bitmex\",\n    \"id\": \"713a4327-bf46-d60b-bd65-ec507e8c79f7\",\n    \"localTimestamp\": 2019-04-01T00:00:27.573679Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.548Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 993266,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.573708Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.573708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 30700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.573741Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.564Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 34090,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 269900,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.581483Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.567Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"650adc35-5318-78e9-cb4e-99601e287432\",\n    \"localTimestamp\": 2019-04-01T00:00:27.587239Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.565Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 196230,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 31400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.589311Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.580Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 35930,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 126840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.602504Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.593Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 138360,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.604105Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136260,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.607480Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.596Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50690,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.613555Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.604Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.614963Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.605Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 108360,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 147870,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.616517Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.607Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4090,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.618633Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4076.75,\n      },\n      {\n        \"amount\": 112190,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.621012Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.611Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241840,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 229000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.640385Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245900,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 220230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.640964Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5320,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.642983Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.634Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160193,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 98415,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 994016,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647522Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647522Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 993966,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647553Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 497007,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647557Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647557Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 488680,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647598Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647598Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 986595,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647601Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647601Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484592,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647751Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647751Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 174594,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 275829,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 1436980,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 209360,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 528775,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 435020,\n        \"price\": 4066,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647764Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647764Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160793,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 599869,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 586749,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.648190Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.648190Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 99836,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.650714Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.650714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98882,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.654495Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.654495Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 681418,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.654500Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.654500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1787186,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 451369,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.655206Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.655206Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474592,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.659652Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.659652Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 986889,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.663524Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.663524Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 4076.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.672631Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.662Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 354424,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 235439,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 148389,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 75993,\n        \"price\": 4102.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 347640,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 551030,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 1029789,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 173394,\n        \"price\": 4072.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.673146Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.673146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.675554Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.675554Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 543483,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.677934Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.677934Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177816,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.678729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.678729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 133070,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 233100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.680685Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 269864,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3344180,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.681513Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.681513Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.684526Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.684526Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160978,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 184733,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 99067,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 386943,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 305227,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 95841,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 655330,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 235533,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 621534,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.690186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.690186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59835,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.692169Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.692169Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 353224,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 234239,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 147189,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 74793,\n        \"price\": 4102.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 346440,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 549830,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 1028589,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 172194,\n        \"price\": 4072.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.702470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.702470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91559,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.702519Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.702519Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 592749,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 546483,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.702522Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.702522Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164816,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 72867,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.705304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.705304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 163816,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.710095Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.710095Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151816,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 85003,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.710124Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.710124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497762,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.711784Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.711784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 134232,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102054,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.713635Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.713635Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 223989,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.715821Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.715821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3348228,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.717562Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.717562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 273912,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.722847Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.722847Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151237,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.725832Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.725832Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 478886,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.727281Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.727281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 309275,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.729233Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.729233Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 239581,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.732033Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.732033Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 209100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 102220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.732444Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 265840,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.742871Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.732Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 196230,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 269900,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.744993Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.735Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245900,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 135840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.748449Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.738Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241840,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 102220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.764222Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.768410Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.756Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67600,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.772678Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.761Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 14100,\n        \"price\": 4098.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.776578Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.765Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.782036Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.769Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 45700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.793059Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.783Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 165840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.806963Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.797Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 220,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.808685Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49080,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.814375Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 44460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.828253Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.818Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 64460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.829972Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 71910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.832910Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 47200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.840660Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.830Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44980,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 137170,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.849111Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.837Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 659378,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.867507Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.867507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 209572,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.871025Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.871025Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 262051,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.875052Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.875052Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 157086,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.878185Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.878185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 99889,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.881377Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.881377Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 560096,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.883102Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.883102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 407346,\n        \"price\": 4103,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.885315Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.885315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266433,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.889114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.889114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78841,\n        \"price\": 4102.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.892222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.892222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 106328,\n        \"price\": 4104.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.894971Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.894971Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 248954,\n        \"price\": 4104,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.896705Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.896705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87975,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 125114,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.903981Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.903981Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 228037,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.903984Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.903984Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 233100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.905186Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.896Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 387143,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.908421Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.908421Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 141840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 220230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.910667Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.899Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 762217,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 312373,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 138661,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 323417,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.914923Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.914923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136143,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.919574Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.919574Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589849,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.923284Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.923284Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478802,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.925477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.925477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 220656,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.930521Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.930521Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 357098,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.935261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.935261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.937366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.937366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91589,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.939728Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.939728Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.942562Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.942562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67589,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 963389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.948078Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.948078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 196230,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.954116Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.939Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.961804Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.961804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.971330Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.971330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 40020,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.972712Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.963Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474713,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.975000Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.975000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391685,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.982090Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.982090Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80,\n        \"price\": 4073.75,\n      },\n      {\n        \"amount\": 5250,\n        \"price\": 4074.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.991966Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:27.982Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 973389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.996812Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.996812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 22,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.004274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.004274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 23,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.004277Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.004277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68053,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.011412Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.011412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50600,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.013165Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.013864Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 209100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 102220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.016011Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15370,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.019467Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 220230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.020758Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4142.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.021522Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.012Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 134200,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.024374Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.013Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75550,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.025626Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 348160,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.030326Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.020Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 16854,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6440c4d1-0e8f-e07f-0f9a-34e9fa65762e\",\n    \"localTimestamp\": 2019-04-01T00:00:28.043014Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.005Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 16146,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7064f3f1-021f-e006-3658-5c5a645d9dd3\",\n    \"localTimestamp\": 2019-04-01T00:00:28.043014Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.005Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 940389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.043042Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.043042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 444712,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.043046Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.043046Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 162497,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.043049Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.043049Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588769,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.052940Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.052940Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 452069,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.056540Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.056540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1927614,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 1662425,\n        \"price\": 4129,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.060926Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.060926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 950389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.063135Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.063135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.079229Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.079229Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.079234Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.079234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60053,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 452712,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.087302Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.087302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98903,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.087330Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.087330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60678,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.095195Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.095195Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 221840,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 35520,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.095960Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 117220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.096019Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.087Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249990,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.101075Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.091Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78360,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 177870,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.103607Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 954389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.104037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.104037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48360,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 207870,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.111424Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.100Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 219990,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 171840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.116968Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 132220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.119553Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 108220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 59520,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.122031Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 56910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 65690,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.125489Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 196230,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 64020,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.126731Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 76910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.133590Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.117Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 230030,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.133663Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.122Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 79750,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 101000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.136186Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 96910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.140814Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59750,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 121000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.163173Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 58220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 244100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.163238Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40020,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 243990,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.163248Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 254030,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.165877Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.173072Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.173072Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527526,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 98883,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.173857Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.173857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391593,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 60896,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.173996Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.173996Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 162509,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.174093Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.174093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 452762,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.174528Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.174528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 510,\n        \"price\": 6133,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.175077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.175077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 959389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.175112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.175112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371737,\n        \"price\": 3971,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.175491Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.175491Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 906983,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.175500Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.175500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 219990,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 195840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.176728Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.158Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 206230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.176740Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 44460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.184515Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 227870,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.184559Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.172Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44780,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.187124Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.176Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 116910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.187156Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.177Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39750,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 141000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.190147Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 229100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 269030,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.192051Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.182Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1394,\n    \"exchange\": \"bitmex\",\n    \"id\": \"24ae1fcf-ea80-77d4-f474-a589a86787bc\",\n    \"localTimestamp\": 2019-04-01T00:00:28.192086Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.164Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 957995,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.192117Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.192117Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 453262,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 958495,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.192121Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.192121Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 448262,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.192123Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.192123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 959295,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.194633Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.194633Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.195627Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.184Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 67662,\n        \"price\": 4047.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.197056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.197056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 18360,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.197870Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 92450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.204963Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1e6016ad-cd54-7fe9-76a8-ba962a0001f6\",\n    \"localTimestamp\": 2019-04-01T00:00:28.209769Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.186Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 954295,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.209801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.209801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 245030,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 62220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.211228Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.202Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 103992,\n        \"price\": 4191,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.215409Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.215409Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 196260,\n        \"price\": 4136,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.224976Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.224976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3354228,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.229630Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.229630Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472876,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.232552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.232552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 239579,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 621536,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.234220Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.234220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582549,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.241624Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.241624Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47123,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.243430Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.243430Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305091,\n        \"price\": 4034,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.246911Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.246911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 216790,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 560075,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.248301Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.248301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10550,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 62080,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.263316Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 119870,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 34740,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.266648Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.257Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1085,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c8551919-319a-1fa5-dfac-df37092a9cb7\",\n    \"localTimestamp\": 2019-04-01T00:00:28.268477Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.240Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 953210,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.268506Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.268506Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 953188,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 404146,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 357040,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 99779,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 220436,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 87645,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 254132,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 171204,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 131711,\n        \"price\": 4067.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.276600Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.276600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 6148,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6a35f45f-26b6-a302-8b5e-fcfa77bfd8b2\",\n    \"localTimestamp\": 2019-04-01T00:00:28.287147Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.262Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 947040,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.287175Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.287175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3432,\n        \"price\": 4291,\n      },\n      {\n        \"amount\": 142012,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 544836,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 99799,\n        \"price\": 4239,\n      },\n      {\n        \"amount\": 1386199,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 322816,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 465259,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 185192,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1301174,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 594908,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 407284,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 262113,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 963002,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1787232,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 312327,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 582595,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 215116,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 266471,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 98845,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 68117,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 135048,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 472907,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 497800,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 309237,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 239625,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 621490,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 305451,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 560029,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 549892,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 271294,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 528243,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 136732,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 290782,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 86547,\n        \"price\": 4013.5,\n      },\n      {\n        \"amount\": 280561,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 33765,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 13818,\n        \"price\": 3938.5,\n      },\n      {\n        \"amount\": 712342,\n        \"price\": 3889,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.287186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.287186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 261047,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 998155,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.291736Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.291736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497780,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.295139Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.295139Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152978,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.297153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.297153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2331425,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 3353562,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1284936,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2723840,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.302761Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.302761Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 8600,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.302830Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.291Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 450,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 1080,\n        \"price\": 4082.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.305107Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.294Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4111.5,\n      },\n      {\n        \"amount\": 129210,\n        \"price\": 4112,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.306382Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.296Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 571695,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.306719Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.306719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98641,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.306744Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.306744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 750687,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 682595,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.310160Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.310160Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 161840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 230230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.311448Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61846,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.314542Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.314542Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135072,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.316663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.316663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 73870,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.321530Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 228138,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.322168Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.322168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 183192,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 410495,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 288782,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 317178,\n        \"price\": 3964,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.334168Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.334168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4151348,\n        \"price\": 4200,\n      },\n      {\n        \"amount\": 472865,\n        \"price\": 4145.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.335238Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.335238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 563695,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.341049Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.341049Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1827232,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 722217,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.348327Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.348327Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391393,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.350759Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.350759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 639869,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 357876,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.362237Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.362237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5000,\n        \"price\": 4074.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.364612Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4071.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.367458Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.357Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 357826,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 215166,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.371517Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.371517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 269030,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.371657Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 225000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 141270,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.373544Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.364Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 206230,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 243990,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.374528Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.378141Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.367Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1867232,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 682217,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.379690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.379690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1907232,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 642217,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.380667Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.380667Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 257870,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.381670Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.370Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 42690,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.383301Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4069.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.385177Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 300,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.386530Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.377Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4068.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.387491Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.378Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 163016,\n        \"price\": 4106.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 255332,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 128192,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.391202Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.391202Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.393322Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.384Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 947041,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.393856Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.393856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184526,\n        \"price\": 4127.5,\n      },\n      {\n        \"amount\": 581459,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 94043,\n        \"price\": 4126.5,\n      },\n      {\n        \"amount\": 848711,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 69076,\n        \"price\": 4125.5,\n      },\n      {\n        \"amount\": 68147,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 66779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 472937,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.402464Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.402464Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1091689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.402467Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.402467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 245030,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 77220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.410717Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.401Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472967,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.413470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.413470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 191418,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.417241Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.417241Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.421145Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.421145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 219990,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 185840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.422782Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4075.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.457254Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.446Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2640,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.460494Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.449Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1680,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.463530Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.452Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227870,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 171000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.476109Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.466Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.480484Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.469Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164216,\n        \"price\": 4106.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.538854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.538854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 161840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.542392Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98766,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 68022,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.542465Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.542465Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153478,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 98266,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.550225Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.550225Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 907483,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 152978,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.556396Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.556396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8127878,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 750387,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 3353262,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1844511,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 1908066,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 1754910,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 508157,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 1610896,\n        \"price\": 3950,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.561060Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.561060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 50810,\n        \"price\": 4083.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.565858Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.532Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184771,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.567955Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.567955Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112870,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.569997Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 249000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.571025Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.558Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24360,\n        \"price\": 4086.25,\n      },\n      {\n        \"amount\": 88940,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.572871Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 350120,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.577551Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.567Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 62501,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.587718Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.587718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152774,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.596634Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.596634Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550595,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215625,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.602646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.602646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1774,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aad46eef-fd0a-7990-79d7-b1d8d46e18c2\",\n    \"localTimestamp\": 2019-04-01T00:00:28.622825Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.595Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 945267,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.622848Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.622848Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 5575,\n    \"exchange\": \"bitmex\",\n    \"id\": \"48896802-deb5-c308-14af-57493360a009\",\n    \"localTimestamp\": 2019-04-01T00:00:28.634246Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.607Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 939692,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.634273Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.634273Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 410571,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 249030,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 861084,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 907635,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 683021,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.641378Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.641378Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68647,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.655278Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.655278Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 50365,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.655323Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.655323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13010,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.656089Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.668746Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.668746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1158651,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 1769526,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 807776,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 3353202,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 681358,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 309177,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 522313,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 985268,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1436920,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 682961,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.673777Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.673777Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 10944,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d6ba782c-a4fc-7f0e-90fe-2d7b6332a2dd\",\n    \"localTimestamp\": 2019-04-01T00:00:28.697145Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.671Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 928748,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.697175Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.697175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4074.25,\n      },\n      {\n        \"amount\": 1960,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.708300Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82100,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.710604Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.700Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78479,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.711682Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.711682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.711717Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.711717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 476187,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.714198Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.714198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 55000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.715130Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.704Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 309077,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 659478,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.716087Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.716087Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91000,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.721109Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.707Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 225030,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.721215Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.710Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 637069,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 354096,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 519513,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.721355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.721355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.723041Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.712Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 393438,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 76435,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.723646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.723646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 101840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.724198Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 634269,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 351296,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 516713,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.727479Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.727479Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197870,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.728115Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1300924,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 1927364,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 2331175,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 1769276,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 3352952,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 516463,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1436670,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1284686,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1844261,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 2723590,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.733342Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.733342Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 54740,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.733464Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 92450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.733530Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15700,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 15300,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.733581Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.724Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189990,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 236230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.737427Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 476351,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928912,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.740039Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.740039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 985269,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.742162Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.742162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 240030,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.743010Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 31000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 260230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.744851Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.735Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478351,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.748015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.748015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 225000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 62220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.748661Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.738Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152474,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.749493Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.749493Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 69116,\n        \"price\": 4125.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.752098Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.752098Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390677,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.756342Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.756342Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 30300,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.756841Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 74947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.762255Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.762255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.764254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.764254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 962402,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.766158Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.766158Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 625573,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 313613,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 83566,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 538325,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 379064,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 952669,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 500076,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 150680,\n        \"price\": 4064.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.771039Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.771039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 167870,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 201000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.772980Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.747Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 254332,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 127191,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1029589,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 192419,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.776248Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.776248Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 71840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 290230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.777281Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.751Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 410651,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 907605,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.778114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.778114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27000,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.780681Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.771Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4076.75,\n      },\n      {\n        \"amount\": 31350,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.785158Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 183625,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.785816Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.785816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 220030,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 112450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.786252Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.776Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389677,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.787801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.787801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 103870,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.788100Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.778Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 249000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.788775Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 87440,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.790772Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.781Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.791026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.791026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58870,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 29000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.795118Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.786Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 199000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 88040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.797773Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.787Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 44460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.798735Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.789Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 179125,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.802938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.802938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 544795,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.803011Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.803011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.806271Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.793Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 266230,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 55350,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.816078Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.807Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44790,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.824238Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.815Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3465,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dfed795f-4e92-30ab-b54d-8b6cbfee9415\",\n    \"localTimestamp\": 2019-04-01T00:00:28.827983Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.802Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.828020Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.828020Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474765,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.837084Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.837084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450151,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.839402Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.839402Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 836084,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 1932232,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 223291,\n        \"price\": 4046.5,\n      },\n      {\n        \"amount\": 182996,\n        \"price\": 4045.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.841338Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.841338Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 228338,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.843356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.843356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 45300,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.851690Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.842Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1050337,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 183666,\n        \"price\": 4034,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.853313Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.853313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 296230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.854284Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98683,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.859068Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.859068Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1159651,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 246227,\n        \"price\": 4108.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.861978Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.861978Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.862164Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.862173Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.849Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.870026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.870026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98668,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 450166,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.873753Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.873753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144474,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.883148Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.883148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 391518,\n        \"price\": 3939,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.883764Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.883764Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 41,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2ed74782-0adc-1da6-39ba-62bb3f04e658\",\n    \"localTimestamp\": 2019-04-01T00:00:28.907497Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.875Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450125,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.907526Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.907526Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 516626,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 88828,\n        \"price\": 4059.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.907560Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.907560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2718590,\n        \"price\": 4040,\n      },\n      {\n        \"amount\": 2158010,\n        \"price\": 4030,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.907562Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.907562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 8177.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.907565Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.907565Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 451125,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.916663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.916663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.926100Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.926100Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 181902,\n        \"price\": 3991,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.930830Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.930830Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 516126,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.933734Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.933734Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137170,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 203100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.935686Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3392952,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 796084,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.937076Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.937076Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 602769,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 98072,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.941514Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.941514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84154,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.944365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.944365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305077,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 327417,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.947192Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.947192Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632069,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 349096,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 311413,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 513926,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.953956Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.953956Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 262113,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 999221,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.956360Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.956360Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 186419,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.959020Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.959020Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.962300Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.962300Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2331841,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 3393618,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1285352,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2719256,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.967669Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.967669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 751187,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 683761,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.980251Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.980251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185192,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 412651,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 290782,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 319178,\n        \"price\": 3964,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.981072Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.981072Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1009542,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.986109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.986109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16130,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.988656Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.960Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 31350,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 320230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.990362Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.980Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 454125,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.992739Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.992739Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50050,\n        \"price\": 4049.75,\n      },\n      {\n        \"amount\": 1180,\n        \"price\": 4051,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.994761Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:28.985Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 628792,\n        \"price\": 4242,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.999152Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.999152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 457125,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.002733Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.002733Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 629869,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 346896,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 309213,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 511726,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.008480Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.008480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 71435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.008515Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.008515Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1050782,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.014346Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.014346Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 179100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 62220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.017371Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 210,\n    \"exchange\": \"bitmex\",\n    \"id\": \"84b5c10a-dce0-5f5e-9a9e-082be2e9845b\",\n    \"localTimestamp\": 2019-04-01T00:00:29.031135Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.004Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 456915,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.031163Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.031163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 625571,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 220438,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.031167Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.031167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 536795,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.045793Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.045793Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1680,\n        \"price\": 4073.75,\n      },\n      {\n        \"amount\": 9560,\n        \"price\": 4073.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.054981Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 683478,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.059092Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.059092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 811824,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.070150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.070150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98653,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.075995Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.075995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 87240,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.079488Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 367032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.080057Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.080057Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 104779,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 184125,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.082541Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.082541Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4072.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.083957Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 471283,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 973109,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 180224,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 103199,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 159642,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.086014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.086014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 200125,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.087845Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.087845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 71459,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.094660Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.094660Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 848741,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 69146,\n        \"price\": 4125.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.102616Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.102616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 68790,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.110497Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.101Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 296230,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 24700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.113099Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 44460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.115301Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.105Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1640,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.184426Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102640,\n        \"price\": 4070.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.188755Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.178Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64040,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.190526Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 14000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 34980,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.191664Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.182Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4069.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.194181Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.183Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 116910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.196300Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 35400,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.197506Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30300,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 42000,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.199850Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 266230,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 61350,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.204149Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.193Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137370,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.204746Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 236230,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.219445Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.200Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63471,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.247108Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.247108Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27000,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 79040,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.248710Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 61000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 4076.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.248716Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.233Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 31000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 39620,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.257694Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211840,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 96230,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.257830Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 206230,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 61000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.257852Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44790,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 374120,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.257858Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.248Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.260228Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.249Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 40400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.262222Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38360,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 129260,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.263528Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144974,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 102699,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 105279,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 682978,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.268304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.268304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215416,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 179974,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.268313Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.268313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 48,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a8385408-acad-e1b4-4f5d-fbc463f2fb60\",\n    \"localTimestamp\": 2019-04-01T00:00:29.285912Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.253Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1050734,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.285951Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.285951Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 105458,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.285954Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.285954Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 712178,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.290055Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.290055Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 127241,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.290086Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.290086Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50690,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 41700,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.293840Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.284Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75981,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050764,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.305005Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.305005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 970209,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.305007Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.305007Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1935032,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 514526,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.326638Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.326638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389303,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.328634Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.328634Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 139485,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.330153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.330153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.346020Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.346020Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632669,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1937832,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 517326,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.351915Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.351915Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.354436Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a9b1c3ba-e1f6-5aca-1bdd-44083ebe0a16\",\n    \"localTimestamp\": 2019-04-01T00:00:29.369076Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.342Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1050761,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.369175Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.369175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144374,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.369180Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.369180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8128178,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 751487,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 3393918,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1844561,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 1908366,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 1755210,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 508457,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 1611196,\n        \"price\": 3950,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.375298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.375298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7ccf766a-cdc4-241c-0cc7-d206cdb102fc\",\n    \"localTimestamp\": 2019-04-01T00:00:29.392835Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.364Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1050711,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.392861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.392861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160267,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.393986Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.393986Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 103792,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 322616,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 76181,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 432481,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050611,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 33965,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 171726,\n        \"price\": 3986.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.399032Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.399032Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 70,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d8da2500-a8a8-510d-9be0-4e06c2c0817d\",\n    \"localTimestamp\": 2019-04-01T00:00:29.413065Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.389Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432411,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.413098Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.413098Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 30550,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.417587Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1159711,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 1769336,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 811884,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 3393978,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 681418,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 305137,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 517386,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 952729,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1436730,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 683821,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.420616Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.420616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1062876,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.424208Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.424208Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432449,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1062895,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.427158Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.427158Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 160315,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 432497,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.433650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.433650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 191000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 50550,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.436602Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.427Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 716678,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.440184Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.440184Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 495580,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 103079,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.453686Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.453686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 12100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.454859Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19980,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 22000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.456923Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.446Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54210,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 77000,\n        \"price\": 4111.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.459502Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.449Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 171000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 70550,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.460769Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 493380,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 100879,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.468136Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.468136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1064895,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 340647,\n        \"price\": 3782,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.470588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.470588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 100881,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.480412Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.480412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 529778,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 69669,\n        \"price\": 4047.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.486398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.486398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 133270,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 183200,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.492712Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193964,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 237043,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.504989Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.504989Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 98112,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.504992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.504992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83870,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 32100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.509164Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2064746,\n        \"price\": 4030,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.509442Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.509442Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1067895,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.511729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.511729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33520,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.519780Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 692678,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.530620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.530620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 36363,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.532688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.532688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1301174,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 1927614,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 2332091,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 1769586,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 3394228,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 517636,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1436980,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1285602,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1844811,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 2719506,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.544976Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.544976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 218338,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.557262Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.557262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4560,\n        \"price\": 4073.5,\n      },\n      {\n        \"amount\": 6490,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.577833Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 26,\n    \"exchange\": \"bitmex\",\n    \"id\": \"578cbe37-d2a5-b337-2b64-dda7fb3c1049\",\n    \"localTimestamp\": 2019-04-01T00:00:29.578047Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.550Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432471,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.578082Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.578082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1259306,\n        \"price\": 4011,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.578084Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.578084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 193035,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.578087Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.578087Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.578090Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.578090Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432486,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.600687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.600687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 313327,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 470283,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.601839Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.601839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 54230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.609027Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1149,\n        \"price\": 4416,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.611261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.611261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386390,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.613485Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.603Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.615827Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.615827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 366792,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 609408,\n        \"price\": 4066.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.619217Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.619217Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 695478,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.630437Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.630437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 192730,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 603465,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.635481Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.635481Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 139933,\n        \"price\": 3927,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.645656Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.645656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 424308,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.652874Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.652874Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416130,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.656503Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.656503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 135680,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.658664Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.649Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 407952,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.659546Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.659546Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 399774,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.663868Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.663868Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391596,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.668941Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.668941Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 962209,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.676349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.676349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383418,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.678292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.678292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 375240,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.680727Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.680727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367062,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.690276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.690276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 493468,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 200235,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 138881,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 98442,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 271954,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 235092,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 611388,\n        \"price\": 4066.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.690392Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.690392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358884,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.692700Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.692700Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 350706,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.696592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.696592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 65690,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.700774Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.691Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44800,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.702073Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141574,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 189930,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.705150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.705150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 26540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.713146Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.703Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 360706,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.717106Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.717106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 217816,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.720336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.720336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 138854,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 189890,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.734018Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.734018Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 426619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 361085,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.734049Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.734049Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 361384,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.734052Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.734052Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185174,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.738133Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.738133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180140,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 389137,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 218504,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 304971,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.746366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.746366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359618,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.749085Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.749085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 962709,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 179640,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 190390,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 199735,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.749111Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.749111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 162130,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.749585Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.739Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 963209,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 138354,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 190890,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 602965,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.759471Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.759471Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 179890,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 388887,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 218754,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 493218,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.759496Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.759496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 300934,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.759499Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.759499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 138604,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 388637,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 219004,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 492968,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.763552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.763552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 183735,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.763578Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.763578Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20020,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 59620,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.771532Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180056,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 76074,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 493134,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 304805,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.774162Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.774162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 309243,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.780401Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.780401Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 643217,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 680418,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.783466Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.783466Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76098,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.786686Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.786686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34725,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 301209,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.793636Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.793636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 186230,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 20700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.794728Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 362390,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 157270,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.794832Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4041.5,\n      },\n      {\n        \"amount\": 25260,\n        \"price\": 4042,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.801543Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.785Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 644562,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 107528,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 186374,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 964602,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 634869,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 218990,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 562229,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 99642,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 255532,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 128441,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 158767,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.802737Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.802737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180055,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 388638,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.802740Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.802740Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1938332,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.804576Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.804576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 46540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.804707Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.795Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30230,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 40400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.810511Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 214890,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.812764Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.812764Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645762,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 108728,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 187574,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 966802,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 637069,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221190,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 564429,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 100842,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 159967,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.817254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.817254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 216816,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.819931Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.819931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1066921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.822604Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.822604Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371085,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.822621Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.822621Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19498,\n        \"price\": 3842.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.828981Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.828981Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 214840,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 250818,\n        \"price\": 4054.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.831267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.831267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 602842,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.832790Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.832790Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 636719,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 470633,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.852381Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.852381Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 23,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.860937Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.860937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 24,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.863388Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.863388Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1076921,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.869854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.869854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 639519,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1939262,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.869923Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.869923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340305,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.876314Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.876314Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3401,\n        \"price\": 4291,\n      },\n      {\n        \"amount\": 141981,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 544743,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 99892,\n        \"price\": 4239,\n      },\n      {\n        \"amount\": 1386106,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 322709,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 465182,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 185269,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1301097,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 594985,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 407222,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 262175,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 966756,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1939308,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 313281,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 470679,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 216778,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 180093,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 105420,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 76136,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 197156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 301240,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1076952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 13725,\n        \"price\": 3938.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.884023Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.884023Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 325567,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 239226,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.884042Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.884042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8873,\n        \"price\": 4485,\n      },\n      {\n        \"amount\": 2194,\n        \"price\": 4481,\n      },\n      {\n        \"amount\": 1334,\n        \"price\": 4477,\n      },\n      {\n        \"amount\": 694,\n        \"price\": 4473,\n      },\n      {\n        \"amount\": 31028,\n        \"price\": 4469,\n      },\n      {\n        \"amount\": 30088,\n        \"price\": 4465,\n      },\n      {\n        \"amount\": 45778,\n        \"price\": 4461,\n      },\n      {\n        \"amount\": 54625,\n        \"price\": 4457,\n      },\n      {\n        \"amount\": 2678,\n        \"price\": 4453,\n      },\n      {\n        \"amount\": 4528,\n        \"price\": 4449,\n      },\n      {\n        \"amount\": 165777,\n        \"price\": 4445,\n      },\n      {\n        \"amount\": 6978,\n        \"price\": 4441,\n      },\n      {\n        \"amount\": 1778,\n        \"price\": 4437,\n      },\n      {\n        \"amount\": 9278,\n        \"price\": 4433,\n      },\n      {\n        \"amount\": 4008,\n        \"price\": 4429,\n      },\n      {\n        \"amount\": 26295,\n        \"price\": 4425,\n      },\n      {\n        \"amount\": 11978,\n        \"price\": 4421,\n      },\n      {\n        \"amount\": 31564,\n        \"price\": 4417,\n      },\n      {\n        \"amount\": 51493,\n        \"price\": 4413,\n      },\n      {\n        \"amount\": 9528,\n        \"price\": 4409,\n      },\n      {\n        \"amount\": 22378,\n        \"price\": 4405,\n      },\n      {\n        \"amount\": 5958,\n        \"price\": 4401,\n      },\n      {\n        \"amount\": 5381,\n        \"price\": 4397,\n      },\n      {\n        \"amount\": 5372,\n        \"price\": 4393,\n      },\n      {\n        \"amount\": 81352,\n        \"price\": 4389,\n      },\n      {\n        \"amount\": 70720,\n        \"price\": 4385,\n      },\n      {\n        \"amount\": 35109,\n        \"price\": 4381,\n      },\n      {\n        \"amount\": 101976,\n        \"price\": 4377,\n      },\n      {\n        \"amount\": 3023,\n        \"price\": 4373,\n      },\n      {\n        \"amount\": 15930,\n        \"price\": 4369,\n      },\n      {\n        \"amount\": 22003,\n        \"price\": 4365,\n      },\n      {\n        \"amount\": 16778,\n        \"price\": 4361,\n      },\n      {\n        \"amount\": 6264,\n        \"price\": 4357,\n      },\n      {\n        \"amount\": 10730,\n        \"price\": 4353,\n      },\n      {\n        \"amount\": 174054,\n        \"price\": 4349,\n      },\n      {\n        \"amount\": 18738,\n        \"price\": 4345,\n      },\n      {\n        \"amount\": 8128,\n        \"price\": 4341,\n      },\n      {\n        \"amount\": 13269,\n        \"price\": 4337,\n      },\n      {\n        \"amount\": 59570,\n        \"price\": 4333,\n      },\n      {\n        \"amount\": 11298,\n        \"price\": 4329,\n      },\n      {\n        \"amount\": 22430,\n        \"price\": 4325,\n      },\n      {\n        \"amount\": 16328,\n        \"price\": 4321,\n      },\n      {\n        \"amount\": 22280,\n        \"price\": 4317,\n      },\n      {\n        \"amount\": 14187,\n        \"price\": 4313,\n      },\n      {\n        \"amount\": 8957,\n        \"price\": 4309,\n      },\n      {\n        \"amount\": 7748,\n        \"price\": 4305,\n      },\n      {\n        \"amount\": 22918,\n        \"price\": 4301,\n      },\n      {\n        \"amount\": 7416,\n        \"price\": 4297,\n      },\n      {\n        \"amount\": 67554,\n        \"price\": 4293,\n      },\n      {\n        \"amount\": 12509,\n        \"price\": 4289,\n      },\n      {\n        \"amount\": 12367,\n        \"price\": 4285,\n      },\n      {\n        \"amount\": 39256,\n        \"price\": 4281,\n      },\n      {\n        \"amount\": 57204,\n        \"price\": 4277,\n      },\n      {\n        \"amount\": 28343,\n        \"price\": 4273,\n      },\n      {\n        \"amount\": 13873,\n        \"price\": 4269,\n      },\n      {\n        \"amount\": 41576,\n        \"price\": 4265,\n      },\n      {\n        \"amount\": 12446,\n        \"price\": 4261,\n      },\n      {\n        \"amount\": 4999,\n        \"price\": 4257,\n      },\n      {\n        \"amount\": 16178,\n        \"price\": 4253,\n      },\n      {\n        \"amount\": 88272,\n        \"price\": 4249,\n      },\n      {\n        \"amount\": 137383,\n        \"price\": 4245,\n      },\n      {\n        \"amount\": 27721,\n        \"price\": 4241,\n      },\n      {\n        \"amount\": 80854,\n        \"price\": 4237,\n      },\n      {\n        \"amount\": 114047,\n        \"price\": 4233,\n      },\n      {\n        \"amount\": 85022,\n        \"price\": 4229,\n      },\n      {\n        \"amount\": 228284,\n        \"price\": 4225,\n      },\n      {\n        \"amount\": 18224,\n        \"price\": 4221,\n      },\n      {\n        \"amount\": 63386,\n        \"price\": 4217,\n      },\n      {\n        \"amount\": 475684,\n        \"price\": 4213,\n      },\n      {\n        \"amount\": 43757,\n        \"price\": 4209,\n      },\n      {\n        \"amount\": 74471,\n        \"price\": 4205,\n      },\n      {\n        \"amount\": 19618,\n        \"price\": 4201,\n      },\n      {\n        \"amount\": 202242,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 99819,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 323387,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 464171,\n        \"price\": 4185,\n      },\n      {\n        \"amount\": 56523,\n        \"price\": 4181,\n      },\n      {\n        \"amount\": 578608,\n        \"price\": 4177,\n      },\n      {\n        \"amount\": 139625,\n        \"price\": 4173,\n      },\n      {\n        \"amount\": 154485,\n        \"price\": 4169,\n      },\n      {\n        \"amount\": 465860,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 176851,\n        \"price\": 4161,\n      },\n      {\n        \"amount\": 233813,\n        \"price\": 4157,\n      },\n      {\n        \"amount\": 299816,\n        \"price\": 4153,\n      },\n      {\n        \"amount\": 638045,\n        \"price\": 4149,\n      },\n      {\n        \"amount\": 1004678,\n        \"price\": 4145,\n      },\n      {\n        \"amount\": 372963,\n        \"price\": 4141,\n      },\n      {\n        \"amount\": 242013,\n        \"price\": 4137,\n      },\n      {\n        \"amount\": 437610,\n        \"price\": 4133,\n      },\n      {\n        \"amount\": 1663103,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 752165,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 216314,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 1093783,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 305771,\n        \"price\": 4113,\n      },\n      {\n        \"amount\": 474770,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 812562,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 194642,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 1939986,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 139282,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.915334Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.915334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 220674,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 135386,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 392534,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 38621,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 297344,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.926304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.926304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 133270,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 386390,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.930090Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.920Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 107386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 210156,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.934603Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.934603Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 221574,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.939502Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.939502Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.940536Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.940536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.944428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.944428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296594,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.951168Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.951168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 54230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.952025Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.942Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.960976Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.960976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 362390,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 157270,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.965914Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.953Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 490634,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.967218Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.967218Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 526978,\n        \"price\": 4117.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.977386Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.977386Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305305,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 214340,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.977389Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.977389Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 92230,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.978013Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.963Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180218,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 105295,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 340430,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366711,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.981351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.981351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 603465,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 183235,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.981376Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.981376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156040,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 46030,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.981874Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:29.966Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224374,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 308105,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.985117Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.985117Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84200,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.989720Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.989720Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 308145,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.992672Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.992672Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 356711,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.005592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.005592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 260,\n        \"price\": 4042,\n      },\n      {\n        \"amount\": 29000,\n        \"price\": 4042.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.009678Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 450001,\n        \"price\": 4031,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.013111Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.013111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296275,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.016109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.016109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10840,\n        \"price\": 4052,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.025437Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 221204,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 310345,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.026722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.026722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13818,\n        \"price\": 3938.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.029509Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.029509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 223404,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 312545,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.033384Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.033384Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137338,\n        \"price\": 4245,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.046763Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.046763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 356294,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.046795Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.046795Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 342930,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.063840Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.063840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297275,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1083952,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.069864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.069864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50690,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.087929Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20400,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 27740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.089210Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.079Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.091628Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 146140,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.094688Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 42740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.098446Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 131910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.101729Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.091Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54260,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.108301Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46000,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.117090Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 1230,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.138015Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44770,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 8560,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.149981Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.141Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30260,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 40400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.193975Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.184Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64750,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.230207Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 105020,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.242047Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44170,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.244410Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.233Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 179100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 100330,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.252693Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111480,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.254908Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 21630,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.308014Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.297Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67558,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.743540Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.743540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83906,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.746339Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.746339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 124776,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.748006Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.748006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 619465,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.757983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.757983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227094,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.759334Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.759334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 214300,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.762403Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.762403Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 409151,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.764585Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.764585Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 488468,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.767071Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.767071Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 488473,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 312540,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.768722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.768722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 639537,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1940004,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 346914,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 643235,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 313299,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 680436,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 470697,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 963227,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 227112,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 135404,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 180236,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 105313,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 392552,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1083982,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 342960,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 223434,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 488503,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 312570,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 214330,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 619495,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 183265,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 625601,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 220468,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 221220,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.776093Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.776093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84288,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.778562Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.778562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297320,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.792870Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.792870Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 221434,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.795680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.795680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 237148,\n        \"price\": 4051,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.797990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.797990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 49550,\n        \"price\": 4075.75,\n      },\n      {\n        \"amount\": 5390,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.800939Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.372Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 54260,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.801339Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.416Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 65690,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.801726Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 80690,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.802305Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96230,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.802402Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.440Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131140,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 27740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.802627Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.445Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 142444,\n        \"price\": 3553,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.803241Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.803241Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 361170,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 156240,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.803824Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 220030,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.803869Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.453Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 625499,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.804666Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.804666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1085194,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.806850Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.806850Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54220,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.807436Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.492Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44840,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.807871Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 18001,\n        \"price\": 4204.5,\n      },\n      {\n        \"amount\": 1004428,\n        \"price\": 4145,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.814178Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.814178Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88630,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 187380,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.815861Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445292,\n        \"price\": 4149.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 116659,\n        \"price\": 3991.5,\n      },\n      {\n        \"amount\": 181872,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 383898,\n        \"price\": 3990.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.818705Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.818705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.821460Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.821460Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211840,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.822537Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.556Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 207300,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.823635Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.565Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6010,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.823909Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 14630,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.825412Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.582Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297694,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.826466Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.826466Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136990,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.830316Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.652Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.830729Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.657Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 34740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.833135Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5010,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 84870,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.833569Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 313269,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.834632Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.834632Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 65690,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 49740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.836225Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.740Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18140,\n        \"price\": 4083.25,\n      },\n      {\n        \"amount\": 79720,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.836275Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132240,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 68840,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.836658Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.761Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30220,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 44700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.837573Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 92140,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.838180Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.778Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20700,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 40400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.840129Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.802Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44840,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 156240,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.840467Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23220,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 23560,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.841820Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 192300,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 38560,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.842671Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.822Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 157380,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 118630,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.843000Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.825Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50690,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 64740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.843393Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.843472Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.832Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 49740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 146140,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.849294Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.849799Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 397613,\n        \"price\": 3924,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.852511Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.852511Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1084194,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.854734Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.854734Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 275163,\n        \"price\": 3929,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.865675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.865675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 208472,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 951629,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.867518Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.867518Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 207372,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 950529,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.871189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.871189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42140,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 94840,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.872929Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 326067,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.873369Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.873369Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1074194,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.877371Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.877371Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527336,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3394038,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1939814,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 962847,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220912,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.881261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.881261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 307694,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.889435Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.889435Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8220,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.897058Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.888Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.899106Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.890Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312694,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.899657Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.899657Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 58360,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.903241Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.894Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1069194,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.904749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.904749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54870,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 141000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.907022Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.896Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1069421,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.910819Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.910819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312605,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.920861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.920861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30240,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.921717Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.913Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1093653,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 645632,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 262045,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 795954,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 643105,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.925110Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.925110Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 680446,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.926310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.926310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94780,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.929179Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.919Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58870,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.929984Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 196840,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.937732Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:30.926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 183161,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.941368Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.941368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90313,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 407552,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.941375Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.941375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138281,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.941377Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.941377Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 625501,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 220466,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.941845Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.941845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403010,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.948965Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.948965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 245257,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.956641Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.956641Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 183081,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.958036Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.958036Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4140.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.024284Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.013Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 526258,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 590630,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 616889,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 346734,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 275739,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 206017,\n        \"price\": 4062.5,\n      },\n      {\n        \"amount\": 644583,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 203147,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.032730Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.032730Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445277,\n        \"price\": 4149.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 141106,\n        \"price\": 3992.5,\n      },\n      {\n        \"amount\": 421243,\n        \"price\": 3992,\n      },\n      {\n        \"amount\": 116599,\n        \"price\": 3991.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.036607Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.036607Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 313070,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 213830,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.040063Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.040063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 488753,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 312820,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.049922Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.049922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 83620,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.057303Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403009,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 222157,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.062165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.062165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 114313,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.064813Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.064813Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 337139,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.086624Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.086624Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132240,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 66140,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.095795Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 34740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 22000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.108390Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50550,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 78360,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.109701Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30550,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 74870,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.110253Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42140,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 199000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.110674Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.101Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 37000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.112231Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 87240,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.114111Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.104Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 66140,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.115179Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10550,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 94870,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.117630Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 336841,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120034Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120034Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527221,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3393923,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1939699,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 962617,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220726,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 114146,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120094Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120094Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120098Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120098Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 468531,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120106Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 142443,\n        \"price\": 3553,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 680448,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120123Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 458750,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 406167,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 491816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 21588,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120142Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34800,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120285Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 26740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.121233Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53560,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.124427Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 332841,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.125329Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.125329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1928014,\n        \"price\": 4130,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.125366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.125366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 550,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 76600,\n        \"price\": 4072.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.132977Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148630,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.133211Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.122Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 488677,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 182929,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 625539,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 138053,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 326143,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 83984,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 602956,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 180602,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 327569,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 950719,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 528343,\n        \"price\": 4039,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.139097Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.139097Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 157472,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.140150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.140150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 407551,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.142938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.142938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 161990,\n        \"price\": 4091.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.179519Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.169Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90146,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 431551,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.180220Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.180220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16830,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.208878Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42140,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 118780,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.225164Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.208Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59620,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 44700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.225265Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.210Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131140,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 59170,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.225295Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.213Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 19100,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 132450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.243747Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 234053,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.246253Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.246253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 192300,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.249721Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132040,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 193730,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.251037Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416551,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 87240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.267609Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.267609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1680,\n        \"price\": 4073.75,\n      },\n      {\n        \"amount\": 9790,\n        \"price\": 4073.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.269523Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.259Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13400,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 1230,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.290748Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305155,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 436520,\n        \"price\": 4038,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.293724Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.293724Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 223934,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.293729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.293729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416522,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 332870,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298627Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298627Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391926,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 474545,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 812362,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 261870,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 795804,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 642980,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 625439,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 602831,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 950569,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 233878,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 487542,\n        \"price\": 4067,\n      },\n      {\n        \"amount\": 627895,\n        \"price\": 4063,\n      },\n      {\n        \"amount\": 304905,\n        \"price\": 4058,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298686Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 342870,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 602852,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298696Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226112,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298699Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298699Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171702,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132091,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298711Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 448777,\n        \"price\": 4121.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298713Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244696,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 136756,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298715Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298715Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 324732,\n        \"price\": 3979,\n      },\n      {\n        \"amount\": 236374,\n        \"price\": 3978,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298720Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298720Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722741,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999274,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298733Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298733Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 133680,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.304930Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 114146,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 392522,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171649,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132144,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305833Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131404,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 184236,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305839Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722717,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999298,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305842Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305842Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 757917,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305850Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305850Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197639,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305853Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138068,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305856Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 492816,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132401,\n        \"price\": 4248,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305873Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305873Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 343038,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305877Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305877Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266395,\n        \"price\": 4131,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.316250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.316250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21562,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.316271Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.316271Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 222216,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 135300,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 388626,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 91136,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 17666,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 346934,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.316276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.316276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.324278Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.324278Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 164919,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.326933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.326933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 187012,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 621356,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 228631,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 317981,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 133470,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 346440,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 435020,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 579748,\n        \"price\": 4040.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.334784Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.334784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 621456,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.336770Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.336770Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198270,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.338267Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.327Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330578,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.339806Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.339806Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 564349,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.348870Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.348870Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244643,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 136809,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.348925Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.348925Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30300,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.356514Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.346Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4550,\n        \"price\": 4102.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.358548Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 118830,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.363787Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.354Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.369979Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.369979Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8000,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 20100,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.375105Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2569823,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.377781Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.377781Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 225934,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.379987Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.379987Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4104.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.386110Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100,\n        \"price\": 4107,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.393342Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.379Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4075.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.393408Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.381Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 484142,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.402548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.402548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 492416,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.404505Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.404505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20700,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 83620,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.418918Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.408Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94830,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 66140,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.425438Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59620,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 44700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.428166Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.418Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185900,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 75930,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.432644Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.421Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15930,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 189990,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.433672Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.423Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.440995Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.440995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164934,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1309396,\n        \"price\": 3990,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.447727Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330593,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.447754Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 317996,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.447757Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.447760Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1934699,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 752917,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.447768Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447768Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7520,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 66840,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.498802Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.488Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346784,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 222166,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.515594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.515594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42840,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 156040,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.523749Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20700,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 40400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.526270Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 206172,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 193442,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 587569,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 134200,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 483042,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 618395,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 345240,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 270754,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 949369,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 232778,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.548270Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.548270Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 196670,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.580747Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 221243,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.594916Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.594916Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 680269,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 184415,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.595037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.595037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 195690,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.610686Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.601Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 204972,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 192242,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 586369,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 133100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 481942,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 617295,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 344040,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 269554,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 948169,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 231678,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.627483Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.627483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 388597,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 330622,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.667396Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.667396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76760,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.671575Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 147030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.683355Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.674Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 317820,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.684809Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.684809Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3540,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.685267Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.676Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 89,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2947441f-78a3-9f67-0bf9-da015502de9c\",\n    \"localTimestamp\": 2019-04-01T00:00:31.695872Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.902Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9560,\n        \"price\": 4073.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.698585Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.689Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90146,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 412597,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.726337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.726337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30210,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.745847Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1939699,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 757917,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.752722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.752722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 179100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.753404Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.756710Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.745Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 93680,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.759384Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 26540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.771220Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.761Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10600,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.772940Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 564379,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.777754Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.777754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4105.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.779709Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.765Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3070,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.781343Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.768Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238143,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 129541,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.783032Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.783032Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 46540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.789297Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.778Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 521636,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.828267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.828267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 447731,\n        \"price\": 4151,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.838228Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.838228Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4109.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.865161Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 203880,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.888959Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.877Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 387597,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.892549Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.892549Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239243,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 130641,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.892584Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.892584Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164894,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.892586Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.892586Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 79620,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.893160Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.883Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 56760,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 114870,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.894403Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.885Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 177030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.910680Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.901Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 533543,\n        \"price\": 3921,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.914645Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.914645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 298,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0b82310b-dfc8-5184-67e3-89db5b71d465\",\n    \"localTimestamp\": 2019-04-01T00:00:31.914699Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.013Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330640,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.914704Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.914704Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164842,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.914708Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.914708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 133200,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.914711Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.914711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131641,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1008542,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 172205,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 185418,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.950782Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.950782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59620,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 111000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.955843Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.939Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4073.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.955859Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.942Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75000,\n        \"price\": 4111.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.964382Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.955Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47050,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 50810,\n        \"price\": 4083.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.965396Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.956Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 79370,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.967707Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:31.958Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 203870,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.009455Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193420,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.018445Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4140.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4109.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.021018Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.012Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1260,\n        \"price\": 4042,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.024577Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 133015,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 184230,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 89961,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 387412,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 317808,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 213818,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 617283,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 187000,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 621444,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.033215Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.033215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 221427,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 133199,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 184414,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 90145,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 387596,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 481954,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 317820,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 213830,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 617295,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 187012,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.033265Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.033265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 564409,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.033270Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.033270Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 161430,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.087572Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18140,\n        \"price\": 4083.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.087600Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26000,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 80040,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.111328Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.100Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 17530,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.112088Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 203170,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 179800,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.115666Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.105Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 113870,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 53330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.116713Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 800,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 2750,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.119819Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.110Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50690,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 21580,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.129622Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.120Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.133627Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66000,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.136276Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.126Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12500,\n        \"price\": 4098.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.138146Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.129Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.140046Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30200,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.151190Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 692413,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.180227Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.180227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 585295,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.180270Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.180270Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 181842,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.194978Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194978Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445292,\n        \"price\": 4149.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 116674,\n        \"price\": 3991.5,\n      },\n      {\n        \"amount\": 181902,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 383958,\n        \"price\": 3990.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.194983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1103589,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.194990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151827,\n        \"price\": 4171,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.194992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1113589,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.194996Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194996Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245830,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195003Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 468571,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 692433,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1113749,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195031Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195031Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 791604,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195063Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 468623,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 692459,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1113957,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195067Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 225944,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195071Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195071Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72302,\n        \"price\": 4251,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195078Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 17631,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195081Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195085Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 602977,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195088Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195088Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 17931,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218609Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1844813,\n        \"price\": 4050,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218614Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218614Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2571989,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218637Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218637Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 484120,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218639Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 526978,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 590990,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 617069,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 346964,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 275829,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 206197,\n        \"price\": 4062.5,\n      },\n      {\n        \"amount\": 644943,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 203867,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218642Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218642Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 388196,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218645Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445307,\n        \"price\": 4149.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 141196,\n        \"price\": 3992.5,\n      },\n      {\n        \"amount\": 421273,\n        \"price\": 3992,\n      },\n      {\n        \"amount\": 116734,\n        \"price\": 3991.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218647Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218647Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 629319,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 923817,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 133556,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 305078,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 2719420,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218656Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 133609,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 305185,\n        \"price\": 4058,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181947,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1114062,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 317950,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 220856,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 603107,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 160097,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218678Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218678Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330700,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218682Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 249220,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 924007,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 680459,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 90525,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221164,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218685Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330745,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218758Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218758Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722665,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999350,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218779Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218779Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171575,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132218,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218782Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 468344,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 290882,\n        \"price\": 4014,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218787Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218787Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722591,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999424,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218789Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218789Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722577,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999438,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218794Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1114072,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218802Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218802Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 691959,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218804Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171523,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132270,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218807Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218807Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 276831,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 1435978,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 210363,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 528775,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 612392,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 434016,\n        \"price\": 4066,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.220784Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.220784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1154222,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.220788Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.220788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 24,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.221754Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.221754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 25,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.221767Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.221767Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171509,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132284,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.237835Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.237835Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1154227,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.242864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.242864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 225323,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 129303,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 392092,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 119783,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 21827,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 326849,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.245812Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.245812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 249335,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 924122,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 680574,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 90755,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221350,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.250663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.250663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 643105,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.256748Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.256748Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102254,\n        \"price\": 3918,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.265446Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.265446Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181934,\n        \"price\": 4172,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1820923,\n        \"price\": 4010,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.269455Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.269455Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171482,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132311,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.272366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.272366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 119794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.274667Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.274667Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 330938,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.278107Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.278107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 885324,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.279468Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.279468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 792527,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.311409Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.311409Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331010,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.320151Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.320151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5000,\n        \"price\": 4117,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.321808Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244591,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 136861,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.324112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.324112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22127,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.338015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.338015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171373,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132420,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.340483Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.340483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152267,\n        \"price\": 4171,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172267,\n        \"price\": 4009,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.348749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.348749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 311286,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.350607Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.350607Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 203200,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.357922Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1155502,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.358798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.358798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50,\n        \"price\": 4123,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.359408Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.350Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138079,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.362679Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.362679Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331216,\n        \"price\": 4211,\n      },\n      {\n        \"amount\": 375669,\n        \"price\": 4166,\n      },\n      {\n        \"amount\": 196091,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 216145,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 526883,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 424179,\n        \"price\": 4026,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.375325Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.375325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4057.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.375712Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4129.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.375971Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.354Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49430,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.376664Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3000,\n        \"price\": 4103.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.376683Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.357Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4105.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.376926Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.361Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22000,\n        \"price\": 4107.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.376957Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7390,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.379036Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1016543,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.383370Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.383370Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525883,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 184918,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 586406,\n        \"price\": 4052,\n      },\n      {\n        \"amount\": 424664,\n        \"price\": 4032,\n      },\n      {\n        \"amount\": 461823,\n        \"price\": 4012,\n      },\n      {\n        \"amount\": 420773,\n        \"price\": 3992,\n      },\n      {\n        \"amount\": 389173,\n        \"price\": 3972,\n      },\n      {\n        \"amount\": 353326,\n        \"price\": 3952,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.396088Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.396088Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36760,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 27520,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.402421Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244517,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 136935,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.421151Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.421151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 373302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.423115Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.423115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.424345Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 93870,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 199800,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.426680Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.417Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1167502,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.430089Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.430089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 55007,\n        \"price\": 3966.5,\n      },\n      {\n        \"amount\": 152229,\n        \"price\": 3965.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.436154Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.436154Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185900,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 80020,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.439289Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.430Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1172502,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.443954Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.443954Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 521647,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.445655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.445655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326010,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.448805Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.448805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 691036,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.454299Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.454299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722550,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999465,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.455646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.455646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198660,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.459420Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.445Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132040,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 385170,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.459469Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.447Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1017743,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 393192,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 188112,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 622544,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.463343Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.463343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22227,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.466391Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.466391Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 73680,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 219800,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.477972Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.457Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 54200,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.478028Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.462Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.480803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.480803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 131910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.481601Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 73870,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 47520,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.484289Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.475Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20200,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.486203Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.476Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346914,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 468673,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.486235Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.486235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326052,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.492021Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.492021Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244503,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 136949,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.494454Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.494454Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9000,\n        \"price\": 4099.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.496430Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.487Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.502154Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.502154Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2573189,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 640737,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 181802,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 949369,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 132841,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 277931,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.506829Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.506829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.510216Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13770,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.513408Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18428,\n        \"price\": 3897.5,\n      },\n      {\n        \"amount\": 13874,\n        \"price\": 3896.5,\n      },\n      {\n        \"amount\": 119402,\n        \"price\": 3895.5,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 3894.5,\n      },\n      {\n        \"amount\": 18643,\n        \"price\": 3893.5,\n      },\n      {\n        \"amount\": 182141,\n        \"price\": 3892.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.522564Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.522564Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316052,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.526247Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.526247Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54280,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.534534Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.525Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94790,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.540737Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78220,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.543440Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 949519,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.554222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.554222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 694932,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 221427,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 94651,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 389296,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.561909Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.561909Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38740,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 98890,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.570070Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 132600,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.583014Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1172802,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.627762Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.627762Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 617992,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.627798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.627798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 397323,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.627803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.627803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13061,\n        \"price\": 4254,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.627810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.627810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411651,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.627818Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.627818Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4560,\n        \"price\": 4073.5,\n      },\n      {\n        \"amount\": 6490,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.630784Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.621Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 73680,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.632235Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.623Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 223944,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.637593Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.637593Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13200,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 12010,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.638578Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.639535Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 979671,\n        \"price\": 3956.5,\n      },\n      {\n        \"amount\": 14487,\n        \"price\": 3934.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.654734Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.654734Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1178802,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.658546Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.658546Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13400,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.664660Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.652Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390396,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 623644,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.681156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.681156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4051.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.684176Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 658753,\n        \"price\": 3930,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.684181Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.684181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4136.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.688173Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.678Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75930,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 189090,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.692357Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 48400,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 75520,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.695122Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1173802,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.697059Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.697059Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26520,\n        \"price\": 4045,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.701737Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10300,\n        \"price\": 4144,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.703604Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.694Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722441,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999574,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.703766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.703766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198680,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.705066Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 132721,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.707113Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.707113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171299,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132494,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.709612Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.709612Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244476,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 136976,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.717628Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.717628Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 203220,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.719939Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.710Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 90220,\n        \"price\": 3812,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.722508Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.722508Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138140,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.725555Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1171802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398323,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.733937Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.733937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48430,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 112000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.749851Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.740Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60520,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 34740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.759625Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.750Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171275,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132518,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.769061Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.769061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4068.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.769348Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 99590,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.778510Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.767Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 65690,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.780602Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.770Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1018943,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 2574389,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 189212,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 183002,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 133921,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 279031,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.782060Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.782060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1090,\n        \"price\": 4066.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.782359Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.773Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 26540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.799026Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722367,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999648,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.802923Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.802923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 641937,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 950719,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.806588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.806588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 80690,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.812426Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 46540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.815117Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1259806,\n        \"price\": 4011,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.820162Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.820162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244367,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137085,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.820192Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.820192Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.820582Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4072.25,\n      },\n      {\n        \"amount\": 75550,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.822191Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 659253,\n        \"price\": 3930,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.825206Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.825206Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171218,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132575,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.828695Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.828695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171197,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132596,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.834504Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.834504Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 689932,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 387896,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.837823Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.837823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171172,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132621,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.842708Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.842708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 950844,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 628976,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 90105,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.848148Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.848148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171160,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132633,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.849393Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.849393Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 631810,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 220466,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 154405,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 301672,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.856645Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.856645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 48520,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.857438Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.847Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 792677,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.858232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.858232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 955844,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 186914,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.861381Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.861381Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91220,\n        \"price\": 3812,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.864397Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.864397Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.868040Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171139,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132654,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.895374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.895374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 882900,\n        \"price\": 3970.5,\n      },\n      {\n        \"amount\": 46066,\n        \"price\": 3969.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.904232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.904232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 356101,\n        \"price\": 4212.5,\n      },\n      {\n        \"amount\": 2675122,\n        \"price\": 4148,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.908648Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.908648Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 99600,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.911088Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 473745,\n        \"price\": 3915,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.915260Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.915260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391326,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 473995,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 811862,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 261420,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 792277,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 642755,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 631510,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 602757,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 950319,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 231228,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 487042,\n        \"price\": 4067,\n      },\n      {\n        \"amount\": 627345,\n        \"price\": 4063,\n      },\n      {\n        \"amount\": 304585,\n        \"price\": 4058,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.929433Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.929433Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316062,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.934242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.934242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722343,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999672,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.934271Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.934271Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722286,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999729,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.941007Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.941007Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722261,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999754,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.943292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.943292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 631810,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.946326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.946326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171113,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132680,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.948642Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.948642Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.949246Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.894Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244293,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137159,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.950153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.950153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722249,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999766,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.953589Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.953589Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 300944,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 522375,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.963375Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.963375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722228,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999787,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.968236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.968236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 628950,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.972421Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.972421Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383354,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.977093Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.977093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 163420,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 142000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.977626Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 641755,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 312286,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.991339Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.991339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94647,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.994279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.994279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198680,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.005801Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:32.994Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16040,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.014391Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722207,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999808,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.016198Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.016198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23240,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.017122Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.007Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.019162Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.010Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316077,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.019428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.019428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326077,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.027244Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.027244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 188214,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.028391Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.028391Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.031868Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.031868Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383343,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 18342,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.035112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.035112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1166802,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.036096Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.036096Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331077,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.042713Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.042713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 450501,\n        \"price\": 4031,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.046921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.046921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331082,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.054577Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.054577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244269,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137183,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.059878Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.059878Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383332,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.068047Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.068047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 60850,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.069614Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 530351,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 231256,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.071205Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.071205Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 221030,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.072206Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244212,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137240,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.077273Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.077273Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 138240,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.083673Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.071Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 203190,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.086067Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.075Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 65690,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 22000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.090463Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24840,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.090497Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.079Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238143,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 132821,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.094505Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.094505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.095394Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 237043,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 131721,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.098137Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.098137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30230,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 40400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.113018Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41300,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.120606Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.086Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50030,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.122427Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63680,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.127912Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90030,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.131388Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.120Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244200,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137252,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.133845Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.133845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82180,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.134851Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49600,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 182040,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.136921Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244175,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137277,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.140129Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.140129Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4107.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.140288Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.129Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50690,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 37000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.143766Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.134Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 131910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.145480Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 69200,\n        \"price\": 4113,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.156776Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.144Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 231403,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.159709Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.159709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94947,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.164260Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.164260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1167029,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.165050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.165050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 34740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.171121Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181922,\n        \"price\": 4172,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1820910,\n        \"price\": 4010,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.179156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.179156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 206072,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 132821,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.184344Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.184344Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 550,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 76600,\n        \"price\": 4072.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.184682Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 207172,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 133921,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.186213Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.186213Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 424686,\n        \"price\": 4026,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.188615Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.188615Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331097,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1167044,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.192697Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.192697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 75520,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.198960Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 90000,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.206039Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36760,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.207627Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 629873,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.214148Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.214148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4954,\n        \"price\": 4257,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.232864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.232864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152278,\n        \"price\": 4171,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172280,\n        \"price\": 4009,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.246845Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.246845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 237648,\n        \"price\": 4051,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.285115Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.285115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131140,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 26740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.296062Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 56870,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.296131Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.285Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 190457,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.326167Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.326167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 219466,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.330264Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.330264Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 633445,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.335340Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.335340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30220,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.344708Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.309Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10550,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.351278Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27790,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.354068Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49570,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.354722Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.345Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722181,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999834,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.373666Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.373666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6200,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.377628Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.364Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4111.5,\n      },\n      {\n        \"amount\": 129210,\n        \"price\": 4112,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.378333Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.367Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 243830,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.378980Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.378980Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 380630,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.379640Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.370Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 603107,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.381534Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.381534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.398273Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.398273Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2040,\n        \"price\": 4109.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.400679Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.388Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8490,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.403484Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.393Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 500,\n        \"price\": 6133,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.403708Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.403708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 50810,\n        \"price\": 4083.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.407934Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90405,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.409244Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.409244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131210,\n        \"price\": 4112,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.411624Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.399Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3640,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.420343Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 192757,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.423722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.423722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244154,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137298,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.444065Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.444065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 261595,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.453043Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.453043Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.461024Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.461024Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129053,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 193007,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.461054Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.461054Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 74240,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.465594Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.456Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54110,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.468086Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.458Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.480414Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.480414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88840,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.480850Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.469Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.483717Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.483717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26000,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.490336Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9940,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.494317Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.481Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244133,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137319,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.494324Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.494324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 231903,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.496617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.496617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 43926,\n        \"price\": 4209,\n      },\n      {\n        \"amount\": 185438,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1416411,\n        \"price\": 4134,\n      },\n      {\n        \"amount\": 692641,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 249673,\n        \"price\": 4104,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.501250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.501250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80040,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.504604Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.494Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198190,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 39510,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.515274Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 193420,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.519539Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 223945,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.537713Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.537713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 129442,\n        \"price\": 3912,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.550527Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.550527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4000,\n        \"price\": 4042.5,\n      },\n      {\n        \"amount\": 25500,\n        \"price\": 4043,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.566839Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.557Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2624877,\n        \"price\": 3980,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.575735Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.575735Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 18306,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.579759Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.579759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625977,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 225323,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 86509,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 387228,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 22202,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.582232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.582232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 387189,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 22241,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.584573Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.584573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 634445,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.600212Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.600212Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 634795,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.602385Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.602385Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171092,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132701,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.603873Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.603873Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244107,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137345,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.617830Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.617830Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.632147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.632147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22121,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.635763Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.635763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 600985,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 412570,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 227323,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 587295,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 271943,\n        \"price\": 4061.5,\n      },\n      {\n        \"amount\": 250107,\n        \"price\": 4039.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.704522Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.704522Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.722701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.722701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 487242,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.750156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.750156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4075.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.758069Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36392,\n        \"price\": 4457,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 247047,\n        \"price\": 3885,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.775467Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.775467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30200,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.785278Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.776Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54140,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.794227Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22145,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.803140Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.803140Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 234143,\n        \"price\": 4065.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.809697Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.809697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 950719,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.818313Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.818313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 86349,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.826485Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.826485Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1040,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.844859Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.835Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8340,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.857389Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.848Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.858986Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.850Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1021364,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 347477,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.859893Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.859893Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390838,\n        \"price\": 4260,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.867703Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.867703Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88066,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 127410,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.871361Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.871361Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.889985Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.889985Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 223427,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 132949,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 383293,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 351373,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.895854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.895854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8360,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.896023Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.887Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525771,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2574277,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1939587,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 625753,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221168,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.904994Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.904994Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351533,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157204,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.919758Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.919758Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39480,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.920817Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22026,\n        \"price\": 4907,\n      },\n      {\n        \"amount\": 23216,\n        \"price\": 4879,\n      },\n      {\n        \"amount\": 17008,\n        \"price\": 4851,\n      },\n      {\n        \"amount\": 6369,\n        \"price\": 4795,\n      },\n      {\n        \"amount\": 9267,\n        \"price\": 4767,\n      },\n      {\n        \"amount\": 4752,\n        \"price\": 4711,\n      },\n      {\n        \"amount\": 2960,\n        \"price\": 4683,\n      },\n      {\n        \"amount\": 1688,\n        \"price\": 4599,\n      },\n      {\n        \"amount\": 1469,\n        \"price\": 4571,\n      },\n      {\n        \"amount\": 595,\n        \"price\": 4543,\n      },\n      {\n        \"amount\": 34512,\n        \"price\": 4515,\n      },\n      {\n        \"amount\": 39923,\n        \"price\": 4487,\n      },\n      {\n        \"amount\": 10384,\n        \"price\": 4459,\n      },\n      {\n        \"amount\": 249264,\n        \"price\": 4431,\n      },\n      {\n        \"amount\": 21446,\n        \"price\": 4403,\n      },\n      {\n        \"amount\": 91430,\n        \"price\": 4375,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 178026,\n        \"price\": 4007,\n      },\n      {\n        \"amount\": 681430,\n        \"price\": 3983,\n      },\n      {\n        \"amount\": 1499261,\n        \"price\": 3960,\n      },\n      {\n        \"amount\": 1026359,\n        \"price\": 3936,\n      },\n      {\n        \"amount\": 129598,\n        \"price\": 3912,\n      },\n      {\n        \"amount\": 712498,\n        \"price\": 3889,\n      },\n      {\n        \"amount\": 1697188,\n        \"price\": 3865,\n      },\n      {\n        \"amount\": 17347,\n        \"price\": 3841,\n      },\n      {\n        \"amount\": 163648,\n        \"price\": 3818,\n      },\n      {\n        \"amount\": 15094,\n        \"price\": 3794,\n      },\n      {\n        \"amount\": 335853,\n        \"price\": 3770,\n      },\n      {\n        \"amount\": 232843,\n        \"price\": 3746,\n      },\n      {\n        \"amount\": 106008,\n        \"price\": 3723,\n      },\n      {\n        \"amount\": 248882,\n        \"price\": 3699,\n      },\n      {\n        \"amount\": 236718,\n        \"price\": 3675,\n      },\n      {\n        \"amount\": 35752,\n        \"price\": 3652,\n      },\n      {\n        \"amount\": 32523,\n        \"price\": 3628,\n      },\n      {\n        \"amount\": 162989,\n        \"price\": 3604,\n      },\n      {\n        \"amount\": 330424,\n        \"price\": 3581,\n      },\n      {\n        \"amount\": 218649,\n        \"price\": 3557,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.934852Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.934852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 11008,\n        \"price\": 4823,\n      },\n      {\n        \"amount\": 2752,\n        \"price\": 4739,\n      },\n      {\n        \"amount\": 1376,\n        \"price\": 4655,\n      },\n      {\n        \"amount\": 688,\n        \"price\": 4627,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.934875Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.934875Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722160,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999855,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.945688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.945688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171037,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132756,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.948293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.948293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193107,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 127310,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.952800Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.952800Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 223927,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 132449,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.954561Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.954561Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1580,\n        \"price\": 4038.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.954713Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.942Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1156977,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.970213Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.970213Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 100000,\n        \"price\": 4030.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.980471Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.971Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 467750,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 291476,\n        \"price\": 4014,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.991959Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.991959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100,\n        \"price\": 4153,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.993478Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.984Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1780,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.995837Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:33.986Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224527,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.017415Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.017415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 792677,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.036203Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.036203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1640,\n        \"price\": 4097.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.039450Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.028Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411804,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 525005,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 1018177,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 633263,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 550232,\n        \"price\": 4027,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.041205Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.041205Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1156677,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.043939Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.043939Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525205,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.048534Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.048534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4350,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.049709Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10600,\n        \"price\": 4099.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.061364Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12300,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.063288Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.053Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 11000,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 15700,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.064476Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.055Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 65040,\n        \"price\": 4091.25,\n      },\n      {\n        \"amount\": 55400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.071555Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 81000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 105930,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.073470Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30850,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 135930,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.076415Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383546,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.079150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.079150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1150677,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.088008Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.088008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60520,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.095253Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.080Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61600,\n        \"price\": 4119,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.095259Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4059.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.098168Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.086Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49300,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.099668Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4053.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.102304Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.091Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 21540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.104529Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.094Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 41540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.108203Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.097Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15200,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 70400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.117321Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.105Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 165930,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.117366Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.108Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 56540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.121115Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 76540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.123595Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.129188Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 200,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.131257Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4069,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.134681Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4066.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.140662Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.126Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4072.25,\n      },\n      {\n        \"amount\": 75550,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.153008Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.154217Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 24200,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.155635Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.159019Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24240,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.167351Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.157Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 161840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 25090,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.173555Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54120,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.175969Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21580,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.227871Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.218Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 34950,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.231921Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33720,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16930,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.235375Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41300,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.246577Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 309056,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.270351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.270351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351545,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150689,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.270358Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.270358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 308239,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.270363Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.270363Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 191702,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.273143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.273143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 484115,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 317955,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.278746Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.278746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 468683,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 351535,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.278765Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.278765Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 134009,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 230856,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.278774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.278774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 618937,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.281089Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.281089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 468688,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 351530,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.285073Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.285073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411359,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 524760,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 1017732,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 632373,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093799,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.289184Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.289184Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40839,\n        \"price\": 3909,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.295790Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.295790Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 524643,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2574160,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1939470,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 625519,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220980,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.304164Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.304164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44170,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 23350,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.309018Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 250086,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137366,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.312302Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.312302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8350,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.312575Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 232353,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.322050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.322050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 622040,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.327326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.327326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 524521,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2574038,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1939348,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 625275,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220784,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.331803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.331803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39500,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.333021Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.307Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 61400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.334109Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 524358,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2573875,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1939185,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 624949,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220522,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.337211Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.337211Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 191840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.337786Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.327Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54395,\n        \"price\": 3966.5,\n      },\n      {\n        \"amount\": 152841,\n        \"price\": 3965.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.340713Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.340713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 627570,\n        \"price\": 4063,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.344187Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.344187Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722105,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999910,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.356245Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.356245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416278,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 94586,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.364757Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.364757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36760,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.369834Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 591379,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 195786,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 623644,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 116620,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 101381,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 237365,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 515100,\n        \"price\": 4040.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.370821Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.370821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198301,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.372578Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.372578Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170964,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132829,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.373729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.373729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 116704,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.405719Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.405719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170929,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132864,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.408718Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.408718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 151981,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 683228,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.415496Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.415496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 61540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 38350,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.420180Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 41540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.422243Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 59460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.426086Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 22000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.426134Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.417Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 26740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.427151Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.418Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 550,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 76600,\n        \"price\": 4072.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.429363Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.420Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 227447,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 522375,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.434610Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.434610Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170811,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132982,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.437412Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.437412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.447229Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.438Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.449693Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.441Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 56870,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.459933Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.447Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 250031,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137421,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.463688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.463688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170695,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133098,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.470638Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.470638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351583,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.481825Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.481825Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29620,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.499239Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.490Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170597,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133196,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.501073Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.501073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.509267Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170577,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133216,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.516803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.516803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170555,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133238,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.518086Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.518086Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54130,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.518337Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.506Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 262045,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.536384Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.536384Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722032,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999983,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.548423Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.548423Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 59170,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.551546Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.541Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721997,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000018,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.553913Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.553913Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.554197Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721881,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000134,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.560299Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.560299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77941,\n        \"price\": 4102.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.567090Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.567090Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721763,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000252,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.573338Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.573338Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1663113,\n        \"price\": 4129,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.589838Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.589838Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8177.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.603665Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.603665Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351630,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150712,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.603686Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.603686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61281,\n        \"price\": 4263,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.612472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.612472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 104962,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.617409Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.617409Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.629588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.629588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.633712Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.633712Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474220,\n        \"price\": 4109,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.643597Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.643597Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351750,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150772,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.667684Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.667684Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18140,\n        \"price\": 4083.25,\n      },\n      {\n        \"amount\": 32680,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.695156Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 25,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.701933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.701933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 26,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.701953Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.701953Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8370,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.704407Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1622569,\n        \"price\": 4170,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.717543Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.717543Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2023255,\n        \"price\": 4180,\n      },\n      {\n        \"amount\": 692006,\n        \"price\": 4158,\n      },\n      {\n        \"amount\": 195291,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 410851,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 332920,\n        \"price\": 4018,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.727516Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.727516Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497573,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.735541Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.735541Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.740669Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.740669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50030,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 52620,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.748434Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.739Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 487742,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.757595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.757595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721665,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000350,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.759209Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.759209Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625199,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 224277,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.762926Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.762926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4100.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.781630Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.771Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6640,\n        \"price\": 4101.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.785440Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249958,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137494,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.788719Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.788719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60400,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.788862Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.778Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721645,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000370,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.792131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.792131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1660,\n        \"price\": 4077.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.792352Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.781Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 50210,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.810420Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 175000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.814738Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 131910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.817835Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.808Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 24460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.822604Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 182,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fa93bd9b-e1b6-d38d-f4d4-65337a766e34\",\n    \"localTimestamp\": 2019-04-01T00:00:34.856750Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.830Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351568,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.856774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.856774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 154511,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.860561Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.860561Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249842,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137610,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.864160Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.864160Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 620651,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 197654,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.876628Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.876628Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351718,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.888652Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.888652Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721623,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000392,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.893116Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.893116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249724,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137728,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.895272Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.895272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346018,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.896916Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.896916Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 347728,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1155332,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.920593Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.920593Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41000,\n        \"price\": 4131.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.929187Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.917Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 311886,\n        \"price\": 3906,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.931099Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.931099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 337728,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.934266Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.934266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24210,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.941234Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.919Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.945788Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.945788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4047,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.945865Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170510,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133283,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.947594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.947594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 125364,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.948731Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.948731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4138.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.953822Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50020,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.953921Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.941Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 342562,\n        \"price\": 4061,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.954539Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.954539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42700,\n        \"price\": 4146,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.960253Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:34.950Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249626,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137826,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.961232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.961232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249591,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137861,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.964627Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.964627Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 594349,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1045936,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.969464Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.969464Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 812362,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.973104Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.973104Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 340920,\n        \"price\": 4018,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.975139Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.975139Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632272,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.984331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.984331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.986870Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.986870Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170461,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133332,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.991171Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.991171Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 336228,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.018616Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.018616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 228173,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 128553,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 420174,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 100066,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 22045,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 332332,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.018642Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.018642Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1194228,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.041385Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.041385Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.044038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.044038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8330,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.050343Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.040Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2620877,\n        \"price\": 3980,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.054590Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.054590Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721578,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000437,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.058106Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.058106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1194528,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.072238Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.072238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39490,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.113037Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.104Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333832,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.114069Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.114069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 249785,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 924234,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1046048,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 86573,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220704,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.114107Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.114107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102626,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.114109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.114109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1200528,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.114112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.114112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75000,\n        \"price\": 4072.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.153848Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 39210,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.206763Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 205000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.209523Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.200Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1930,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 61400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.229658Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 183190,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 71870,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.232903Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.223Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2040,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.240802Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.231Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39240,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.243353Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50070,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.249654Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 101040,\n        \"price\": 4070.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.253605Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 161840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 215000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.259644Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4069.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.265550Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4250,\n        \"price\": 4011,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.275526Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 33720,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.277303Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.268Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 3984,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.278748Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.269Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13400,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 24110,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.293424Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15930,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.363311Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8380,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.398098Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.388Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.413982Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.404Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 26540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.453956Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 46540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.456536Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.447Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 71870,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.502498Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.491Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 134200,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.572482Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4075.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.580852Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4074.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.584135Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.574Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.591587Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.581Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46350,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.593052Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.583Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 37820,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.601757Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49370,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 182740,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.608147Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.598Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48520,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 225130,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.666096Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.674071Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.664Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4040.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.681000Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.670Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49350,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.682596Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4032.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.685427Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132510,\n        \"price\": 4155,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.688602Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.678Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4024,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.692712Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 39050,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.719180Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.710Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 223900,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 40720,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.723728Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249571,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137881,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.747060Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.747060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249549,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137903,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.751474Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.751474Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 86458,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.753747Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.753747Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8340,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.754609Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 624547,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 224277,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 90354,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 416278,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.758499Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.758499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 628120,\n        \"price\": 4063,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.764727Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.764727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152104,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.775155Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.775155Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.788216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.788216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153078,\n        \"price\": 4171,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.790227Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.790227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411616,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 250550,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 793442,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 626077,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 569803,\n        \"price\": 4027,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.802744Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.802744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 55815,\n        \"price\": 4266,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.810934Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.810934Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249504,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137948,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.818681Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.818681Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 116559,\n        \"price\": 3991.5,\n      },\n      {\n        \"amount\": 181877,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 383933,\n        \"price\": 3990.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.827304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.827304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170375,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133418,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.828780Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.828780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 378884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.829663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.829663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391576,\n        \"price\": 4112,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.845670Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.845670Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645361,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 261774,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 793171,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 631730,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.850935Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.850935Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333748,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.855829Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.855829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383546,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 141310,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.855849Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.855849Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 225200,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.862380Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.862380Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1148,\n        \"price\": 4416,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.872661Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.872661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330300,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.883690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.883690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 412059,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 250993,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 793614,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 626963,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.887569Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.887569Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 251110,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 924351,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1046165,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 90588,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220892,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.891110Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.891110Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721492,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000523,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.892021Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.892021Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 251232,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 924473,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1046287,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 90832,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221088,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.897621Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.897621Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586369,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 967423,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.904207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.904207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 251395,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 967586,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1046450,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 91158,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221350,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.904213Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.904213Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249455,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137997,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.906428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.906428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721443,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000572,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.912599Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.912599Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.923921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.923921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170346,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133447,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.925140Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.925140Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 968086,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 593849,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221850,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 154011,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.926664Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.926664Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 469188,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 626463,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.929798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.929798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128719,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 197488,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.933961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.933961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128969,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 197238,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.933973Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.933973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129219,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 196988,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.937765Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.937765Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330259,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.951306Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.951306Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15264,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.961335Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.961335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330048,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.973201Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.973201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 484077,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 195710,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 623682,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 153897,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 301020,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 116552,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 603221,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 182812,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 327721,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 950909,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.990683Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.990683Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.997400Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.997400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 156188,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 679144,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 238178,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 137571,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 225265,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 172205,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 457366,\n        \"price\": 4012,\n      },\n      {\n        \"amount\": 980940,\n        \"price\": 4008.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.000676Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.000676Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 980930,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 534700,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.003430Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.003430Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330163,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200529,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.003434Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.003434Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 103406,\n        \"price\": 4073.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.005956Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.005956Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68550,\n        \"price\": 4326,\n      },\n      {\n        \"amount\": 22526,\n        \"price\": 4325,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.009612Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.009612Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 535200,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 625963,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.009627Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.009627Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.028029Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.028029Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 278851,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.031731Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.031731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249369,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138083,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.035615Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.035615Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474770,\n        \"price\": 4109,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.040606Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.040606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91058,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.047576Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.047576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632730,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 307239,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.050145Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.050145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15714,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.055285Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.055285Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 414320,\n        \"price\": 4007.5,\n      },\n      {\n        \"amount\": 178127,\n        \"price\": 4007,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.056594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.056594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170280,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133513,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.062757Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.062757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 448531,\n        \"price\": 4151,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.068050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.068050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170133,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133660,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.081749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.081749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.086143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.086143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721414,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000601,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.101415Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.101415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 217089,\n        \"price\": 3903,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.152709Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.152709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721267,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000748,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.158186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.158186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52385,\n        \"price\": 3925.5,\n      },\n      {\n        \"amount\": 1230322,\n        \"price\": 3925,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.184494Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.184494Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132740,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 430630,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.207602Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.213387Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.836Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 131910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.213813Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.855Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219800,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.214019Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.869Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.214234Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.899Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40730,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.214825Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.919Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4072.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.219609Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.964Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41300,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.221041Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:35.987Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39270,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.221733Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2150,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.222068Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.020Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49340,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.222106Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.023Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4071.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.222282Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.024Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4070.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.222649Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.028Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4012.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.222919Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.031Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40800,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.223232Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.034Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36760,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.225259Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.129Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44800,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.225593Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 26540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.226014Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.134Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 37820,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 187130,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.226537Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.139Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39500,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 73680,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.227096Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 46540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.227904Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24270,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 26000,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.230697Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 51000,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.231135Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1456329,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 467406,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.232075Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.232075Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78220,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.237314Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346813,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.237651Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.237651Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137280,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.237748Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249222,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138230,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.243510Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.243510Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721201,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000814,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.245717Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.245717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 125964,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.261810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.261810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 39270,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.276063Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.264Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 122214,\n        \"price\": 4073.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.283803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.283803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383533,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.285620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.285620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 215000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.286617Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 31400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.288828Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 101840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.290624Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330263,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200629,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.306227Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.306227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249193,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138259,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.313422Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.313422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 54270,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.324789Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.314Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170106,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133687,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.327536Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.327536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 71840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 245000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.329642Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.317Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 267195,\n        \"price\": 4131,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.336583Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.336583Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177030,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 44180,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.351792Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.342Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30900,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 62230,\n        \"price\": 4098.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.352959Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.344Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249127,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138325,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.358983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.358983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40680,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 15510,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.363755Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91038,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.366225Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.366225Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141124,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.367728Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.367728Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33720,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 20500,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.377377Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 315800,\n        \"price\": 4049,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.382124Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.382124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 17530,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 57060,\n        \"price\": 4086.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.382685Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 540460,\n        \"price\": 4039,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.385608Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.385608Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170056,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133737,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.386465Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.386465Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30270,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 44500,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.398388Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.389Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 114,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2c72b3eb-afe6-47a0-0b10-1432cc449e24\",\n    \"localTimestamp\": 2019-04-01T00:00:36.400525Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.765Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.402803Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16430,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.404322Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.394Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34800,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.406536Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29324,\n        \"price\": 4134.5,\n      },\n      {\n        \"amount\": 2004737,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 412357,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 915410,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 469688,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 192441,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.409455Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.409455Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12010,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 19930,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.415029Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.405Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1221,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4f769b9d-7aaf-a909-9e52-395f9235d423\",\n    \"localTimestamp\": 2019-04-01T00:00:36.431353Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.862Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2227,\n    \"exchange\": \"bitmex\",\n    \"id\": \"51c0ab27-064e-5989-b23a-e17b0e19c3ac\",\n    \"localTimestamp\": 2019-04-01T00:00:36.431353Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.862Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384033,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.431379Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.431379Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44760,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.436621Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1202673,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.442973Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.442973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 13200,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.443333Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.434Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 56210,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4111.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.445662Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.436Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 41,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b3110bba-df7a-b383-8c64-5d1d7fd570a5\",\n    \"localTimestamp\": 2019-04-01T00:00:36.456693Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.933Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 211,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ea9cce21-2541-7dde-a9a4-56a4b4bcc744\",\n    \"localTimestamp\": 2019-04-01T00:00:36.465136Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.953Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330283,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.465163Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.465163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327783,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.471535Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.471535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59180,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.474335Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.464Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13828,\n        \"price\": 4269,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.481693Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.481693Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 392176,\n        \"price\": 4112,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.486301Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.486301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 399338,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.492329Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.492329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30590,\n        \"price\": 4117.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.506437Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.497Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44170,\n        \"price\": 4086.75,\n      },\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.524649Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.510Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 31350,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 106910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.538595Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.529Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7140,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.548489Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.537Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248037,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 587295,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.552993Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.552993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 126910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.553668Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16350,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 141910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.555313Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.546Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 45230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.557747Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.547Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 188190,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.559583Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.550Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377890,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.559919Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.559919Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6540,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 161910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.561582Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.551Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 275000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.565088Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.554Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 467311,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 291914,\n        \"price\": 4014,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.592141Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.592141Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10550,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.599529Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.583Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 23350,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.600588Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.587Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 37450,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.601207Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.589Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4072.25,\n      },\n      {\n        \"amount\": 77150,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.601727Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.591Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86430,\n        \"price\": 3905.5,\n      },\n      {\n        \"amount\": 47890,\n        \"price\": 3904.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.602189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.602189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 246057,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.602193Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.602193Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 150430,\n        \"price\": 4064.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.606077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.606077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721151,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000864,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.610023Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.610023Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4076.75,\n      },\n      {\n        \"amount\": 59530,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.613638Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.604Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 381988,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 110630,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.619181Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.619181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 32290,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.625675Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249100,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138352,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.641066Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.641066Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170005,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133788,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.642437Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.642437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30450,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.644287Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.634Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4111.5,\n      },\n      {\n        \"amount\": 131210,\n        \"price\": 4112,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.646135Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.637Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15930,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 23350,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.647927Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 373353,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.666267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.666267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29620,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 48600,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.670729Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 488612,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.680738Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.680738Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 373347,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.696655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.696655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327793,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.696681Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.696681Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 192452,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 317966,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.713292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.713292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.713319Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.704Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 73680,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.732818Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.723Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224600,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.740792Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.740792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 45220,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.755843Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.761129Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.752Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 203190,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.815009Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 207730,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.821421Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1318148,\n        \"price\": 3900,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.824360Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.824360Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52620,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.825173Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.815Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 381959,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 327822,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.846355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.846355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.871306Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.871306Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.871332Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.871332Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189307,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.871336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.871336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185900,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 30850,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.879380Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.869Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 39270,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.881384Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202730,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 57620,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.911525Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.899Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327796,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.930800Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.930800Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7100,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.942655Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189952,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.952655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.952655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 116734,\n        \"price\": 3991.5,\n      },\n      {\n        \"amount\": 181902,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 383958,\n        \"price\": 3990.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.952688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.952688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24840,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.959163Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.950Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 431630,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.964609Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.955Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 5270.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.967165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.967165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 138240,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.973577Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.962Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88167,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.986623Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.986623Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24600,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 69220,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.000758Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:36.983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384459,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.023137Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.023137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330498,\n        \"price\": 4211,\n      },\n      {\n        \"amount\": 374951,\n        \"price\": 4166,\n      },\n      {\n        \"amount\": 194573,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 215427,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 522922,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236606,\n        \"price\": 3974,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.023163Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.023163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6200,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.024278Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44180,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.029072Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1992,\n        \"price\": 5270.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.054604Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.054604Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 69527,\n        \"price\": 4047.5,\n      },\n      {\n        \"amount\": 223433,\n        \"price\": 4046.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.057498Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.057498Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327727,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.057520Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.057520Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40680,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 15510,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.065825Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189745,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 318508,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 238449,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 603492,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.080774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.080774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721124,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000891,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.080831Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.080831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 44950,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.093200Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 26,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fa9e454e-913a-a12c-fa1e-300a361add46\",\n    \"localTimestamp\": 2019-04-01T00:00:37.098173Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.825Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169951,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133842,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.098202Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.098202Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18449,\n        \"price\": 3897.5,\n      },\n      {\n        \"amount\": 13895,\n        \"price\": 3896.5,\n      },\n      {\n        \"amount\": 119423,\n        \"price\": 3895.5,\n      },\n      {\n        \"amount\": 1221,\n        \"price\": 3894.5,\n      },\n      {\n        \"amount\": 18664,\n        \"price\": 3893.5,\n      },\n      {\n        \"amount\": 182196,\n        \"price\": 3892.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.156390Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.156390Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 123938,\n        \"price\": 4063.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.156432Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.156432Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44800,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.180083Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 69,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1d0a52c8-f757-a3c6-f709-db9959bfe0ba\",\n    \"localTimestamp\": 2019-04-01T00:00:37.184182Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.868Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 69230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.185443Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.172Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44790,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.227237Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 326821,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.245767Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.245767Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52620,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 40490,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.262916Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 322887,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 149031,\n        \"price\": 4188.5,\n      },\n      {\n        \"amount\": 600885,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 75622,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 1663013,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 271773,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 692541,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 445371,\n        \"price\": 4118.5,\n      },\n      {\n        \"amount\": 474670,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 246327,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 793564,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 586419,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 625923,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 224635,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 587255,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 195750,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 603442,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 102676,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 244151,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 210463,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 125864,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 124466,\n        \"price\": 4058.5,\n      },\n      {\n        \"amount\": 315700,\n        \"price\": 4049,\n      },\n      {\n        \"amount\": 46619,\n        \"price\": 4048.5,\n      },\n      {\n        \"amount\": 540360,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 138452,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 280061,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 34465,\n        \"price\": 3988.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.273650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.273650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8510,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 184030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.286405Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.275Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.286687Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8320,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.293845Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.284Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.305620Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59180,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 4076.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.318698Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.309Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 235000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 81840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.320102Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.311Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 603463,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.332199Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.332199Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88697,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.342383Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.342383Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54230,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 39600,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.345813Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 205000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 111840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.346870Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721073,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000942,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.347986Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.347986Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249050,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138502,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.350406Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.350406Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138140,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.372260Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.362Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721019,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000996,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.390286Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.390286Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248999,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138553,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.390714Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.390714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 84998,\n        \"price\": 4112.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.425837Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.425837Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 141840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.462642Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 53943,\n        \"price\": 3966.5,\n      },\n      {\n        \"amount\": 153293,\n        \"price\": 3965.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.473917Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.473917Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 39040,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.479090Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224096,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.489248Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.489248Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.503161Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.503161Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 11000,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 69230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.541910Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.532Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21000,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 235000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.544797Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30850,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.563228Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.549Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 205000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 171840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.583226Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 69240,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.585921Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 407630,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 161280,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.624902Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.615Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40750,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.625856Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2080,\n        \"price\": 4073.75,\n      },\n      {\n        \"amount\": 1620,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.658754Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.649Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52593,\n        \"price\": 4272,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.662567Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.662567Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169907,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133886,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.662593Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.662593Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169767,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134026,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.663996Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.663996Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32290,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.766779Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 26,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.782287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.782287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 27,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.787496Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.787496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224996,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.787523Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.787523Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.792799Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.781Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.825101Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54240,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 54600,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.833530Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39240,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.837102Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 7360,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.838871Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.838871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29620,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1930,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.874416Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39520,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 53850,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.876669Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.867Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24240,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 69600,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.902499Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.892Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169717,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134076,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.905189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.905189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 175000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.906132Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.895Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84600,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.966145Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.956Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39510,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.971720Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.962Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24200,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.973204Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.964Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44810,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.979215Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:37.970Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 190918,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.007043Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.007043Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6430,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.010375Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1091689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.013290Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.013290Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137280,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 431630,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.042939Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.027Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720879,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001136,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.101579Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.101579Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720835,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001180,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.306796Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.306796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2010737,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 494612,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.325167Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.325167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 37810,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.332521Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.322Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38260,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.335800Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.344516Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44780,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.351409Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2840,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.359737Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.350Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248945,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138607,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.386523Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.386523Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 179540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 67330,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.447402Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.435Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 214030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.478837Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.439Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 407630,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 161280,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.479136Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.460Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137280,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 431630,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.479658Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.463Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16430,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.480110Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.466Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 114280,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.480116Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5010,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 19930,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.488258Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.479Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 322593,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 243953,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 595423,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 203917,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 222121,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 170223,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 83916,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.497675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.497675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 392053,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.497678Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.497678Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248901,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138651,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.502755Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502755Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1200868,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.502764Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502764Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20342,\n        \"price\": 3897,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.502766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248761,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138791,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.502768Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502768Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1210609,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.502796Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384560,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.502801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720785,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001230,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514792Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152104,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 687272,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514799Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 503981,\n        \"price\": 4107.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169479,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134314,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514820Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1855210,\n        \"price\": 4000,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514834Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514834Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3355,\n        \"price\": 4291,\n      },\n      {\n        \"amount\": 141942,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 544470,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 100165,\n        \"price\": 4239,\n      },\n      {\n        \"amount\": 1385872,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 323121,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 465665,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 185633,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1300941,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 601041,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 407105,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 261891,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 968008,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 2010815,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 307169,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 469758,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 224573,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 190014,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 90984,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 189791,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 327766,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1210648,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 13545,\n        \"price\": 3938.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514843Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514843Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1212692,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514846Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 490077,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514853Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13818,\n        \"price\": 3938.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514855Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514855Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 585019,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514857Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720740,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001275,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514860Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514860Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514862Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514862Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169434,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134359,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514865Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 260304,\n        \"price\": 3974,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529040Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529040Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625423,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 225073,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529074Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529074Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189848,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91150,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529101Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529101Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1215692,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529103Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129053,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 190014,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529106Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128803,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 190264,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529108Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529108Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128553,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 190514,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529113Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 317766,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529126Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529126Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 270769,\n        \"price\": 4275,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529129Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529129Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248711,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138841,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169421,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134372,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529164Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 469258,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 625923,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720502,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001513,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529169Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529169Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 468758,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 626423,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529180Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720444,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001571,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529193Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529193Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 417292,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529197Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248666,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138886,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529200Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529200Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1729077,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 346813,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529203Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169363,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134430,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529205Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529205Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44644,\n        \"price\": 4209,\n      },\n      {\n        \"amount\": 186351,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1417129,\n        \"price\": 4134,\n      },\n      {\n        \"amount\": 693259,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 252831,\n        \"price\": 4104,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 190389,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91275,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102716,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548450Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548450Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248428,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 139124,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548486Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548486Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224573,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 129053,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548510Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548510Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152234,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548512Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548512Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 628056,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548514Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720431,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001584,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548517Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 187200,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58236,\n        \"price\": 3894,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548609Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 460156,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548612Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548612Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 687372,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548616Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248415,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 139137,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248357,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 139195,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548681Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548681Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 317788,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548716Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 417263,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 317817,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548720Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548720Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 795205,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548731Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144026,\n        \"price\": 4278,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169321,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134472,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.552936Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.552936Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 510,\n        \"price\": 6133,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.553015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.553015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129285,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.553017Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.553017Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169300,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134493,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.553054Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.553054Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 211299,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.553057Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.553057Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102920,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 304994,\n        \"price\": 4058,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.553059Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.553059Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169234,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134559,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.553066Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.553066Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 168203,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135589,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.555712Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.555712Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 417010,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.577220Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.577220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 584707,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.587268Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.587268Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 627620,\n        \"price\": 4063,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.606857Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.606857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193431,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.612249Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.612249Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 154968,\n        \"price\": 4183,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.621964Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.621964Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131140,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 7700,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.624780Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.614Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 222319,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.625657Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.625657Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 469171,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.632557Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.632557Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720389,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001626,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.674122Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.674122Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1216192,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.676846Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.676846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416976,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 317851,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.680197Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.680197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 221220,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.681191Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.672Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720368,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001647,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.686310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.686310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44820,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.704019Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.694Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 469271,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1216292,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.706079Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.706079Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7650,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.707193Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 318069,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.714347Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.714347Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 710660,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.715668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.715668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226573,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.723224Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.723224Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1206292,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.728680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.728680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137768,\n        \"price\": 4110.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.733937Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.733937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341069,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.750199Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.750199Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1204248,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.759458Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.759458Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 627806,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 226823,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.769127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.769127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1194248,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.771292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.771292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 425282,\n        \"price\": 3891,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.782003Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.782003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 204017,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.784709Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.784709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1193948,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.786968Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.786968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1099857,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.820041Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.820041Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1203948,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.837445Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.837445Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1213948,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.840414Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.840414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1207948,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.844063Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.844063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588707,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.871552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.871552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 49990,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.876115Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.862Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.884418Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.884418Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632040,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.904778Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.904778Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416947,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 341098,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.915037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.915037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1017733,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.925114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.925114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184030,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 112000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.935631Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:38.925Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2004815,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 484077,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.941690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.941690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 702744,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 342394,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 223619,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 527129,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 303348,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 351983,\n        \"price\": 4043,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.965787Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.965787Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1217948,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.972296Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.972296Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 3248.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.976773Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.976773Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 118417,\n        \"price\": 3541,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.976788Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.976788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720302,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001713,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.976793Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.976793Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 881684,\n        \"price\": 3970.5,\n      },\n      {\n        \"amount\": 47282,\n        \"price\": 3969.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.979741Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.979741Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248315,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 139237,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.984245Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.984245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346863,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 469221,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.994654Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.994654Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 168036,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135756,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.003635Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.003635Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1219992,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.020592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.020592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 300210,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 523185,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.024142Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.024142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.026539Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.026539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224800,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.032303Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.022Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 167979,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135813,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.036716Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.036716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 907494,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.042398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.042398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 719271,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1002743,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.047440Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.047440Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341113,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.051513Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.051513Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24290,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.052086Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.035Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44850,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.052555Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.041Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248294,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 139258,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.053933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.053933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 160403,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1091689,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 607995,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 248052,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 158451,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 976487,\n        \"price\": 4008.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.063199Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.063199Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2840,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.063235Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.049Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 469206,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.067243Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.067243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 556279,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 341851,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 546358,\n        \"price\": 4048,\n      },\n      {\n        \"amount\": 408241,\n        \"price\": 4018,\n      },\n      {\n        \"amount\": 365281,\n        \"price\": 4008,\n      },\n      {\n        \"amount\": 238733,\n        \"price\": 3998.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.084267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.084267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1220292,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.090100Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.090100Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91125,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.094869Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.094869Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 85830,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.275854Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52620,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 180770,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.275960Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39211,\n        \"price\": 4281,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.304439Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.304439Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 157472,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.311703Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.311703Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 247263,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140288,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.311799Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.311799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 306857,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.311804Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.311804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2010815,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 490077,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.321224Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.321224Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341263,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1220442,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.321257Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.321257Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1226442,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.321269Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.321269Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1430867,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.327983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.327983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 167934,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135858,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.336988Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.336988Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 247197,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140354,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.342555Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.342555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 719104,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1002910,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.377780Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.377780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2585875,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.380806Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.380806Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 803205,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.389751Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.389751Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227823,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.401426Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.401426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 471832,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.404159Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.404159Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 471419,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.406037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.406037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346813,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 471469,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.411749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.411749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 247030,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140521,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.416819Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.416819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.419202Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.409Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 80640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.422851Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44830,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.430327Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.416Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 167883,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135909,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.431581Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.431581Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 1220,\n        \"price\": 4074.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.441218Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.432Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 719047,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1002967,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.441374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.441374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718996,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003018,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.450637Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.450637Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 644593,\n        \"price\": 4060.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.452172Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.452172Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.481047Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 146910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 34460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.498121Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.489Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 126910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 54460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.511348Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.502Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246979,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140572,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.511388Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.511388Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1663013,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 230475,\n        \"price\": 4124.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.511413Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.511413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718951,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003063,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.533156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.533156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 350,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.540617Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 3850,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.555076Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.545Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 10850,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.567058Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.558Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2150,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4071.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.569238Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 143530,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.577709Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.568Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246934,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140617,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.585394Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.585394Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246877,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140674,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.590389Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.590389Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7350,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 11200,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.606080Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.596Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 167860,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135932,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.610045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.610045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 369146,\n        \"price\": 3888,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.621000Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.621000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 158403,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.642046Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.642046Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1445867,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 152860,\n        \"price\": 3986.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.647368Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.647368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152796,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135996,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.657620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.657620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 608013,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.660364Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.660364Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 27,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.697266Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.697266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 28,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.697287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.697287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 220919,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.729129Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.729129Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 81730,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.768259Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24290,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.811916Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44760,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.817523Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.806Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227511,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.853475Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.853475Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 627306,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 228011,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.868179Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.868179Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 190223,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91291,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.870828Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.870828Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 970008,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.887527Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.887527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416934,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.900705Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.900705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339553,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1441307,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.913458Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.913458Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 626806,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 228511,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.915792Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.915792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 141910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.917231Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.904Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1040,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.918522Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.909Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 161910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.930301Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 340408,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446722,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.931567Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.931567Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27312,\n        \"price\": 4284,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.940972Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.940972Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.952074Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:39.942Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91191,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.955090Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.955090Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718887,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003127,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.970530Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.970530Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4140.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.021126Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 631730,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 307857,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.025757Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.025757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1001421,\n        \"price\": 4138,\n      },\n      {\n        \"amount\": 199168,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 24731,\n        \"price\": 4134.5,\n      },\n      {\n        \"amount\": 164483,\n        \"price\": 4124.5,\n      },\n      {\n        \"amount\": 139274,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 311785,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.028382Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.028382Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 195770,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.045390Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.036Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152744,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136048,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.051279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.051279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88451,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.054378Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.054378Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718864,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003150,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.061053Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.061053Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 311885,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446822,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.067357Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.067357Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246854,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140697,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.069041Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.069041Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 417234,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.119426Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.119426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246790,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140761,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.119434Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.119434Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 290,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 105730,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.134743Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.125Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 104500,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1520,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.139060Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.130Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 108600,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.153782Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.144Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1450,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.199064Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44810,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.205198Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 104500,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 5550,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.223773Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.210Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 146910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 16000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.286343Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.275Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 126910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 36000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.299447Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.288Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 106910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 59460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.330406Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86910,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 79460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.340617Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.328Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 47200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.358788Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75000,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.447412Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4074.25,\n      },\n      {\n        \"amount\": 2260,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.467088Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.456Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 100400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 9650,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.480307Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.469Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419360,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.501281Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.490Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9690,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.588025Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.578Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.595534Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.586Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 106910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.680368Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.670Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 33690,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.698877Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 121910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.698966Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 141910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.708260Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.691Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29590,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 41910,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.712815Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 59460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.723571Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 25490,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 46010,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.723578Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48520,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 228900,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.723584Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.710Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29430,\n        \"price\": 4098.75,\n      },\n      {\n        \"amount\": 37140,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.723606Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 161910,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.727298Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82451,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.840631Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.840631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 423234,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.843400Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.843400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 328006,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.846938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.846938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90009,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 329191,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.848671Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.848671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 191230,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.859123Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.849Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 41910,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 29590,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.864183Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.855Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718812,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003202,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.886018Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.886018Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224951,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.910683Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.910683Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152722,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136070,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.915165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.915165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246738,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140813,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.918856Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.918856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473756,\n        \"price\": 4147.5,\n      },\n      {\n        \"amount\": 455347,\n        \"price\": 4119.5,\n      },\n      {\n        \"amount\": 632020,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 54531,\n        \"price\": 3650.5,\n      },\n      {\n        \"amount\": 101713,\n        \"price\": 3602,\n      },\n      {\n        \"amount\": 53804,\n        \"price\": 3600.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.934858Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.934858Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 228199,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.942993Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.942993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.945061Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.945061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53060,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.946974Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1446022,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.965742Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.965742Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718790,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003224,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.972950Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.972950Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194573,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 131632,\n        \"price\": 4135.5,\n      },\n      {\n        \"amount\": 118822,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.980025Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.980025Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 37810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80500,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.980101Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:40.970Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 318508,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 162487,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.984376Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.984376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.986856Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.986856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 8177.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.013150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.013150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152671,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136121,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.013192Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.013192Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152648,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136144,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.016646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.016646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152595,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136197,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.016671Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.016671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29540,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.019437Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 25440,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 41910,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.019913Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.010Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44840,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.025005Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246716,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140835,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.025356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.025356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 29540,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.028444Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.017Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 99466,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 172769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.028651Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.028651Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718767,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003247,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.031468Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.031468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 211337,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 300286,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 608127,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 392205,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 951099,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 540260,\n        \"price\": 4039,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.035904Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.035904Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1479141,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 430055,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.038922Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.038922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 160769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.041232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.041232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718716,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003298,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.043157Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.043157Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1513176,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.044693Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.044693Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522729,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2585682,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 2010622,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 626420,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220607,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.058379Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.058379Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.058398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.058398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 228200,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.060147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.060147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 118240,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 56610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.066258Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.067406Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.058Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1513163,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.070109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.070109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 154030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.070921Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.078872Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.078872Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 594707,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.081921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.081921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1513508,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.083868Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.083868Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1510508,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.087089Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.087089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 905328,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 487911,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.089975Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.089975Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5540,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 100400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.092123Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128785,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 190723,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.094595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.094595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 80640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.114157Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.100Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246665,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140886,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.138201Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.138201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 124030,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 142000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.138665Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.126Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60640,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 56610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.138676Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 344062,\n        \"price\": 4061,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.138930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.138930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1440,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.139128Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.130Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718663,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003351,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.147240Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.147240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246642,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140909,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.148639Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.148639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 37810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 5540,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.156038Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127038,\n        \"price\": 4135.5,\n      },\n      {\n        \"amount\": 823313,\n        \"price\": 4135,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 349636,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.160320Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.160320Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 292999,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.165706Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.165706Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1945070,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.165747Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.165747Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1440,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.168373Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.159Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 423205,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 349665,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.173519Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.173519Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1822660,\n        \"price\": 4010,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.175726Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.175726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.178595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.178595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.178610Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.178610Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152557,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136235,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.182673Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.182673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1607847,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.183423Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.183423Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246589,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140962,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.189673Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.189673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94766,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 127641,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.203136Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.203136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1597847,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.207392Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.207392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.207404Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.207404Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 242751,\n        \"price\": 4069,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.215411Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.215411Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 622524,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 232096,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 86113,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 427101,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 156872,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 296895,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.218676Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.218676Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20440,\n        \"price\": 4287,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.238672Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.238672Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358665,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.246130Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.246130Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.411723Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.411723Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152534,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136258,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.430705Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.430705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 186180,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.500459Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.500459Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.508689Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.508689Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 358694,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.514912Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.514912Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 320642,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.518620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.518620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1597547,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.532101Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.532101Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718625,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003389,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.536418Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.536418Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 267089,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 411253,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 522623,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 1017627,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 631624,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158262,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.545283Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.545283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152511,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136281,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.562042Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.562042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246551,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141000,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.569973Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.569973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90655,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.578283Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.578283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1591547,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.578315Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.578315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152464,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136328,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.578321Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.578321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102932,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.586165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.586165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359013,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.586204Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.586204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718602,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003412,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.590433Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.590433Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367191,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.594523Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.594523Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141897,\n        \"price\": 4290,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.612121Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.612121Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718555,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003459,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.615426Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.615426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152142,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136650,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.627746Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.627746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 164487,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.631400Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.631400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152092,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136700,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.631424Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.631424Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246528,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141023,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.645400Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.645400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.663920Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.256Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 172000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.663966Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.259Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1530,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.663992Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.275Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4091.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.664010Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44800,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.664018Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 2230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.664473Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185200,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21700,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.664833Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.285Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 202540,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.665071Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47700,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 720,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.665323Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 161210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 144230,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.665346Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.666047Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 228200,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 45500,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.666590Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 171000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 61640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.667043Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.319Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 7200,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.667060Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 37840,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.667849Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136580,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 420060,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.679413Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.385Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 146210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 16000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.679530Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.394Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 126210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 36000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.680193Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.397Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718532,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003482,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.682060Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.682060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 106210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 59460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.684298Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.401Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52060,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 39040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.684351Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.411Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 37140,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 7700,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.684954Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 79460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.685051Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.416Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 47200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.686114Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.462Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5700,\n        \"price\": 4101.25,\n      },\n      {\n        \"amount\": 30130,\n        \"price\": 4098.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.694269Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.581Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 41910,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.694735Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46010,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.695201Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.605Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 172540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 215200,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.696189Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.624Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 142540,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.696552Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.637Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 85400,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.697154Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 112540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 245200,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.697194Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2170,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.697697Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 74460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.698157Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 13,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1e5d45d9-ab86-ae19-03f1-eee2ec471a02\",\n    \"localTimestamp\": 2019-04-01T00:00:41.699873Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.050Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 94460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.703149Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.691Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 74460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 106210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.703504Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.693Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45490,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.704223Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.705688Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718210,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003804,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.713722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.713722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 132921,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1009542,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 171204,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 191919,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 277849,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 1457331,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 209460,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 557282,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 611388,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 435020,\n        \"price\": 4066,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.718009Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.718009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 126210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.761743Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.752Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 227117,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.784363Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.784363Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44790,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 137280,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.797356Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.787Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4034.25,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 4035,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.812478Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 660552,\n        \"price\": 3910,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.817429Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.817429Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 500,\n        \"price\": 4043,\n      },\n      {\n        \"amount\": 29000,\n        \"price\": 4042.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.828419Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.818Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 142540,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.832911Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.822Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 634853,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.844324Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.844324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.851162Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.851162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1592347,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.854359Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.854359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.858746Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.858746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153385,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.883419Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.883419Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 596739,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 511620,\n        \"price\": 4038,\n      },\n      {\n        \"amount\": 349735,\n        \"price\": 3998.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.901698Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.901698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1589847,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.910727Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.910727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718160,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003854,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.918720Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.918720Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67509,\n        \"price\": 4293,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.944628Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.944628Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4000,\n        \"price\": 4042.5,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 4041.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.951491Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.942Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473836,\n        \"price\": 4147.5,\n      },\n      {\n        \"amount\": 455387,\n        \"price\": 4119.5,\n      },\n      {\n        \"amount\": 632040,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 55411,\n        \"price\": 3650.5,\n      },\n      {\n        \"amount\": 101753,\n        \"price\": 3602,\n      },\n      {\n        \"amount\": 53884,\n        \"price\": 3600.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.962221Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.962221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152042,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136750,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.962245Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.962245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152014,\n        \"price\": 4171,\n      },\n      {\n        \"amount\": 371899,\n        \"price\": 4141,\n      },\n      {\n        \"amount\": 214363,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 244993,\n        \"price\": 4111,\n      },\n      {\n        \"amount\": 1016563,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 665821,\n        \"price\": 3965,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.982008Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.982008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 427390,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.003036Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:41.993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 904028,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 187480,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.027466Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.027466Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246206,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141345,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.043863Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.043863Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2140,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.065716Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.055Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2010622,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.068833Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.068833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 326973,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.070531Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.070531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.070652Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 137571,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 597053,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 182812,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 296080,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.073302Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.073302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246156,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141395,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.086991Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.086991Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 74460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.087766Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.075Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718110,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003904,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.090124Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.090124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 41910,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 89500,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.090190Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132785,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 183480,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.094333Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.094333Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 141210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.117694Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.105Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 161210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.121777Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.110Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.160105Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 154030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.177351Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41640,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 96610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.209822Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 85400,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.247963Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.239Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.299614Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 37810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 19100,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.344686Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"58688777-3cbe-9d13-68f7-d29ebff4324f\",\n    \"localTimestamp\": 2019-04-01T00:00:42.353232Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.891Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 28,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.402951Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.402951Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 29,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.406188Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.406188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1589837,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393999,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.407155Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.407155Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3297,\n        \"price\": 4291,\n      },\n      {\n        \"amount\": 141839,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 544296,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 100339,\n        \"price\": 4239,\n      },\n      {\n        \"amount\": 1385698,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 323295,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 465520,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 186496,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1300796,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 601186,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 406989,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 262007,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 969921,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 2010709,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 307770,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 471556,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 232024,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 183552,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 90583,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 88838,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 367249,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 487983,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 318436,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 204104,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 211250,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 300373,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 596966,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 550008,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 269438,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 540405,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 141250,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 292059,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 86402,\n        \"price\": 4013.5,\n      },\n      {\n        \"amount\": 280235,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 34291,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 13644,\n        \"price\": 3938.5,\n      },\n      {\n        \"amount\": 712556,\n        \"price\": 3889,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.413359Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.413359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2170,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.420730Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.409Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44800,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.425403Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 146210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 54460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.430636Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.418Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 126210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 74460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.433007Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.421Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 903983,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.472195Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.472195Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 391692,\n        \"price\": 3939,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.479347Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.479347Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253024,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 970114,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 904176,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 90969,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220919,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.496304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.496304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.508811Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367264,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.512619Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.512619Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.559432Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.549Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90030,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.563200Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44180,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.566121Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.556Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 89500,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.581146Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 120030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.601599Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40680,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 8510,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.606774Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.597Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.617571Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.604Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 44040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.714282Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4100,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 36700,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.722615Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4200,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.723646Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 215200,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 79990,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.725959Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 74500,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 52810,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.727203Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 112540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 62290,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.733815Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.720Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59500,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.750481Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.738Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44500,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 51700,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.750523Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.740Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 82540,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.754098Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.742Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185200,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 109990,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.765850Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 141210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.767732Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 162810,\n        \"price\": 4091.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.769018Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 161210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.772681Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.762Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246109,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141297,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.784814Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.784814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.797692Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.787Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.809684Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.800Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202042,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 404633,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 99619,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 2014909,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 908376,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 136985,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 92838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38291,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156042,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 141168,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 247832,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.813644Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.813644Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2190,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.855557Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44780,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.862432Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246086,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141320,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.870681Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.870681Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246036,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141370,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.886128Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.886128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 56160,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.894351Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.885Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66700,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.899482Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.889Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 139990,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.902236Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.892Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 471546,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 622534,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.902692Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.902692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4041.5,\n      },\n      {\n        \"amount\": 27000,\n        \"price\": 4039.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.998346Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:42.988Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.032706Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.032706Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.176723Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 89030,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 112000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.181918Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24290,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 24900,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.181957Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.171Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.189280Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21400,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 27790,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.223364Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 190000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 53560,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.227027Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2140,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.279028Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.269Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44850,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.286284Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 154030,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 142000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.338974Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 109990,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 92290,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.355030Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 124030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.367182Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.354Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 79990,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.367224Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156473,\n        \"price\": 4136.5,\n      },\n      {\n        \"amount\": 818719,\n        \"price\": 4135,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.392232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.392232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 156016,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136776,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.392263Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.392263Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 970069,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.395204Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.395204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432101,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.395221Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.395221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1589037,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.395251Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.395251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1663119,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 412165,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 253130,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 803311,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 622640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158451,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.395310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.395310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718084,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003930,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.396792Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.396792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.412175Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.401Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f7d561eb-419f-5d6b-14c5-ecddfd395c02\",\n    \"localTimestamp\": 2019-04-01T00:00:43.463202Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.769Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1589035,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.463229Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.463229Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.519566Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.487Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 146210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 34460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.519615Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 126210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 54460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.519622Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 122290,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.528247Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 172000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.532663Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.519Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 753424,\n        \"price\": 3910,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.575824Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.575824Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 464996,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 294373,\n        \"price\": 4014,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.624993Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.624993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2160,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.691441Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.698503Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 141210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.788526Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.777Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 161210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.793166Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 61640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.796441Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94030,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 202000,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.799954Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.790Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.802181Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231774,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 137235,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.804186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.804186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3540,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.805514Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49080,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.809755Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.797Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 92290,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 109990,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.811610Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.802Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62290,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.813059Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 211203,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.837616Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.837616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51557,\n        \"price\": 3966.5,\n      },\n      {\n        \"amount\": 155678,\n        \"price\": 3965.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.844251Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.844251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 930,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 67930,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.887040Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.875Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 203230,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.887697Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.878Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246010,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141396,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.976859Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.976859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 142280,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.980175Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:43.969Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1285146,\n        \"price\": 4060,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.035304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.035304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 139990,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.045770Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.034Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1589535,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.059325Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.059325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66700,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 2160,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.074217Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.064Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202000,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 53560,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.077522Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 129711,\n        \"price\": 4067.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.092009Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.092009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2150,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.137800Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44790,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.144754Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1590035,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.149115Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.149115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 130921,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.162407Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.162407Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1040,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 7100,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.173032Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 920,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 67930,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.237831Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52330,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 203230,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.240675Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.230Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60640,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 57160,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.249395Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577640,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 182235,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 77838,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 154641,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.284081Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.284081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635853,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 306770,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.284122Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.284122Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.284143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.284143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 976981,\n        \"price\": 4122.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.284145Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.284145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411359,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 935213,\n        \"price\": 4138,\n      },\n      {\n        \"amount\": 151877,\n        \"price\": 4136.5,\n      },\n      {\n        \"amount\": 131632,\n        \"price\": 4135.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.284150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.284150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 155548,\n        \"price\": 4169,\n      },\n      {\n        \"amount\": 602249,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 694322,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 475733,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 804374,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 671991,\n        \"price\": 3965,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301092Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233174,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301097Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301097Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 643353,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 299270,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301106Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 154656,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301108Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301108Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76838,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 368279,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301111Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 298270,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 909376,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301136Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1016518,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301138Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301138Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419080,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.318415Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.318415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2,\n    \"exchange\": \"bitmex\",\n    \"id\": \"85a64640-106a-7617-bcb2-a823e15f242d\",\n    \"localTimestamp\": 2019-04-01T00:00:44.318480Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.418Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1590033,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.318483Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.318483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.318490Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.318490Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 199065,\n        \"price\": 4064,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.318522Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.318522Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"868c9682-f699-963b-7887-301ac94f4ddf\",\n    \"localTimestamp\": 2019-04-01T00:00:44.318527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.513Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 173230,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.330167Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.320Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1590032,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341408Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341408Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2275249,\n        \"price\": 4020,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341440Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341440Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 6439,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e405b510-f247-aa28-3ea9-275722ebefc5\",\n    \"localTimestamp\": 2019-04-01T00:00:44.341446Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.549Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 7561,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1bf530d0-043b-57d3-92cc-1f14d5e9ef27\",\n    \"localTimestamp\": 2019-04-01T00:00:44.341446Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.549Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1576032,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341449Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341449Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 211201,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 227449,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341451Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 104720,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341454Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341454Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 104680,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341458Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341458Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 333021,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 564322,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 248052,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 230856,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341475Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341475Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 345127,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 668473,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 156473,\n        \"price\": 4136.5,\n      },\n      {\n        \"amount\": 127038,\n        \"price\": 4135.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341478Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341478Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 392205,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341480Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 523138,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341482Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341482Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1576832,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341493Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341493Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155865,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136927,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341498Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341498Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341502Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341502Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 139656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 171901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341507Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 9,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0ab9d078-79c8-be8f-a2ee-1419af154ada\",\n    \"localTimestamp\": 2019-04-01T00:00:44.341510Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.669Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1576823,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341512Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341512Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2008909,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341531Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1577623,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341533Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 424080,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341535Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 7500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f12b71b7-d4d1-0b12-5196-fefdf1585b17\",\n    \"localTimestamp\": 2019-04-01T00:00:44.341538Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.718Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341540Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 557282,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 436520,\n        \"price\": 4038,\n      },\n      {\n        \"amount\": 238733,\n        \"price\": 3998.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341545Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341545Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 352813,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341547Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341547Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 143230,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 124030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.343579Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.333Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 56610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 138240,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.347853Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40640,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 76610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.356409Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.347Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137235,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 135969,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 335657,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155843,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136949,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155808,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136984,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360188Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 408101,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 102038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360255Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718049,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003965,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360258Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360258Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 904376,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 405601,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360260Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426964,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360262Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90969,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 147038,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360265Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 142235,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 206042,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 408633,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 2004709,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 900176,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 142035,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38091,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 155608,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 140968,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 247632,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360285Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360285Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 324462,\n        \"price\": 3979,\n      },\n      {\n        \"amount\": 236643,\n        \"price\": 3978,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360290Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360290Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155551,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 137041,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360295Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717992,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004022,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 204904,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360303Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360303Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770093,\n        \"price\": 4300,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360322Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360322Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1999709,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 572640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 389057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 313436,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360325Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253085,\n        \"price\": 4104,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360332Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360332Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 183302,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91219,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360335Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 373269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360342Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360342Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 317970,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 1096689,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360352Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2004709,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 577640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360388Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360388Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 404189,\n        \"price\": 4103,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360394Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360394Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319270,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360399Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360399Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185919,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360401Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360401Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360403Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360403Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91158,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 320718,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360406Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360406Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 113230,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 154030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.361077Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141535,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 183802,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382076Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382076Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 602249,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 141838,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 151877,\n        \"price\": 4136.5,\n      },\n      {\n        \"amount\": 199168,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 216542,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 372869,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 157472,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 471541,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 577645,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382167Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 500,\n        \"price\": 6133,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382177Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382177Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245953,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141453,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94358,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382196Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717841,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004173,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522492,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2585551,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 2004578,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 577383,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220707,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382210Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382210Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 191919,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382214Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1091689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 466965,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382219Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1570133,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382221Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717819,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004195,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382226Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155516,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 137076,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382229Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382229Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522355,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2585414,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 2004441,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 577109,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220485,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382234Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717784,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004230,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.385717Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.385717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 392158,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.387938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.387938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245931,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141475,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.394231Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.394231Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245896,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141510,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.403664Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.403664Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1510133,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.413552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.413552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 227949,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 219985,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.423812Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.423812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94347,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.425829Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.425829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155495,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 137097,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.427680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.427680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245745,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141661,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.430511Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.430511Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 482035,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.445848Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.445848Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 481990,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.448668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.448668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1510134,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 951098,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.455837Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.455837Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155455,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 137137,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.456254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.456254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1513134,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.478065Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.478065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185919,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.480510Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.480510Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 89,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2eeaef4d-3ec3-efb6-b137-fda3f002f6f9\",\n    \"localTimestamp\": 2019-04-01T00:00:44.498950Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.468Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1513045,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.498986Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.498986Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.498990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.498990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245710,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141696,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.498993Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.498993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.513038Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2080,\n        \"price\": 4073.75,\n      },\n      {\n        \"amount\": 2260,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.519106Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 543683,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 169125,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.520765Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.520765Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 543696,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.532577Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.532577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.542167Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44760,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.555857Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.545Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 216442,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 482090,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.556480Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.556480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717763,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004251,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.561448Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.561448Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 543708,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.566604Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.566604Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484446,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.588053Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.588053Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.594472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.594472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66100,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.619428Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.610Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522143,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2585202,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 2004229,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 576685,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 219645,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.630345Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.630345Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 287442,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.636730Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.636730Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717723,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004291,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.638026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.638026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47480,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.649855Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13440,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.651292Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.642Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1503045,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.656295Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.656295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411359,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 75622,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 246609,\n        \"price\": 4137,\n      },\n      {\n        \"amount\": 194573,\n        \"price\": 4136,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.657592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.657592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 543833,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.659105Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.659105Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 87430,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.662309Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.653Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29300,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.664962Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138140,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.679318Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1018204,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.686316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.686316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 29,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.691435Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.691435Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.691461Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.691461Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 459978,\n        \"price\": 4117.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.691472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.691472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245689,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141717,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.694147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.694147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.694632Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1008204,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.704005Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.704005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 514447,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.706922Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.706922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131140,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 17500,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.707797Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4071.75,\n      },\n      {\n        \"amount\": 77150,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.707838Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 353179,\n        \"price\": 4107,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.710954Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.710954Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 998204,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.712321Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.712321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 700,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 12030,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.720465Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.710Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 56210,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4112.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.722420Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 988204,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.729844Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.729844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4097.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.738753Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.728Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29010,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.741071Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10500,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.744148Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.734Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 35540,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.749262Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.739Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 229278,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 145431,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 368973,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.760421Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.760421Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9000,\n        \"price\": 4099.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.761582Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.752Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 171210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.780152Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.770Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42480,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.785476Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.776Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 156210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 42200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.793152Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.783Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 136210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 20700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.799150Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 466541,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 389547,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 314270,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.802356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.802356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 146210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.803862Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 175200,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.805527Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 40700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.812216Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2200,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.812264Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.802Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 150431,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 1101689,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.813336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.813336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 57200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.815833Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.818553Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.818553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 60700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.818642Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.808Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 368673,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.821196Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.821196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 121210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.825418Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.815Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 389247,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.831092Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.831092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10700,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.835405Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.817Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 101210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 77200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.835460Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.824Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51170,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.837040Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 975939,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.840845Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.840845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155398,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 137194,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.859057Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.859057Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1040,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 6890,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.865416Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 142456,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.868728Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.868728Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 154030,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 143230,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.881145Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.885575Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 368573,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.888453Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.888453Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 362573,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.888476Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.888476Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.895990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.895990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.899503Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.899503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 159030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.907546Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.897Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 229528,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 150181,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.908305Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.908305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 517488,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 970524,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.916555Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.916555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.931544Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.914Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.933997Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.933997Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522618,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 971664,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.935522Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.935522Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245649,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141757,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.943207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.943207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 980,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.945127Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.936Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44850,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.951991Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.942Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 268803,\n        \"price\": 4019,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.962389Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.962389Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4102.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.976399Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582618,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.980307Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.980307Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1254077,\n        \"price\": 4018.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.989983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.989983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4100.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.996277Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:44.987Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1149,\n        \"price\": 4416,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.003640Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.003640Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1244943,\n        \"price\": 4018.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.008733Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.008733Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 971675,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.019509Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.019509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 227132,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.019534Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.019534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 309736,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.023810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.023810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.023833Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.023833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1009495,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.027282Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.027282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 45850,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.037668Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.022Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 492518,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.043308Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.043308Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 173230,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.081005Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.055Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5040,\n        \"price\": 4101.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.086460Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.075Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58800,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.087773Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60,\n        \"price\": 4077.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.089578Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.079Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 149990,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.149138Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.139Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 49460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.152523Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 81210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 159990,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.153978Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.144Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 71210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 169990,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.157437Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 57200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 91210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.170626Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.158Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 42200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 106210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.171133Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.161Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 22700,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.172263Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53930,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.177315Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 126210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.178042Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.169Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.180147Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 174830,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.184820Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.172Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23000,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.186092Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3800,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.190484Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.179Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137740,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.261171Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.249Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 57060,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.296164Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.286Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 431930,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.348134Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.338Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66700,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 2210,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.357250Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2140,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.362658Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.354Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 173600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 191230,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.367014Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.357Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.369990Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.360Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 132600,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.414159Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.404Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38930,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 72060,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.438489Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23930,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.442307Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.431Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 143600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.443667Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.433Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 116640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 65640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.457680Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.442Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 99030,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 146640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.474292Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.464Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 113600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 176640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.477629Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8930,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 87060,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.487092Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 56610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 28930,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.487171Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.476Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 176230,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 234100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.488282Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.479Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 86610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.490856Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.481Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4075.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.501053Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.491Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4074.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.507597Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.493Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30900,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.507949Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.495Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 36000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.544229Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 56000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.552429Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 106210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.552493Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5030,\n        \"price\": 4097.25,\n      },\n      {\n        \"amount\": 7700,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.564843Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.550Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4112.5,\n      },\n      {\n        \"amount\": 131210,\n        \"price\": 4112,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.564900Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 36000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 47200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.588234Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102060,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.605640Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.596Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 59460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.616786Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 206640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.619267Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2080,\n        \"price\": 4073.75,\n      },\n      {\n        \"amount\": 1220,\n        \"price\": 4074.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.643190Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1640,\n        \"price\": 4097.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.705078Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2180,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.777756Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.768Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45790,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.783336Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 37140,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.793011Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 11930,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.796007Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.785Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67900,\n        \"price\": 4100.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.799807Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 35030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.888328Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.879Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 150610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.889453Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.880Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.899488Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.890Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 57450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 37120,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.977243Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.967Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 97960,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 238200,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.978863Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.969Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1700,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.989433Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 176640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 113600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.994273Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.985Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82960,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.998622Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.989Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 146640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.001611Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.991Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1660,\n        \"price\": 4077.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.002706Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.006025Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67960,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 191230,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.008073Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:45.998Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52960,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 52120,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.015788Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.001Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 37450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 170610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.015840Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 116640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 65030,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.015851Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 32120,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 57450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.017560Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 223200,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 206230,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.019801Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 140610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 143600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.033660Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.024Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44170,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.088361Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.079Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4072.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.109059Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 221230,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.147173Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 173600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.160868Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.179126Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 15700,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.192226Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.182Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51150,\n        \"price\": 4075.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.203160Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 101210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.204876Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.190Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8600,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.213252Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2820,\n        \"price\": 4074.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.215121Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 15720,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.227486Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.218Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 41000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.229513Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 71210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 37700,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.261724Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 61000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.261826Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.248Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75550,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.347496Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.338Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 950,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 45730,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.438739Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.423Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4071.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.438840Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.425Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 220000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 54190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.439022Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4070.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.439274Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.427Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4073.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.439986Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.429Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 920,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.463044Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.453Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45760,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.468857Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.459Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 35030,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 203600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.503466Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.490Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 205000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 69190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.521388Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 173600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 146640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.522899Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.511Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 407930,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 21730,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.573433Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 159990,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 47700,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.579903Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 86210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.581781Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 41000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 106210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.584378Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.575Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 149990,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 57700,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.621149Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.611Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 19460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.623373Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.614Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.625519Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 139990,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 67700,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.633955Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.625Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 106210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.636504Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.627Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 126210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.640243Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 42700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 10720,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.643423Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.633Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 54460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.644277Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.635Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:46.647790Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4074.25,\n      },\n      {\n        \"amount\": 1220,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.136532Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4072.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.150630Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.747Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 950,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.165760Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.891Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.165805Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.897Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2100,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.166111Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.920Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4071.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.167188Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.970Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 74460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.168961Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:46.998Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 109600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.169683Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.019Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.170084Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.020Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 89190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.170106Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.030Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 74190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 60770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.170437Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.032Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 116640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 62120,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.170690Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.035Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47120,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 53040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.172464Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 120610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 225000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.172496Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.041Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 79600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 131450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.172526Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 20720,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.172636Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.054Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 141210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.172650Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.057Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 161210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.173148Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.059Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80970,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.173186Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3900,\n        \"price\": 4070,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.173202Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.064Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 77120,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.173732Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 210000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 75770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.173790Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 230000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.173797Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36730,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.178149Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.075Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.178352Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.178951Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 19600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.179781Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.228396Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 235000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.228552Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.218Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 107120,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.235965Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 920,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.236617Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90800,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.242151Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10720,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 42700,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.309332Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.297Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 146210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 42200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.310660Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.300Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 126210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 62200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.313586Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.303Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 21400,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.337172Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4180.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.339586Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.328Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4082.75,\n      },\n      {\n        \"amount\": 1380,\n        \"price\": 4081.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.346076Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3700,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.362817Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 106210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 82200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.366003Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.354Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 100,\n        \"price\": 4051,\n      },\n      {\n        \"amount\": 51130,\n        \"price\": 4049.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.384505Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 102200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.392136Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.383Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 85730,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.423000Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 87530,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.475875Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.464Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 4038,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.560750Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.551Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.608724Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.598Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 950,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.623345Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.614Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.629874Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 239100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.675080Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.665Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 259100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.685235Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.676Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77120,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 245000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.688121Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.678Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 105770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.702132Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.691Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 225000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 74190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.704319Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.693Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 107120,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.707265Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 23440,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.733229Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.723Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 16000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.735524Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 67200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 36000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.737967Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 39600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.752141Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.742Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 205000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.753622Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.745Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 22700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 10700,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.756980Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 56000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.758035Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.748Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1710,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 39740,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.759769Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.750Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 59600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.777069Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.762Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 700,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 10700,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.779680Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.770Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 56210,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4111.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.781195Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 20700,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.792298Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 76000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.793512Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 79600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.796685Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.787Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 20500,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.803396Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1400,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 47200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.806077Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 136640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.809089Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42140,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.894702Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.884Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4038,\n      },\n      {\n        \"amount\": 25450,\n        \"price\": 4039,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.914857Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.902Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21730,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.919210Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.907Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.919240Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.909Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 171120,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.922768Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:47.942312Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:47.931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 920,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.020480Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.010Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10700,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 22700,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.028563Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.018Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 56000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 39460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.033159Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.021Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 54190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.034254Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.024Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 68100,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.048245Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 32700,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.059596Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.048Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 74190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.060970Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.051Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 42700,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.097578Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.087Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 36000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 59460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.100309Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 19600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 259100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.103038Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10500,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 10720,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.106695Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.097Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 279100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.110479Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4100,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.130641Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 107120,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.132605Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.117Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 116640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.132655Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24360,\n        \"price\": 4086.25,\n      },\n      {\n        \"amount\": 92150,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.190868Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 85730,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.193349Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.184Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 259100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 62140,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.232767Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.223Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90770,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 152740,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.235276Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75770,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 167740,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.251632Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 279100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.264738Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77120,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 235000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.267242Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.257Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.271543Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 905176,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.283003Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.283003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47120,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.283394Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 254702,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 395305,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.290263Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.290263Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 182812,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 296080,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.290278Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.290278Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 242013,\n        \"price\": 4137,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.291362Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.291362Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 17120,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 265000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.293184Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 259100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.294262Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.285Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45770,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 182740,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.295990Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.286Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 82140,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.299355Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21730,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.315855Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.306Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81120,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.317656Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.308Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.320483Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.311Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 930,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.333960Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45790,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.342276Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 68100,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.360968Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.350Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 96210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.403348Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.389Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 22700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 106210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.403441Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.391Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 182540,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.403847Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 62200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.403924Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.393Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72150,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 20700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.405731Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 39600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.409320Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.399Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 101210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.412034Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.403Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 51000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.414269Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.404Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 31000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 40700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.415497Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.406Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52150,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 82200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.417597Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.408Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 14190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 59600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.419402Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 79600,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.421994Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.411Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 45930,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 17060,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.445679Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.435Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44620,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 60720,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.447179Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 62150,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.448956Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.439Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47150,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 97200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.451303Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.442Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 77200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 60700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.460543Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.445Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 199100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 72640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.461144Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.447Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197540,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.467533Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.455Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102140,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.467612Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.457Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 295000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.469535Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.459Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 45730,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.595670Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.583Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 431930,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.613749Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.603Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 796374,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.615394Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.615394Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2573202,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.619374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.619374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 14460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 118900,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.619503Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.610Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 584618,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.628342Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.628342Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1769541,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.631292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.631292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717666,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004348,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.646499Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.646499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 913092,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 212849,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 344042,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 160099,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 629268,\n        \"price\": 4063,\n      },\n      {\n        \"amount\": 548006,\n        \"price\": 4048,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.649496Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.649496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.661060Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.661060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245592,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141814,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.673561Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.673561Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 191919,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.675786Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.675786Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1091689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.675802Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.675802Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253216,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 970200,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 913223,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 94609,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 219857,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.682992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.682992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1031416,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.683014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.683014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 129700,\n        \"price\": 4067.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.684483Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.684483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 90000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.685356Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.674Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253353,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 970337,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 913360,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 94883,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220079,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.688128Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.688128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586118,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.693016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.693016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586129,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.693042Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.693042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 345127,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 1001421,\n        \"price\": 4138,\n      },\n      {\n        \"amount\": 287442,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 362573,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.695170Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.695170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 521966,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2573025,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 2004052,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 576331,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 219793,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.706668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.706668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1031208,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.739970Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.739970Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169136,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.766541Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.766541Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1031048,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.766576Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.766576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169247,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 342073,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 1091578,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.766596Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.766596Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 212887,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 333097,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 543947,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 392310,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 951288,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 168429,\n        \"price\": 4041.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.766600Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.766600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253563,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 970547,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 913570,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 95303,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220133,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.768838Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.768838Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 979640,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 273920,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.774324Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.774324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.779353Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.779353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1030248,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.789028Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.789028Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586155,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.799936Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.799936Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417375,\n        \"price\": 4018,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.807828Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.807828Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 108900,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 10720,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.824979Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 98900,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 27060,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.826829Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 900,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.828653Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21730,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 92100,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.830429Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6610,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 58870,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.832872Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.822Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19980,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.833458Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.824Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 113900,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.835062Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.825Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 71890,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.837162Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45800,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.838451Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 521778,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2572837,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 2003864,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 575955,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 219831,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.841864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.841864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1030243,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383252,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.870272Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.870272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1030233,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.870324Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.870324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 168847,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 296480,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.876931Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.876931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 3196.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.878209Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.878209Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097189,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.878215Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.878215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 57200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 36000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.880026Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.830Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 408241,\n        \"price\": 4018,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.880463Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.880463Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 56000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.880761Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 92640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.880814Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.835Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 112640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.880864Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.837Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 103900,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 20720,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.880959Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 42200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 118900,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.881025Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 23440,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.881036Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 76000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.881071Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.858Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 19460,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.881086Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.860Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 19600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 132640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.881119Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.862Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 47200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.881126Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 642353,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 299270,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.888629Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.888629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 100610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.889628Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.878Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 83928,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.894190Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.894190Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 125387,\n        \"price\": 4057,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.900797Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.900797Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 286045,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.903292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.903292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10700,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 29060,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.908609Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.899Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 593912,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.911332Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.911332Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 39800,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.920247Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.910Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 23440,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.923792Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.914Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2250,\n        \"price\": 4446,\n      },\n      {\n        \"amount\": 1283549,\n        \"price\": 4250,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.929123Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.929123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 140634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1006233,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.948287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.948287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 229527,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 316849,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.962709Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.962709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52540,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 183180,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.966853Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.953Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7140,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 53360,\n        \"price\": 4075.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.984320Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:48.973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1002785,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.995001Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.995001Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 309236,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 205404,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.995018Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.995018Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588155,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.995027Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.995027Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 524322,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 123928,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.995031Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.995031Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588955,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.005656Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.005656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34630,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.021117Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60970,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.026556Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.013Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589955,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.027456Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027456Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 237148,\n        \"price\": 4051,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.027465Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027465Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 104641,\n        \"price\": 3926.5,\n      },\n      {\n        \"amount\": 1252898,\n        \"price\": 3925,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.027468Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.027470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.027472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 912570,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 467541,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.027477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 968347,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 591712,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 224932,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 307036,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 217631,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 522122,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.060445Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.060445Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 966147,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 589512,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222732,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 304836,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 215431,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 519922,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.060468Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.060468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.060475Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.060475Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.060477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.060477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96,\n        \"price\": 31,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.060480Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.060480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1002744,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.084548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.084548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8177.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.084580Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.084580Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 222743,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.084584Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.084584Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100,\n        \"price\": 7359.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.084597Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.084597Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1002533,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.125559Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.125559Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 92640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 34190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.148126Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 54190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.172730Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 219100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.179286Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.169Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3448,\n    \"exchange\": \"bitmex\",\n    \"id\": \"44a7d1e2-7bf2-4019-6096-33db998029a6\",\n    \"localTimestamp\": 2019-04-01T00:00:49.180538Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.960Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82140,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.183470Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52640,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 239100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.185387Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.174Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 930,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.216605Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.206Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 41,\n    \"exchange\": \"bitmex\",\n    \"id\": \"32dd2c5a-68ed-3a23-40dd-a84534e5c725\",\n    \"localTimestamp\": 2019-04-01T00:00:49.223353Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.045Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45790,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.224128Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 88000,\n        \"price\": 4090.25,\n      },\n      {\n        \"amount\": 187270,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.240817Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.231Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 17630,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 70790,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.243011Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.233Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 79890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.244730Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 211,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e964b76b-ed53-3324-c723-aec53dafc908\",\n    \"localTimestamp\": 2019-04-01T00:00:49.246435Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.077Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586712,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 2000134,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 226727,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 302036,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 520338,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.311337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.311337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 583912,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1997334,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 224007,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 301996,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 517538,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.319447Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.319447Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 218307,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.319481Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.319481Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6723,\n        \"price\": 4317,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4278.5,\n      },\n      {\n        \"amount\": 24122,\n        \"price\": 4246.5,\n      },\n      {\n        \"amount\": 39186,\n        \"price\": 4219.5,\n      },\n      {\n        \"amount\": 146032,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 290742,\n        \"price\": 4179,\n      },\n      {\n        \"amount\": 92298,\n        \"price\": 4163.5,\n      },\n      {\n        \"amount\": 104288,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 344073,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 266336,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 601826,\n        \"price\": 4123.5,\n      },\n      {\n        \"amount\": 1093269,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 391902,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 503785,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 253423,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 979540,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222628,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 205249,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 517327,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 549719,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 234693,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 434467,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 125096,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 236079,\n        \"price\": 4051,\n      },\n      {\n        \"amount\": 166938,\n        \"price\": 4041.5,\n      },\n      {\n        \"amount\": 2062665,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 404587,\n        \"price\": 4016,\n      },\n      {\n        \"amount\": 1310165,\n        \"price\": 3999,\n      },\n      {\n        \"amount\": 318778,\n        \"price\": 3979,\n      },\n      {\n        \"amount\": 1346763,\n        \"price\": 3955,\n      },\n      {\n        \"amount\": 223776,\n        \"price\": 3926,\n      },\n      {\n        \"amount\": 5611,\n        \"price\": 3891.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.342467Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.342467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 259100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.343568Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.333Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 49890,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.344998Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 255000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 82140,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.346417Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4350,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 45290,\n        \"price\": 4098.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.348207Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.338Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51600,\n        \"price\": 4075.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.349988Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 192540,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 436930,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.351497Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.342Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 396821,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.364532Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.364532Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 69,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1c6cc00b-1aa4-8c31-d181-0d1962e448b2\",\n    \"localTimestamp\": 2019-04-01T00:00:49.385316Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.358Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1002464,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.385352Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.385352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 381218,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398864,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.394014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.394014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39800,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.413142Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.404Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90761,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.414701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.414701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 365332,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.426222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.426222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50090,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.428658Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.419Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 26,\n    \"exchange\": \"bitmex\",\n    \"id\": \"43ddd1bf-f091-385e-c577-2c91a5733280\",\n    \"localTimestamp\": 2019-04-01T00:00:49.445300Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.418Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1002438,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.445349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.445349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1159498,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 521565,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2572624,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1997121,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 575742,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 463625,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.449663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.449663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 256028,\n        \"price\": 4114.5,\n      },\n      {\n        \"amount\": 305986,\n        \"price\": 4113,\n      },\n      {\n        \"amount\": 645151,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 164427,\n        \"price\": 4106.5,\n      },\n      {\n        \"amount\": 261802,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 274126,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 642153,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 467742,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 164287,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 213088,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 168642,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 392516,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 191709,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 278060,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 434252,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 150645,\n        \"price\": 4064.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.452127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.452127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.454483Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.454483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 318951,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.456321Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.456321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1002364,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.458255Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.458255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.463656Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.463656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1957121,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 479922,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.477293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.477293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2532624,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1917121,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 439922,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 142812,\n        \"price\": 4077.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.482341Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.482341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 543912,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 399922,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.484757Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.484757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 14200,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.489113Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.452Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 327284,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 614935,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.489723Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.489723Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 103677,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.505511Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.505511Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1917021,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.511625Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.511625Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 644994,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 261645,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 796217,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 641839,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.515835Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.515835Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90595,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 365498,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 492352,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 164453,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.522293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.522293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 217807,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 150681,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 163953,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 213588,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.526124Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.526124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1096689,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 228449,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.526150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.526150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 217557,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 150931,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 492102,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 1096939,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.529667Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.529667Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 907570,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158953,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 200249,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 218449,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.534331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.534331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000320,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.536820Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.536820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.541824Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.541824Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 461742,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 540947,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.549839Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.549839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 285545,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91095,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 301496,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 200749,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.556495Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.556495Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 179090,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 54110,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.558967Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.549Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 217057,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 151431,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158453,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 201249,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.559068Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.559068Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90970,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 103802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 398739,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 222753,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.563310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.563310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90804,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 365664,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222587,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 158619,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.563334Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.563334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90554,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 365914,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222337,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 158869,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.565504Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.565504Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53970,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 59640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.565571Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.556Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4103.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.567305Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.557Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 285295,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 366164,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222087,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 301746,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.568316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.568316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.571718Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.571718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 352579,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 252873,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 261145,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 795767,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 1916621,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 575392,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 213288,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 540597,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 614535,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 159649,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 1456831,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 463075,\n        \"price\": 4067,\n      },\n      {\n        \"amount\": 198465,\n        \"price\": 4064,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.584017Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.584017Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4105.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.585006Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2544624,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.590340Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.590340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 923197,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 586852,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.594198Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.594198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4107.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.594706Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.585Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 803767,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.597797Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.597797Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5140,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.607149Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.598Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202242,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 404833,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 99819,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 103992,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 323495,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 147431,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 590770,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1000620,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 34091,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 151398,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 137168,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 243832,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.616527Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.616527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 990620,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.629295Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.629295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 900,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.629386Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50080,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.636044Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.626Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"efa0c4da-e8e0-d10c-b3e4-214db5a7c439\",\n    \"localTimestamp\": 2019-04-01T00:00:49.647346Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.624Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589770,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.647456Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.647456Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 529770,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.656267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.656267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527770,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.672861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.672861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72930,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 303190,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.672928Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.662Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 284795,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91054,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.690964Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.690964Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.698067Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.698067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 3196.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.704117Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.704117Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51350,\n        \"price\": 4075.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.704266Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.694Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367561,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.712786Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.712786Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 990640,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.718316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.718316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 348042,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 323284,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.724548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.724548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 232306,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.726223Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.726223Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.733203Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.733203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 333257,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.744346Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.744346Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527870,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.749021Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.749021Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 575377,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.755503Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.755503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 333465,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.758111Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.758111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 18240,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 70360,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.760257Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 237249,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 2581493,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.763254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.763254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 650130,\n        \"price\": 4016.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.766027Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.766027Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145061,\n        \"price\": 3998.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.773438Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.773438Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 461752,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 575367,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.781177Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.781177Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 461757,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 575362,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.782696Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.782696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 990844,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.792204Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.792204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 528670,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.796143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.796143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 264080,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 408997,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 519309,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 977284,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 639583,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 116576,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.803753Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.803753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 956809,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 404578,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.809108Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.809108Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 148472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.809153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.809153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 917913,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 442360,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.811999Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.811999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 252055,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 400293,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.812026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.812026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 115576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 165472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.814244Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.814244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.816366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.816366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131632,\n        \"price\": 4135.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.818062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.818062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100114,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.819539Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.819539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90054,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.826673Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.826673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 335665,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 519527,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.834734Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.834734Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20350,\n        \"price\": 4391.5,\n      },\n      {\n        \"amount\": 355851,\n        \"price\": 4212.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.839717Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.839717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 169431,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.854357Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.854357Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 548670,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.875191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.875191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589052,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 355013,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 494302,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 161069,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 337865,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 521727,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.879398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.879398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 504302,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.882931Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.882931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94596,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.894115Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.894115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224087,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.894153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.894153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91837,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.897592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.897592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4109.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.900651Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.891Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 357813,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.903450Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.903450Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80,\n        \"price\": 4073.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.917504Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.908Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 298270,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 462757,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.919026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.919026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 49990,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.922375Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 591852,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 361543,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 172231,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 163869,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 524527,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.923801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.923801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54210,\n        \"price\": 4112,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.930146Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.941729Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.932Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131921,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1008495,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.955250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.955250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.962620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.962620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3250,\n        \"price\": 4291,\n      },\n      {\n        \"amount\": 141800,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 544020,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 17974,\n        \"price\": 4239.5,\n      },\n      {\n        \"amount\": 1385461,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 185356,\n        \"price\": 4189.5,\n      },\n      {\n        \"amount\": 465323,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 78304,\n        \"price\": 4164.5,\n      },\n      {\n        \"amount\": 1300638,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 344231,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 404071,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 78059,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 923118,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 591931,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 298199,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 907641,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 216994,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 172294,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 91782,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 400348,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 115623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 319990,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 381269,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 224158,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 301675,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 201328,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 218370,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 168760,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 142694,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 167096,\n        \"price\": 4041.5,\n      },\n      {\n        \"amount\": 514942,\n        \"price\": 4040.5,\n      },\n      {\n        \"amount\": 650327,\n        \"price\": 4016.5,\n      },\n      {\n        \"amount\": 264398,\n        \"price\": 4015.5,\n      },\n      {\n        \"amount\": 116971,\n        \"price\": 3991.5,\n      },\n      {\n        \"amount\": 383721,\n        \"price\": 3990.5,\n      },\n      {\n        \"amount\": 1309159,\n        \"price\": 3990,\n      },\n      {\n        \"amount\": 108676,\n        \"price\": 3940.5,\n      },\n      {\n        \"amount\": 1083833,\n        \"price\": 3940,\n      },\n      {\n        \"amount\": 5650,\n        \"price\": 3891.5,\n      },\n      {\n        \"amount\": 104626,\n        \"price\": 3890.5,\n      },\n      {\n        \"amount\": 123000,\n        \"price\": 3889.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.965983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.965983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550670,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.972070Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.972070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 910,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.974434Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 34,\n        \"price\": 31,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.975861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.975861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 935213,\n        \"price\": 4138,\n      },\n      {\n        \"amount\": 1994094,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 1851069,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 427087,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 367616,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 132842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.985984Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.985984Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4069,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.993163Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.979Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4066.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.993169Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:49.981Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.995675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.995675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 184994,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 221454,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 231759,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 305217,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 557167,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 536065,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 147224,\n        \"price\": 4077.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.997248Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.997248Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21757,\n        \"price\": 4314.5,\n      },\n      {\n        \"amount\": 104732,\n        \"price\": 4276,\n      },\n      {\n        \"amount\": 64097,\n        \"price\": 4244,\n      },\n      {\n        \"amount\": 69055,\n        \"price\": 4217,\n      },\n      {\n        \"amount\": 408882,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 139073,\n        \"price\": 4176.5,\n      },\n      {\n        \"amount\": 178917,\n        \"price\": 4161,\n      },\n      {\n        \"amount\": 2676598,\n        \"price\": 4148,\n      },\n      {\n        \"amount\": 243067,\n        \"price\": 4137,\n      },\n      {\n        \"amount\": 272526,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 214901,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 256412,\n        \"price\": 4114.5,\n      },\n      {\n        \"amount\": 591264,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 812558,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 207312,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 594807,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 185109,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 305372,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 147435,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 122503,\n        \"price\": 4073.5,\n      },\n      {\n        \"amount\": 243150,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 124491,\n        \"price\": 4063.5,\n      },\n      {\n        \"amount\": 126708,\n        \"price\": 4056.5,\n      },\n      {\n        \"amount\": 47688,\n        \"price\": 4048.5,\n      },\n      {\n        \"amount\": 541896,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 185638,\n        \"price\": 4027.5,\n      },\n      {\n        \"amount\": 89309,\n        \"price\": 4013.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 3996.5,\n      },\n      {\n        \"amount\": 118360,\n        \"price\": 3976.5,\n      },\n      {\n        \"amount\": 636913,\n        \"price\": 3952.5,\n      },\n      {\n        \"amount\": 172159,\n        \"price\": 3923.5,\n      },\n      {\n        \"amount\": 728128,\n        \"price\": 3889,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.025839Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.025839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.032444Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.032444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 54180,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.042296Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 418895,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435837,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.043144Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.043144Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136782,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 87842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.047255Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.047255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7910,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.048123Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.035Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 442740,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.049463Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.040Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.052860Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.052860Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 594131,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 429287,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 506502,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 157900,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.056961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.056961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 116247,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.062038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.062038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12500,\n        \"price\": 4098.25,\n      },\n      {\n        \"amount\": 39790,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.072698Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50080,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.081642Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.072Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253050,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 923295,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 907818,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 137136,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 232045,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.119760Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.119760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111397,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.119774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.119774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 110344,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.119784Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.119784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1230,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.149879Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.141Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49650,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.154380Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.144Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d8bd4d45-5f81-8e3e-d49b-56afc8cd8f6d\",\n    \"localTimestamp\": 2019-04-01T00:00:50.165876Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.128Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550667,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.170688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.170688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 109379,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.171006Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.171006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367605,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 550678,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.171013Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.171013Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549928,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.184296Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184296Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 467757,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 162900,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 231370,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.184335Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 163100,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 231570,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 136968,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 243632,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.184348Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 108874,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.184351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 596931,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 175014,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 163140,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 559967,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.184355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59199,\n        \"price\": 3941.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.184358Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 108409,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.186531Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.186531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 418958,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.189005Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.189005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 56000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 99890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.192602Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.182Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.197626Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.197626Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253238,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 923483,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 908006,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 137512,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 232347,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.206773Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.206773Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153263,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.217016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.217016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94037,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890193,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.227913Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.227913Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 235000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 79640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.227970Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 36000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 119890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.229150Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.217Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 99890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 21400,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.231551Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29650,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 99640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.234326Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.225Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 100610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.236567Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 114890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.239188Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.228Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 305941,\n        \"price\": 4113,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.240253Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.240253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 307730,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.240437Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.231Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 134890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.242241Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549931,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.246406Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.246406Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9860,\n        \"price\": 4083.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.247700Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770767,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.251500Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.251500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9650,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 119640,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.255036Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.246Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 368605,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.258104Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.258104Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107285,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.264453Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.264453Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 277711,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.266402Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.266402Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107600,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 83800,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.269568Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 272544,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.270785Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.270785Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107087,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.275033Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.275033Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137612,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.285011Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.285011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 93062,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.285042Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.285042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 271425,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.286526Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.286526Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.291345Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6800,\n        \"price\": 4102.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.305148Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87321,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.305279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.305279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78400,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.307812Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.297Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42000,\n        \"price\": 4107.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.313322Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.300Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 270399,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.315424Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.315424Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 53350,\n        \"price\": 4075.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.315489Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.303Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 269870,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.321817Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.321817Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 269380,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.330851Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.330851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 459258,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 590904,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 631860,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 429107,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 269290,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 206017,\n        \"price\": 4062.5,\n      },\n      {\n        \"amount\": 644233,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 203147,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.351528Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.351528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549131,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.353701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.353701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 268941,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.366276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.366276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68660,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 121340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.368262Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 263774,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.373510Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.373510Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 216494,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 175514,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.376074Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.376074Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 920,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.376277Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175264,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 252305,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.378232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.378232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 262655,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.379729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.379729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50100,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.381612Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.372Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 261458,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.385292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.385292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94349,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.388834Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.388834Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 261252,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.390794Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.390794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 45930,\n        \"price\": 4088.75,\n      },\n      {\n        \"amount\": 183380,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.392479Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.382Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246304,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.392509Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.392509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 501967,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.396658Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.396658Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.398618Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.398618Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245278,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.407602Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.407602Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 323995,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 148531,\n        \"price\": 4188.5,\n      },\n      {\n        \"amount\": 602349,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 75522,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 1663219,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 272426,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 694422,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 445271,\n        \"price\": 4118.5,\n      },\n      {\n        \"amount\": 475833,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 246227,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 770817,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 594757,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 575402,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 216459,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1096979,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 185069,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 536115,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 168710,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 243250,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 209360,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 87421,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 124366,\n        \"price\": 4058.5,\n      },\n      {\n        \"amount\": 315800,\n        \"price\": 4049,\n      },\n      {\n        \"amount\": 47588,\n        \"price\": 4048.5,\n      },\n      {\n        \"amount\": 541996,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 141714,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 280735,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 33591,\n        \"price\": 3988.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.407617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.407617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 239168,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.408160Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.408160Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 922983,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 597431,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 231070,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 232847,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.409984Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.409984Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 238639,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.411683Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.411683Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 238149,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.415319Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.415319Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 536127,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.422732Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.422732Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.427383Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.427383Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 236952,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.430595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.430595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 236746,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.435038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.435038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 221798,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.437928Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.437928Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137862,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 368355,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.443293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.443293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 215688,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.443319Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.443319Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 368480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 94224,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.444813Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.444813Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 89,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6a8c7131-d51b-415d-2117-8debf5476f21\",\n    \"localTimestamp\": 2019-04-01T00:00:50.475670Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.447Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 890104,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.475711Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.475711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 890212,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.475716Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.475716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 71210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 22000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.484063Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.474Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 56210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 54800,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.486496Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.476Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189140,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.497274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.497274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 892712,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.504686Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.504686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189102,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 221492,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 230994,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 305448,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 399808,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 536241,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 168558,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 323436,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 296290,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 951478,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.504710Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.504710Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 119890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 71210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.520193Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.510Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4460,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 37000,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.541644Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.530Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 557235,\n        \"price\": 4068,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.544038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.544038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 232295,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.562351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.562351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 221494,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 230992,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.595679Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.595679Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 61800,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.597034Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.585Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 550,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4072.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.599379Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211726,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892839,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 301989,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 233004,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 536398,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.625429Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.625429Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189569,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.632736Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.632736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 392115,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 404284,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 1851282,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 575615,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 466856,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.641131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.641131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 510,\n        \"price\": 6133,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.646082Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.646082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 299540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 17840,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.683406Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675231,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.712999Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.712999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4109.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.714612Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6560,\n        \"price\": 4073.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.717175Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2040,\n        \"price\": 4111.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.723298Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4071.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.726578Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.715Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 940,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.727990Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50070,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.735078Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.725Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632083,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 305699,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.738570Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.738570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 39,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d19fe993-d248-9240-8559-52ef906b0e6d\",\n    \"localTimestamp\": 2019-04-01T00:00:50.791577Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.766Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 892800,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.791611Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.791611Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4102.75,\n      },\n      {\n        \"amount\": 4800,\n        \"price\": 4100.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.858192Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.849Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 99890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.860639Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227338,\n        \"price\": 4143,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.863655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.863655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 408952,\n        \"price\": 4116,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.865603Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.865603Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1148,\n        \"price\": 4416,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.870661Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.870661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189672,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.893755Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.893755Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 114340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.895149Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.885Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676031,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.906422Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.906422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175576,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.906431Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.906431Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 79890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 41000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.907286Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.897Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1400,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 99890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.908616Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.899Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 79890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 61000,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.928775Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.919Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 269540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 102930,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.934986Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177540,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 65070,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.937082Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.927Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 58040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 37840,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.939939Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 235000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.941439Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.932Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 162540,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 80070,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.944758Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.935Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 132930,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.947402Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4068.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.963966Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.952Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 147540,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 53040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.964603Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.955Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3090,\n        \"price\": 4066.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.967681Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 57840,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.969928Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.960Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132540,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.971071Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 209540,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 131450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.973760Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.963Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 179540,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.975293Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.966Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 195000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.977475Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 25240,\n        \"price\": 4095.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.981172Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.971Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 84170,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.985245Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 45070,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.993193Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.984Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 985890,\n        \"price\": 4128,\n      },\n      {\n        \"amount\": 308196,\n        \"price\": 4113,\n      },\n      {\n        \"amount\": 406539,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 925238,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 177831,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 95941,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.002044Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.002044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21580,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.006607Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:50.997Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 968177,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 554491,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.017721Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.017721Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 501982,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.020016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.020016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.024370Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.024370Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1442,\n    \"exchange\": \"bitmex\",\n    \"id\": \"48567cf9-01df-a455-020e-00ede0294f65\",\n    \"localTimestamp\": 2019-04-01T00:00:51.064496Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.033Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 891358,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.064534Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 706,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a1ac1795-0b2f-be82-dae4-08d40b2d08c1\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 590,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4b54e323-cfe5-ffd4-d681-d5e0fe55837f\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"09778f7b-6ec0-9565-1157-d0bf2a109de5\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0aa198e9-9013-ded0-3ba9-d30ecf095e3a\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 204,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2bd9ebd8-21a2-4f49-f5eb-c4fb17e7beac\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 29,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fec1f347-d852-1d94-c828-7b38418500ae\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 19,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8375dc7d-89af-63c1-1671-9a48168b41d4\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 192,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ef999dc7-e39a-20a7-37a3-bafcba3590a6\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f4d2a0df-01b3-9516-4070-43912ac53851\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 716,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f437e921-676a-6226-8e79-53f199edb1c0\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5856,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3237ba20-e22c-fd78-c9e1-3b022391735e\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 882979,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.095934Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.095934Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.098377Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.088Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 84180,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.104128Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.095Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676020,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.105140Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.105140Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83980,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.120044Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39790,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.127139Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.117Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 42770,\n    \"exchange\": \"bitmex\",\n    \"id\": \"31ca1631-cacb-4410-a822-950779fc4af5\",\n    \"localTimestamp\": 2019-04-01T00:00:51.135508Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.089Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 840209,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.135540Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.135540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 230792,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 243832,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.135594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.135594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214459,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.135601Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.135601Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 101374,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c11dd521-e412-0cdd-6c47-017df0de1a52\",\n    \"localTimestamp\": 2019-04-01T00:00:51.152480Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.123Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 204,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9d5e2e93-4bbc-2e6c-6c73-e49177cd8a53\",\n    \"localTimestamp\": 2019-04-01T00:00:51.152480Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.123Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3058,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e3dee635-5ef1-76aa-975e-cd687b1b3dac\",\n    \"localTimestamp\": 2019-04-01T00:00:51.152480Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.123Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 735573,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.152509Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.152509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.153191Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.144Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98980,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.155918Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 467657,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 735473,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.156430Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.156430Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77840,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.159255Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 162930,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.162661Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94641,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.164608Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.164608Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 274118,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 2544624,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.164651Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.164651Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 188902,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 137168,\n        \"price\": 3984.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.164653Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.164653Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 741544,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.171111Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.171111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 171831,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.171143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.171143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52270,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 35980,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.171357Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367013,\n        \"price\": 4129.5,\n      },\n      {\n        \"amount\": 676021,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.176762Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.176762Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94340,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 97840,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.180111Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.169Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 103792,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 323795,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 94841,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 741244,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 374287,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 33791,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 151598,\n        \"price\": 3986.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.182410Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.182410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 683774,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.187330Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.187330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 74340,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 117840,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.200293Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2443,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0863e5c1-9c2f-7ddc-f3a3-a52c03bb0e9c\",\n    \"localTimestamp\": 2019-04-01T00:00:51.220440Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.189Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 738801,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.220470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.220470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1928014,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 150798,\n        \"price\": 4112.5,\n      },\n      {\n        \"amount\": 363563,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 697619,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.220474Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.220474Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 300,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.236451Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.225Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 197839,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 213328,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 247122,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 216676,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 352573,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 142905,\n        \"price\": 4077.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.237003Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.237003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 122380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.243265Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.231Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54340,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 215000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.257953Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 235000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.259317Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.246Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18840,\n        \"price\": 4083.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.267189Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.252Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131840,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 443440,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.267242Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34980,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 132450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.270431Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.258Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3350,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.286656Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.275Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 4499,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c4ccf79c-5ca9-f3a0-fd4c-360c946bf1bc\",\n    \"localTimestamp\": 2019-04-01T00:00:51.286746Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.256Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3334,\n    \"exchange\": \"bitmex\",\n    \"id\": \"652bbc15-1c4b-b114-ab2c-dc1811cce8fd\",\n    \"localTimestamp\": 2019-04-01T00:00:51.286746Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.256Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 730968,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.286772Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.286772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94649,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.286780Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.286780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 70090,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.289491Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.280Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51840,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.291109Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 562,\n    \"exchange\": \"bitmex\",\n    \"id\": \"964f7eea-1b22-a478-4c20-8b3f1ee91184\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3223,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3e16d1de-6727-383e-4c80-a98292ea6aca\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1346,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dc5c2eef-2d6d-0c6c-9185-d8974c818b04\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1534,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6f54ab62-33e0-b3aa-2019-13eb94d7157b\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"26dd38d0-15bb-662c-4d71-4b0b72a9cfea\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"be3e45c5-eabd-c13d-5b66-715399122fec\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 19482,\n    \"exchange\": \"bitmex\",\n    \"id\": \"edc1587e-2b6d-53d7-b314-5048ec874722\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 694799,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.311863Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.311863Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 370287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.311900Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.311900Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305288,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.311903Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.311903Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 7182,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d5954145-e923-9c7b-f717-0d9a0d110fc5\",\n    \"localTimestamp\": 2019-04-01T00:00:51.326512Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.293Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 687617,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.326543Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.326543Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20880,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 184080,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.330450Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.318Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3703,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bc3734db-47dc-8132-7e4f-90c2e0878de9\",\n    \"localTimestamp\": 2019-04-01T00:00:51.336273Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.310Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 683914,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.336310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.336310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3750,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 30710,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.341519Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 132140,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.342313Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.333Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19540,\n        \"price\": 4083.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.344182Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 97980,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 132840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.346631Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 9700,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 53270,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.349187Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5000,\n        \"price\": 4101.25,\n      },\n      {\n        \"amount\": 30830,\n        \"price\": 4098.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.352332Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13500,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 184780,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.354320Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.345Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 6694,\n    \"exchange\": \"bitmex\",\n    \"id\": \"88899cac-f564-5aa4-56b0-486a9aba3e74\",\n    \"localTimestamp\": 2019-04-01T00:00:51.358346Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.321Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 677220,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.358371Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.358371Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305080,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.358374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.358374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 686121,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.358383Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.358383Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 20680,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.368076Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 167935,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.375422Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.375422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20240,\n        \"price\": 4083.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.375475Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.360Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 213330,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.378551Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.378551Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1438,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3c9c72f8-d741-a85f-1988-0e48e56fb4a3\",\n    \"localTimestamp\": 2019-04-01T00:00:51.396140Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.368Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 675782,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.396164Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.396164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135749,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.396173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.396173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 459978,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 591264,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 632040,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 363743,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215778,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 206197,\n        \"price\": 4062.5,\n      },\n      {\n        \"amount\": 644593,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 203867,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.404223Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.404223Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70893,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.414980Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.414980Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 142380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.418991Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.409Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1846282,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 570615,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 393376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 1091979,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.421938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.421938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 697931,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.422703Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.422703Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3430,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ab3105fb-8079-67e5-a405-d8949fbc000e\",\n    \"localTimestamp\": 2019-04-01T00:00:51.462083Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.432Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 672352,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.462119Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.462119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 252295,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 224148,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.462133Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.462133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.466211Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.466211Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 270,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.473227Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.461Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98050,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.479996Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.469Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1096512,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.485875Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.485875Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 252305,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 247132,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.494940Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.494940Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211409,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 336422,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.511954Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.511954Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 694377,\n        \"price\": 4119,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.514109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.514109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 1101512,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.523112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.523112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 559979,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.528173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.528173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.529548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.529548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 18240,\n        \"price\": 4095.25,\n      },\n      {\n        \"amount\": 61340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.550024Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 702931,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 172935,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.557674Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.557674Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211709,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.582226Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.582226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 217709,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.589355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.589355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 368490,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 197849,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.593592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.593592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.595503Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.595503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 672512,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.599286Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.599286Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 213328,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 247134,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.607069Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.607069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 130921,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1009495,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.607077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.607077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 216362,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 339115,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.626071Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.626071Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213139,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 345561,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.631612Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.631612Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 672546,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.645856Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.645856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 672754,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.653988Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.653988Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 348629,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.671171Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.671171Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 303733,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.692568Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.692568Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 774865,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.692607Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.692607Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.694047Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.694047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473657,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 355573,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.703050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.703050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 910172,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.732102Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.732102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127038,\n        \"price\": 4135.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.734415Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.734415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 702929,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.743647Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.743647Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164935,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.745323Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.745323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1334325,\n        \"price\": 4062,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.827708Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.827708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 351573,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 327436,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.841629Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.841629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1024495,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.861638Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.861638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.873731Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.863Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 20700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.875828Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98000,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.881276Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.870Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34597,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.891773Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.891773Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.911150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.911150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 20700,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.913241Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.901Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"20b191bd-5b3f-72a5-16df-b16646cced0b\",\n    \"localTimestamp\": 2019-04-01T00:00:51.921542Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.900Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 667754,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.921574Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.921574Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141380,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 54040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.923278Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.913Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 977658,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.935138Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.935138Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 79890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.939071Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.929Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 99890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.959847Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.948Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121380,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 235000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.966434Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.956Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.988272Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.988272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58800,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 132600,\n        \"price\": 4076.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.991112Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.981Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690117,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667854,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.004876Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.004876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101380,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 255000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.005341Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:51.995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131207,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.007336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.007336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 373032,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.022364Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.022364Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 192930,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.028726Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.019Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 667868,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.046366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.046366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13700,\n        \"price\": 4096.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.046638Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.036Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 372981,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 690168,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.055304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.055304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24700,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.069937Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690268,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667968,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.140038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.140038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473652,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 214464,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.142147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.142147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390921,\n        \"price\": 4122,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.148065Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.148065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 228148,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.157524Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.157524Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435842,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.197451Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.197451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 295890,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 951878,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.219804Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.219804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1826282,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.223181Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.223181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674147,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.238793Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.238793Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 178335,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.248476Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.248476Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 234464,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.255425Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.255425Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674247,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 668068,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.279242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.279242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674651,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 668472,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.286673Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.286673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 436034,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.303866Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.303866Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692472,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.318850Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.318850Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674671,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.321080Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.321080Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81602,\n        \"price\": 4389,\n      },\n      {\n        \"amount\": 17751,\n        \"price\": 4204.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.365600Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.365600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 158773,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.397623Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.397623Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 502133,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.405505Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.405505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 813026,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.446485Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.446485Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1096979,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.449844Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.449844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 632629,\n        \"price\": 4036.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.455220Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.455220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 95894,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.462408Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.462408Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473642,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 234474,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.465434Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.465434Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 308267,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.468067Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.468067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 130909,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.492104Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.492104Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202042,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 408682,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 99619,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 1831882,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 915772,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 183935,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 39191,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156998,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 142568,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 249232,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.494365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.494365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675360,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.500083Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.500083Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 436750,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.529135Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.529135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98040,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.587492Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4700,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 119890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.588343Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.208Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 24700,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.590705Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.233Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 89230,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.595310Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 184080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 70790,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.599373Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.397Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 61100,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 45770,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.600614Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.424Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 99890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 44700,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.603298Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.521Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 235000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 195000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.606822Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.524Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 79890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 64700,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.606921Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.537Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81380,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 215000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.606955Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.541Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 84700,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.607594Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 162930,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 132450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.607609Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.546Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61380,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 235000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.607618Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.547Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 250,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.608298Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.578Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98050,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.608877Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.584Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 679358,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.612288Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.612288Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 213628,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.612321Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.612321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 438096,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.643189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.643189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64700,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 20700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.643240Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.630Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 81380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.643431Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.632Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403743,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 599979,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.646426Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.646426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 441319,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.650232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.650232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 443743,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 639979,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.652852Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.652852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 672040,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 483743,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 679979,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 367436,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.681258Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.681258Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.685087Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.685087Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 699770,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.718669Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.718669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749702,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.720829Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.720829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.738097Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.738097Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.739959Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.739959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 366334,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 84998,\n        \"price\": 4112.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.754705Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.754705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 230666,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.762201Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.762201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137268,\n        \"price\": 4110.5,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.768805Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.768805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184535,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.789828Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.789828Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 752120,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.791442Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.791442Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 373981,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.805627Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.805627Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 237249,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 2581493,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.812971Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.812971Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 364196,\n        \"price\": 3971,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.815433Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.815433Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 751340,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.834227Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.834227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44700,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 79890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.855340Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 251305,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.863687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.863687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24700,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 99890,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.879266Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.868Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3071,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2e530cff-c8b6-33b5-58e5-ca91b3ed11d2\",\n    \"localTimestamp\": 2019-04-01T00:00:52.882254Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.854Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 221,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ed78360b-59d9-a66f-0663-693192d10c93\",\n    \"localTimestamp\": 2019-04-01T00:00:52.882254Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.854Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 8708,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d284cb2b-2f27-3679-2b3d-da2f33eaca84\",\n    \"localTimestamp\": 2019-04-01T00:00:52.882254Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.854Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 680492,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.882281Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.882281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 752506,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.882292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.882292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10000,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.916218Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.906Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.924313Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.924313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1770165,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.961997Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.961997Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4102.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.963693Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.950Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 240,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.964963Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.955Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 97970,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.974475Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:52.962Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 769766,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.041609Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.041609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76400,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.050853Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.041Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4107.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.052773Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.043Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 442553,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.063687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.063687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51350,\n        \"price\": 4075.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.065237Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 169080,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.066236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.066236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 773194,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.086059Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.086059Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 774964,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.089504Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.089504Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132930,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 265000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.091145Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778703,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.092582Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.092582Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 479723,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.095276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.095276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 470988,\n        \"price\": 4056,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.105786Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.105786Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82970,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 147840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.107012Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 97970,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.110856Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.100Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61380,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 235000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.113018Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 162930,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.116006Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82970,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.120339Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 473723,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.127973Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.127973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.131191Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.122Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132930,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.133431Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4109.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.138006Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4560,\n        \"price\": 4073.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.140092Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.130Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 59040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.141473Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.132Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40,\n        \"price\": 4111.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.143059Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67970,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 162840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.144925Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4071.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.146477Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102930,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 295000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.153967Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.144Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 79890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 44700,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.225102Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 275000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 81340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.227788Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.217Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296588,\n        \"price\": 4131.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.255681Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.255681Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 925238,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 597430,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.257326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.257326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 255000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 100610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.272627Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177840,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.279101Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.269Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21380,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 122450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.288909Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 235000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.291832Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 285000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.294499Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.284Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 250,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.329457Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.319Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59890,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 64700,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.333227Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 265000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 101340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.336325Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.327Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 168876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.338749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.338749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 178040,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.340223Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.341680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.341680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 87430,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.360408Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 25230,\n        \"price\": 4090.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.371777Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.362Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4068.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.377366Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.384351Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 329000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.385469Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 473733,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.401068Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.401068Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.405826Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.405826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.409172Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.409172Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"16d794b5-db61-362f-83b1-9423d06556f2\",\n    \"localTimestamp\": 2019-04-01T00:00:53.430376Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.409Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 689393,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.430410Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.430410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 985845,\n        \"price\": 4128,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.430416Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.430416Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5010,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.443766Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.433Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379318,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.443814Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.443814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 463733,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.446959Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.446959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 175000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 74880,\n        \"price\": 4089.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.449126Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.440Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 70790,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 48720,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.451246Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.442Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 18600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 19930,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.454649Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.443Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 29860,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.454695Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.445Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1285082,\n        \"price\": 4060,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.462001Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.462001Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 32690,\n        \"price\": 4085.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.463502Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.454Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1090,\n        \"price\": 4066.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.465364Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.456Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 175900,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60020,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.467986Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.457Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4102.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.472004Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.460Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 112720,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.473580Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.464Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20030,\n        \"price\": 4095.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.476666Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 129636,\n        \"price\": 4067.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.493113Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.493113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 399820,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.517861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.517861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 130845,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.524327Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.524327Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 155158,\n        \"price\": 4169,\n      },\n      {\n        \"amount\": 601959,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 214511,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 475443,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 406149,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 1831492,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1284392,\n        \"price\": 4060,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.543185Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.543185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15710,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 18750,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.545849Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 86210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.552736Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.542Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 710,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 101210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.562807Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26360,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 4210,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.565083Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 22740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 11210,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.569417Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4072.25,\n      },\n      {\n        \"amount\": 75550,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.571834Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 79700,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.577083Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379350,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.580381Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.580381Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 140105,\n        \"price\": 4077.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.587575Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.587575Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 299000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 51380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.588323Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.579Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72930,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 329000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.596950Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.587Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 7000,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 37790,\n        \"price\": 4097.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.628478Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.619Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51720,\n        \"price\": 4104.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.676600Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63870,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.682589Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 343739,\n        \"price\": 3971,\n      },\n      {\n        \"amount\": 692448,\n        \"price\": 3965,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.697208Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.697208Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 210,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.718768Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4000,\n        \"price\": 4106.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.724238Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.702Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51400,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 76720,\n        \"price\": 4104.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.726173Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63860,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.730716Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.720Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4075.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.732835Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 128711,\n        \"price\": 4053,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.742572Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.742572Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4109.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.747038Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 300518,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 1897044,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 637393,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 636119,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 136148,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.758194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.758194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"de25f971-0fa8-cadf-16a9-24aa08090187\",\n    \"localTimestamp\": 2019-04-01T00:00:53.778304Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.755Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 688393,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.778330Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.778330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 644119,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.778334Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.778334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 668119,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.782266Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.782266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.787656Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.787656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1896844,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 915572,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 184335,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38991,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156798,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 142368,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 249032,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.797131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.797131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.813852Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.813852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 147982,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.827591Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.827591Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 66700,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 179990,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.865233Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 108620,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 64110,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.867757Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27085,\n        \"price\": 4211.5,\n      },\n      {\n        \"amount\": 101617,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 182690,\n        \"price\": 4170.5,\n      },\n      {\n        \"amount\": 102983,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 1927144,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 1769730,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 600385,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 82305,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 2061360,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 422308,\n        \"price\": 4010.5,\n      },\n      {\n        \"amount\": 179727,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 89094,\n        \"price\": 3971.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.867780Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.867780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10000,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 37030,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.882152Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.873Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.888897Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.888897Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81340,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 56610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.891566Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.882Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3640,\n        \"price\": 4095.75,\n      },\n      {\n        \"amount\": 97720,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.910217Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.884Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77720,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 76610,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.910311Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.891Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 536413,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.911728Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.911728Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.929382Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.929382Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4085.25,\n      },\n      {\n        \"amount\": 32710,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.968979Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:53.959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 351280,\n        \"price\": 3971,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.012558Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.012558Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 652037,\n        \"price\": 4027,\n      },\n      {\n        \"amount\": 501130,\n        \"price\": 4007.5,\n      },\n      {\n        \"amount\": 172934,\n        \"price\": 3997.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.014721Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.014721Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 55930,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 20880,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.018409Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.007Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 264035,\n        \"price\": 4131,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.042999Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.042999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 448,\n    \"exchange\": \"bitmex\",\n    \"id\": \"908e8718-921a-ab6a-c860-f9fdccf54c77\",\n    \"localTimestamp\": 2019-04-01T00:00:54.058293Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.033Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 687945,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.058321Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.058321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 200,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.071609Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2275749,\n        \"price\": 4020,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.074253Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.074253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63890,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.077843Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 56150,\n        \"price\": 4075.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.091229Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.098416Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.087Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 234290,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 184151,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 251121,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 131023,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 373797,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502121,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 308255,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 188890,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1096967,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 197837,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.099444Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.099444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3600,\n        \"price\": 4073.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.105818Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.096Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 299000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 81380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.116923Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.105Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.138088Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 269000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.158150Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 48890,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 193040,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.184187Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215000,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 79040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.184430Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 178040,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 458440,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.189676Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77000,\n        \"price\": 4111.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.195404Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.182Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 82970,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.200810Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 98180,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.224579Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1250,\n        \"price\": 4145,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 4162,\n      },\n      {\n        \"amount\": 7840,\n        \"price\": 4180,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.225690Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64700,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 101210,\n        \"price\": 4085.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.227700Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.218Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 56610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 101380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.230575Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 37740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.232689Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.223Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 71210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 26210,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.240655Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.225Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44700,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 47200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.240699Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24700,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 67200,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.240736Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.229Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 235000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.241920Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.231Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16610,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 121380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.242038Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3750,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 41210,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.243832Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 90000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.247100Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 255000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.247152Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1896876,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.253373Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.253373Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.260041Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20680,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.262547Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5010,\n        \"price\": 4097.25,\n      },\n      {\n        \"amount\": 34490,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.264447Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184336,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 251306,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 131208,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 373982,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 136133,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 308267,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 188902,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1096979,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 197849,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 213640,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.270488Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.270488Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"67ec590b-f23f-1b24-8e68-7a05f09168f3\",\n    \"localTimestamp\": 2019-04-01T00:00:54.270491Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.250Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 682945,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.270494Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.270494Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472642,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 669119,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.270498Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.270498Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 37710,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 13500,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.270918Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30710,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 44740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.275572Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 234292,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.279444Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.279444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88670,\n        \"price\": 4313.5,\n      },\n      {\n        \"amount\": 157336,\n        \"price\": 4276.5,\n      },\n      {\n        \"amount\": 73754,\n        \"price\": 4239.5,\n      },\n      {\n        \"amount\": 88361,\n        \"price\": 4203,\n      },\n      {\n        \"amount\": 402841,\n        \"price\": 4166,\n      },\n      {\n        \"amount\": 1677164,\n        \"price\": 4129,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 285615,\n        \"price\": 4055.5,\n      },\n      {\n        \"amount\": 1262697,\n        \"price\": 4018.5,\n      },\n      {\n        \"amount\": 332373,\n        \"price\": 3982,\n      },\n      {\n        \"amount\": 507003,\n        \"price\": 3945,\n      },\n      {\n        \"amount\": 329104,\n        \"price\": 3908,\n      },\n      {\n        \"amount\": 94132,\n        \"price\": 3871.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.279451Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.279451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1034500,\n        \"price\": 4188,\n      },\n      {\n        \"amount\": 535283,\n        \"price\": 4165.5,\n      },\n      {\n        \"amount\": 65588,\n        \"price\": 4143.5,\n      },\n      {\n        \"amount\": 461577,\n        \"price\": 4121.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 664030,\n        \"price\": 4046,\n      },\n      {\n        \"amount\": 598270,\n        \"price\": 4024.5,\n      },\n      {\n        \"amount\": 632753,\n        \"price\": 4002.5,\n      },\n      {\n        \"amount\": 561542,\n        \"price\": 3981,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.282326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.282326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 550,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 75000,\n        \"price\": 4072.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.289329Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 184818,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 193765,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 230804,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 224840,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 321404,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 432464,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 647339,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 347042,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 549319,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 1827115,\n        \"price\": 4010,\n      },\n      {\n        \"amount\": 565250,\n        \"price\": 4007.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.289761Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.289761Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 291998,\n        \"price\": 4131.5,\n      },\n      {\n        \"amount\": 135754,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.292348Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.292348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3126,\n        \"price\": 3375.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.293935Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.293935Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52990,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.296513Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.301355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.301355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 373816,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 136299,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.310200Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.310200Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 369274,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.311774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.311774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 214140,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 230304,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.324119Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.324119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 140840,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.327398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.327398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4068.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.335844Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3125,\n        \"price\": 3375.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.357632Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.357632Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.360413Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.360413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1285082,\n        \"price\": 4060,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.371668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.371668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1844766,\n        \"price\": 4050,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.377977Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.377977Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 280906,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.403586Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.403586Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2010,\n        \"price\": 4066.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.423437Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 175900,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60020,\n        \"price\": 4089.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.431289Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 55930,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 179090,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.436000Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 290,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.455505Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.446Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 464642,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.461126Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.461126Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097479,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 193265,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.479116Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.479116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 369149,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.483039Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.483039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.485917Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.485917Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 507687,\n        \"price\": 3975,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.485953Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.485953Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135504,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 369399,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.489924Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.489924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 308517,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 184568,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.489957Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.489957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"287bf1ad-e27e-d075-7394-6fb4c9f8fcb3\",\n    \"localTimestamp\": 2019-04-01T00:00:54.510159Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.484Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 688204,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.510186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.510186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775903,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688404,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.510191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.510191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 347030,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.512599Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.512599Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 47200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 44700,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.554532Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214470,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 694418,\n        \"price\": 4119,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.558646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.558646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1710,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.564004Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.554Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 707475,\n        \"price\": 4055,\n      },\n      {\n        \"amount\": 219456,\n        \"price\": 4052.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.597417Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.597417Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 27200,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 64700,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.604916Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775920,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.653370Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.653370Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164919,\n        \"price\": 4167,\n      },\n      {\n        \"amount\": 243457,\n        \"price\": 4137,\n      },\n      {\n        \"amount\": 694808,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 352969,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 978048,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 915962,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.692963Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.692963Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 280956,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.709718Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.709718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1417084,\n        \"price\": 4134,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.715307Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.715307Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 372899,\n        \"price\": 4141,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.751695Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.751695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1831324,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 734623,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.766826Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.766826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 303935,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 218722,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.772767Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.772767Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 210,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.775620Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52980,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.780167Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.770Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 303699,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 218958,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.796927Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.796927Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72,\n        \"price\": 2,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.802103Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.802103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 698404,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.822107Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.822107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 758623,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.824398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.824398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.840766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.840766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232525,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 371166,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.891774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.891774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 175000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.906958Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.896Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770790,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 697264,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.919927Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.919927Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 159649,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.926156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.926156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 771006,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.928447Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.928447Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3447,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f8b4a7b3-859a-40b0-44d9-97afb0a75b58\",\n    \"localTimestamp\": 2019-04-01T00:00:54.948211Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.922Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 693817,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.948240Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.948240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776706,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.948243Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.948243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 572392,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.948246Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.948246Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776865,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572551,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.959520Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.959520Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776890,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.962285Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.962285Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1831124,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 915762,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 184136,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38791,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156598,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 142168,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 248832,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.965963Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.965963Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 65700,\n        \"price\": 4089.75,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.966477Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:54.956Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 508457,\n        \"price\": 3975,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.016356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.016356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91350,\n        \"price\": 4240.5,\n      },\n      {\n        \"amount\": 94217,\n        \"price\": 4156.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.023060Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.023060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253306,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.025769Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.025769Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 854491,\n        \"price\": 4047,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.029316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.029316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776880,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.048629Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.048629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 8177.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.058593Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.058593Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34980,\n        \"price\": 4094.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.121233Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32710,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.144052Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 220,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.170423Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.161Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53010,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.178928Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44700,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 40700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.207971Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121380,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 299000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.213061Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 443440,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 193040,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.217460Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.208Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20880,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.223289Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 56210,\n        \"price\": 4085.75,\n      },\n      {\n        \"amount\": 55700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.235444Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.225Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 37030,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.236330Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24700,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 75700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.237599Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.228Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.239353Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.230Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4700,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 95700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.263529Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 49010,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.264917Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59040,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 275000,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.274287Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2082700,\n        \"price\": 4176,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.292514Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.292514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 260606,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.297081Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.297081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.303726Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.303726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.313555Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.313555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 766623,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.313581Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.313581Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 370166,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.313585Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.313585Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 218996,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 321480,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 536527,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 367588,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 952068,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 166996,\n        \"price\": 4041.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.315782Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.315782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 572510,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.326349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.326349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36430,\n        \"price\": 4394,\n      },\n      {\n        \"amount\": 129488,\n        \"price\": 4196,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.329737Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.329737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 243412,\n        \"price\": 4137,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.350622Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.350622Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 562510,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.354243Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.354243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 37730,\n        \"price\": 4086.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.364078Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.354Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 275100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.385173Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 562299,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.399013Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.399013Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777112,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 562531,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.402266Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.402266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 329000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.419668Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 303499,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.495216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.495216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 41,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fe9139f1-9328-f26a-0908-5585f50331bc\",\n    \"localTimestamp\": 2019-04-01T00:00:55.502495Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.306Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 211,\n    \"exchange\": \"bitmex\",\n    \"id\": \"67847157-34c5-5885-9dfc-6b6239151bd9\",\n    \"localTimestamp\": 2019-04-01T00:00:55.502525Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.349Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 321492,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.511671Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.511671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 562371,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.527982Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.527982Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29010,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 95700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.530971Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 502630,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.541254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.541254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 255100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 111380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.553472Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4102.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.553553Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 19000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.557349Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.546Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 39000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.559587Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.549Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 59000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.561090Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.551Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 235100,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 349000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.564848Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91380,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 369000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.565065Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 79000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.567255Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.558Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 71380,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 389000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.570450Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.572930Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.563Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 186999,\n        \"price\": 4143.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.573309Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.573309Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 408223,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 518580,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 977319,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 635935,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 552275,\n        \"price\": 4068,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.578226Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.578226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53000,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.580984Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65588,\n        \"price\": 4143.5,\n      },\n      {\n        \"amount\": 898523,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.585949Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.585949Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.603252Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.603252Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 536877,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.638602Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.638602Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 74720,\n        \"price\": 4104.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.638749Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4106.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.640336Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 49720,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 76400,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.649475Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.640Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4075.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.653345Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.644Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1091531,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.666128Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.666128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 69,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1a0c41d4-0325-d5b4-4366-18731a51da1a\",\n    \"localTimestamp\": 2019-04-01T00:00:55.691719Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.668Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 502561,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.691744Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.691744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 898623,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502661,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.702578Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.702578Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4136.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.718491Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.738337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.738337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 178040,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 68000,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.766562Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.750Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 41380,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 419000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.766638Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 102930,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.767206Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.756Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189182,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 227162,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 220758,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 153897,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 305168,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 399820,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 569509,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.776291Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.776291Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417224,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.781251Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.781251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4109.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.781546Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 502453,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.787222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.787222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34490,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.790160Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417384,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.831132Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.831132Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 179090,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.860561Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 502427,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.865313Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.865313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 26,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5b96aad6-eee4-5f1d-abc7-0ff55066b803\",\n    \"localTimestamp\": 2019-04-01T00:00:55.865357Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.841Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4073.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.868535Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75000,\n        \"price\": 4111.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.870247Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80970,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.873194Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.863Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 500,\n        \"price\": 6133,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.895617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.895617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 250,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.914147Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.904Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 569520,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.951362Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.951362Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.952541Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.943Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 49010,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.958362Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.948Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 20700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.959770Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.950Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 35700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.966088Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.956Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 55700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.968865Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.958Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157897,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 363588,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.982855Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.982855Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1300593,\n        \"price\": 4140,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.984341Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.984341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157791,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.986062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.986062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4068.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.988493Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:55.976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 507427,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.003183Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.003183Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.011731Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.011731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.012165Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 75700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.018016Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 42540,\n        \"price\": 4083.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.064998Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.055Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417592,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.066864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.066864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 68180,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.071925Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10,\n        \"price\": 4066.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.075663Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4102.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.078999Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232515,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 184146,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.134729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.134729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75770,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.135972Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.126Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417587,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426523,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.138822Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.138822Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 261233,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 636023,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 184234,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.176981Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.176981Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78400,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.198376Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af6ede84-68a2-3e83-e64e-61ff7bb8d198\",\n    \"localTimestamp\": 2019-04-01T00:00:56.277245Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.208Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 505927,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.277279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.277279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635023,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.283926Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.283926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42000,\n        \"price\": 4107.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.285683Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.275Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.285792Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.285792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1830924,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 915562,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 184034,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 140565,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38591,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156398,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 141968,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 248632,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.295016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.295016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 512421,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.296688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.296688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 18600,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 77720,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.297162Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58150,\n        \"price\": 4075.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.302411Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4109.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.305135Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1056567,\n        \"price\": 4041,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.306148Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.306148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 183534,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 261106,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.318860Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.318860Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.378443Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68010,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.385843Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.387018Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.387018Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232510,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 183539,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.415775Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.415775Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10880,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 23500,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.418489Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.407Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15710,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 90700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.425413Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.411Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 37740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 22710,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.438330Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.429Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4072.25,\n      },\n      {\n        \"amount\": 75550,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.441278Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.431Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1710,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 34480,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.451605Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.442Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 22740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 105700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.457733Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.448Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7710,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 64010,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.470416Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.460Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 11210,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.506151Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 168546,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.515687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.515687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 221758,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.553134Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.553134Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6560,\n        \"price\": 4073.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.596755Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.584Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 308925,\n        \"price\": 4113,\n      },\n      {\n        \"amount\": 406878,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 925967,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 184997,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 557235,\n        \"price\": 4068,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.601477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.601477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 569531,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.601514Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.601514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227293,\n        \"price\": 4143,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.625259Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.625259Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60000,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.662033Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.653Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2040,\n        \"price\": 4111.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.686970Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 238148,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.690165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.690165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4071.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.693766Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.679Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4069,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.699125Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138817,\n        \"price\": 3976.5,\n      },\n      {\n        \"amount\": 671991,\n        \"price\": 3965,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.714993Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.714993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 290,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.719973Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185297,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.722830Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.722830Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68000,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.728828Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4010,\n        \"price\": 4035,\n      },\n      {\n        \"amount\": 13060,\n        \"price\": 4034,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.739375Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63900,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.740446Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.730Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 492121,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.768009Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.768009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2000,\n        \"price\": 4066.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.776858Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.764Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 701119,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 298006,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.807339Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.807339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10000,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 32740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.817501Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.806Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 90700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 79010,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.820051Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 70700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 99010,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.823097Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.813Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 369000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 61380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.826247Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 42740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.828927Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 55700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 114010,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.830044Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 220758,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.831272Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.831272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 35700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 134010,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.836978Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 81380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.840808Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 880,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 52740,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.855239Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7710,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.859623Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.850Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 154010,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.868926Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 329000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 255100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.871492Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 42740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 17710,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.874064Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 134010,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 20700,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.877092Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.867Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61380,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 275100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.879759Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.870Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 58040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.926219Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.917Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 512461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.926685Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.926685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 436473,\n        \"price\": 4038,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.945297Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.945297Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1700,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.954814Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.941Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 700,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.958666Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:56.946Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 226962,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.992242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.992242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177040,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.017130Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.007Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.019636Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.019636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 303514,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.022093Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.022093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 59040,\n        \"price\": 4092.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.045649Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.034Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52270,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 102450,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.058020Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.048Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12700,\n        \"price\": 4096.25,\n      },\n      {\n        \"amount\": 53270,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.060245Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1000,\n        \"price\": 4096.75,\n      },\n      {\n        \"amount\": 7310,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.063123Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.053Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2360,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 40730,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.065494Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1600,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.066665Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.057Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 478440,\n        \"price\": 4007.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.069045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.069045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 306699,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.101023Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.101023Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.107836Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.098Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63930,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.114973Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.104Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32740,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 27710,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.174760Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 73,\n        \"price\": 3,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.187316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.187316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 186220,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.189796Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.189796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 31210,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.208208Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 15000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b9a85ed2-9c67-7069-1737-9bb5a59d0de8\",\n    \"localTimestamp\": 2019-04-01T00:00:57.211572Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.184Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.211608Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.211608Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.211617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.211617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32040,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 76470,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.214648Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 507461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.218875Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.218875Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1831124,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 915762,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 186420,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38791,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156598,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 142168,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 248832,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.224385Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.224385Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 508461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.228475Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.228475Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 523461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.230256Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.230256Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1929164,\n        \"price\": 4146,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.261829Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.261829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 199182,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.272258Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.272258Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20880,\n        \"price\": 4088.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.272495Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.263Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54625,\n        \"price\": 4457,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 262940,\n        \"price\": 3885,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.306337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.306337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 203265,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 216676,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 224817,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 215828,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 1822660,\n        \"price\": 4010,\n      },\n      {\n        \"amount\": 980940,\n        \"price\": 4008.5,\n      },\n      {\n        \"amount\": 429409,\n        \"price\": 4008,\n      },\n      {\n        \"amount\": 414320,\n        \"price\": 4007.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.309233Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.309233Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68030,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.310427Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101450,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 62380,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.320710Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.311Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3340,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3f73f50c-ca4f-2d6c-c74a-c4b51ade690a\",\n    \"localTimestamp\": 2019-04-01T00:00:57.326259Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.300Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1660,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a9989abb-d027-0998-ee7a-84d54f89e728\",\n    \"localTimestamp\": 2019-04-01T00:00:57.326259Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.300Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 518461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.326283Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.326283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1831324,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 915962,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 186620,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38991,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156798,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 142368,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 249032,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.337979Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.337979Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1831524,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 916162,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 186820,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 141165,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 39191,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156998,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 142568,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 249232,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.355289Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.355289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33780,\n        \"price\": 4096.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.381856Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.371Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101600,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.385655Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 200,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.443525Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.434Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67990,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.449313Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.440Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 528461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.466862Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.466862Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63890,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 181140,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.466921Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.457Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 283290,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.468313Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.458Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61340,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 32990,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.469558Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.460Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157803,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.512695Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.512695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 21210,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.523743Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 119010,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 30700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.526399Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 99010,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 50700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.528632Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.519Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 349000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.532361Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.521Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 22040,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.535218Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.524Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84010,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 36210,\n        \"price\": 4087.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.537074Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 64010,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 70700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.539304Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.530Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 14190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 369000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.552422Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.543Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12040,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.561043Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.550Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 55700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 27040,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.563655Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44010,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 75700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.565727Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.556Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 628847,\n        \"price\": 4035,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.612605Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.612605Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 6850,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a2083c96-0704-27b7-8f2e-be63cba73f30\",\n    \"localTimestamp\": 2019-04-01T00:00:57.759740Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.734Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 521611,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.759778Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.759778Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772212,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.759785Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.759785Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 530121,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.770330Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.770330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 378165,\n        \"price\": 4003.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.795560Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.795560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 398446,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.874826Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.874826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 638000,\n        \"price\": 4149,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.905975Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.905975Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.910374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.910374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.053985Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.053985Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 263290,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 389000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.068721Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.559Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 26210,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 37040,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.069952Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.580Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29010,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 147140,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.069960Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.583Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 700,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 49010,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.070428Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.586Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 243290,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 34190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.070651Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.589Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6540,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.093243Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10750,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.101170Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.103636Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.103636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59790,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 185240,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.104196Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 270,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.110192Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.855Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59850,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.110834Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181140,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.114122Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.890Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 55700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 24000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.114131Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.891Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29010,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 75700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.114137Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.893Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 369000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 81340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.114144Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.894Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 60700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 39000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.114222Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.898Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 59000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.114618Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.901Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 52990,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.115398Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.904Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 14190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 121600,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.115792Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.907Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 79000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.116439Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.913Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 329000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 101340,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.116506Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.917Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12700,\n        \"price\": 4088.25,\n      },\n      {\n        \"amount\": 45220,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.124650Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:57.957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 37040,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 38180,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.125091Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 22710,\n        \"price\": 4087.25,\n      },\n      {\n        \"amount\": 41680,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.127469Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 374708,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.128030Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.128030Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772312,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530221,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.150219Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.150219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 38180,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 4380,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.179425Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 92779,\n        \"price\": 4102.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.180992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.180992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 448950,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395254,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.185225Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.185225Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 200,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.190236Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.204412Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.204412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 7359.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.217165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.217165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.222822Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.210Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 424617,\n        \"price\": 4032,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.225876Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.225876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 450,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 29000,\n        \"price\": 4037.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.239121Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.230Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 40700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.262229Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.252Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81340,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 263290,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.265014Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 39000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 60700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.279445Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.270Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61340,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 34190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.281918Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239393,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.302726Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.302726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 24000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 75700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.304246Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4000,\n        \"price\": 4084.75,\n      },\n      {\n        \"amount\": 95700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.308793Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 32990,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 54190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.311814Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777312,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.341041Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.341041Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 525221,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.341073Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.341073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 75700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 49010,\n        \"price\": 4084.25,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.350109Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177040,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 447540,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.361295Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101600,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 283290,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.363535Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 159649,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 256861,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 426764,\n        \"price\": 4010.5,\n      },\n      {\n        \"amount\": 1040623,\n        \"price\": 4008.5,\n      },\n      {\n        \"amount\": 365281,\n        \"price\": 4008,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.386320Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.386320Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 525621,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.412468Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.412468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 162040,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 462540,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.449673Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.438Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 298016,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 186810,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.454654Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.454654Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 299000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 84190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.462668Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.453Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 298021,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 186805,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.483038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.483038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44770,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 177040,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.499357Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.489Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 644732,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 260971,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 774603,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 634499,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.502425Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.502425Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72930,\n        \"price\": 4093.75,\n      },\n      {\n        \"amount\": 329000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.502489Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.492Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 569519,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.507143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.507143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 707020,\n        \"price\": 4055,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.509665Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.509665Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181140,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.511931Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.502Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194055,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.519318Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.519318Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1096979,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 203765,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.534840Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.534840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 303264,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 184818,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.534869Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.534869Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1599341,\n        \"price\": 4152,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.543085Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.543085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 55700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 24000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.584153Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 220,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.588478Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 35700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 44000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.588529Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 29010,\n        \"price\": 4084.25,\n      },\n      {\n        \"amount\": 55700,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.613655Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 304968,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.618470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.618470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 59000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.618970Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.610Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 79000,\n        \"price\": 4084.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.621745Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.612Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.636103Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.636103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 515621,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.638015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.638015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 347050,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.641352Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.641352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 916512,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.660932Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.660932Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248370,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.703553Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.703553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515656,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.800733Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.800733Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 492136,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.812039Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.812039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 256916,\n        \"price\": 4029,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.873290Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.873290Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 62570,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.964051Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.954Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 299000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 114190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.987191Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.977Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 230,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.988630Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.979Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44800,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.995725Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:58.986Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 298006,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.023274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.023274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61710,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.026974Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 269000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.035022Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3520,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.038307Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.029Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4087.75,\n      },\n      {\n        \"amount\": 11700,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.055630Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 634399,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.091056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.091056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8200,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 33500,\n        \"price\": 4087.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.106562Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.121557Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 280,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.342308Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 914882,\n        \"price\": 4155,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.343588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.343588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44780,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.346316Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8327,\n        \"price\": 4397.5,\n      },\n      {\n        \"amount\": 4151098,\n        \"price\": 4200,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.361714Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.361714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 449147,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395057,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.368068Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.368068Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53470,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.385042Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 124190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 52990,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.389078Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.378Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 263290,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 121600,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.400538Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.391Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 243290,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 72990,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.403781Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.394Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78022,\n        \"price\": 4229,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.412652Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.412652Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097979,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.416961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.416961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 104190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 92990,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.435997Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 216688,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.505377Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.505377Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 243312,\n        \"price\": 4137,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.537035Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.537035Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 447540,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 196140,\n        \"price\": 4092.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.550819Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 74190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 299000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.553579Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.543Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44190,\n        \"price\": 4093.25,\n      },\n      {\n        \"amount\": 329000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.555364Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.546Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181140,\n        \"price\": 4092.25,\n      },\n      {\n        \"amount\": 59780,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.558013Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.549Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 14190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.569657Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 299000,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 102930,\n        \"price\": 4093.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.572182Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194479,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 449359,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 303788,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 216950,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 569781,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.601576Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.601576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 205725,\n        \"price\": 4062.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.605766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.605766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305788,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 182818,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.605788Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.605788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 450075,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 394341,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.643632Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.643632Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.661417Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.661417Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51840,\n        \"price\": 4089.25,\n      },\n      {\n        \"amount\": 64090,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.673977Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.664Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 175000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 80560,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.675542Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 9860,\n        \"price\": 4083.75,\n      },\n      {\n        \"amount\": 32670,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.677406Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72,\n        \"price\": 4,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 3,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.687757Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.687757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 424639,\n        \"price\": 4026,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.695123Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.695123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 453298,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 391118,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.699325Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.699325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 454644,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 389772,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.701595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.701595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 250,\n        \"price\": 4090.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.703505Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.694Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136724,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.708713Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.708713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 329000,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.711815Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107600,\n        \"price\": 4076.25,\n      },\n      {\n        \"amount\": 83800,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.711859Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59770,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.711955Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 456178,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 388238,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.781528Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.781528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72990,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 34190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.787044Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.775Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52990,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 263290,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.808351Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 34090,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 110560,\n        \"price\": 4088.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.823128Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.813Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101600,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 283290,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.833706Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 32990,\n        \"price\": 4094.25,\n      },\n      {\n        \"amount\": 54190,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.845085Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:59.832Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 323295,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 149031,\n        \"price\": 4188.5,\n      },\n      {\n        \"amount\": 601859,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 75622,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 1677064,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 272526,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 694708,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 445371,\n        \"price\": 4118.5,\n      },\n      {\n        \"amount\": 475343,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 246327,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 774553,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 594807,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 701079,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 298041,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1097939,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 203805,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 569731,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 168596,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 243150,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 209460,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 95794,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 124466,\n        \"price\": 4058.5,\n      },\n      {\n        \"amount\": 315700,\n        \"price\": 4049,\n      },\n      {\n        \"amount\": 47688,\n        \"price\": 4048.5,\n      },\n      {\n        \"amount\": 541896,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 141814,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 280235,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 39691,\n        \"price\": 3988.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.870766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.870766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1149,\n        \"price\": 4416,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.883568Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.883568Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 218796,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 225114,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 422308,\n        \"price\": 4010.5,\n      },\n      {\n        \"amount\": 1045076,\n        \"price\": 4008.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.896843Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.896843Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 647459,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.908243Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.908243Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n"
  },
  {
    "path": "test/__snapshots__/compute.test.ts.snap",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`compute(messages, types) should compute correct trade bars based on provided messages 1`] = `\n[\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"asd\",\n    \"localTimestamp\": 2019-08-01T00:00:00.132Z,\n    \"price\": 1000,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:00.132Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"sadasd\",\n    \"localTimestamp\": 2019-08-01T00:01:00.132Z,\n    \"price\": 1000,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:01:00.000Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 200,\n    \"close\": 1000,\n    \"closeTimestamp\": 2019-08-01T00:00:00.132Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 1000,\n    \"interval\": 60000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-08-01T00:01:00.132Z,\n    \"low\": 1000,\n    \"name\": \"trade_bar_1_minute\",\n    \"open\": 1000,\n    \"openTimestamp\": 2019-08-01T00:00:00.132Z,\n    \"sellVolume\": 0,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:01:00.000Z,\n    \"trades\": 1,\n    \"type\": \"trade_bar\",\n    \"volume\": 200,\n    \"vwap\": 1000,\n  },\n  {\n    \"buyVolume\": 2200,\n    \"close\": 1000,\n    \"closeTimestamp\": 2019-08-01T00:01:00.000Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 1000,\n    \"interval\": 2,\n    \"kind\": \"tick\",\n    \"localTimestamp\": 2019-08-01T00:01:00.132Z,\n    \"low\": 1000,\n    \"name\": \"trade_bar_2ticks\",\n    \"open\": 1000,\n    \"openTimestamp\": 2019-08-01T00:00:00.132Z,\n    \"sellVolume\": 0,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:01:00.000Z,\n    \"trades\": 2,\n    \"type\": \"trade_bar\",\n    \"volume\": 2200,\n    \"vwap\": 1000,\n  },\n  {\n    \"buyVolume\": 2200,\n    \"close\": 1000,\n    \"closeTimestamp\": 2019-08-01T00:01:00.000Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 1000,\n    \"interval\": 2000,\n    \"kind\": \"volume\",\n    \"localTimestamp\": 2019-08-01T00:01:00.132Z,\n    \"low\": 1000,\n    \"name\": \"trade_bar_2kvol\",\n    \"open\": 1000,\n    \"openTimestamp\": 2019-08-01T00:00:00.132Z,\n    \"sellVolume\": 0,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:01:00.000Z,\n    \"trades\": 2,\n    \"type\": \"trade_bar\",\n    \"volume\": 2200,\n    \"vwap\": 1000,\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"asdssd\",\n    \"localTimestamp\": 2019-08-01T00:01:01.132Z,\n    \"price\": 1005,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:01:01.000Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"asddfssd\",\n    \"localTimestamp\": 2019-08-01T00:01:02.132Z,\n    \"price\": 1015,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:01:02.000Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 2000,\n    \"close\": 1015,\n    \"closeTimestamp\": 2019-08-01T00:01:02.000Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 1015,\n    \"interval\": 2,\n    \"kind\": \"tick\",\n    \"localTimestamp\": 2019-08-01T00:01:02.132Z,\n    \"low\": 1005,\n    \"name\": \"trade_bar_2ticks\",\n    \"open\": 1005,\n    \"openTimestamp\": 2019-08-01T00:01:01.000Z,\n    \"sellVolume\": 200,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:01:02.000Z,\n    \"trades\": 2,\n    \"type\": \"trade_bar\",\n    \"volume\": 2200,\n    \"vwap\": 1014.0909090909091,\n  },\n  {\n    \"buyVolume\": 2000,\n    \"close\": 1015,\n    \"closeTimestamp\": 2019-08-01T00:01:02.000Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 1015,\n    \"interval\": 2000,\n    \"kind\": \"volume\",\n    \"localTimestamp\": 2019-08-01T00:01:02.132Z,\n    \"low\": 1005,\n    \"name\": \"trade_bar_2kvol\",\n    \"open\": 1005,\n    \"openTimestamp\": 2019-08-01T00:01:01.000Z,\n    \"sellVolume\": 200,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:01:02.000Z,\n    \"trades\": 2,\n    \"type\": \"trade_bar\",\n    \"volume\": 2200,\n    \"vwap\": 1014.0909090909091,\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"sdfc\",\n    \"localTimestamp\": 2019-08-01T00:04:01.132Z,\n    \"price\": 1013,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:04:00.120Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 4000,\n    \"close\": 1015,\n    \"closeTimestamp\": 2019-08-01T00:01:02.000Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 1015,\n    \"interval\": 60000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-08-01T00:04:01.132Z,\n    \"low\": 1000,\n    \"name\": \"trade_bar_1_minute\",\n    \"open\": 1000,\n    \"openTimestamp\": 2019-08-01T00:01:00.000Z,\n    \"sellVolume\": 200,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:02:00.000Z,\n    \"trades\": 3,\n    \"type\": \"trade_bar\",\n    \"volume\": 4200,\n    \"vwap\": 1007.3809523809524,\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"sdfsdfc\",\n    \"localTimestamp\": 2019-08-01T00:06:01.132Z,\n    \"price\": 1010,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:06:00.100Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 200,\n    \"close\": 1013,\n    \"closeTimestamp\": 2019-08-01T00:04:00.120Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 1013,\n    \"interval\": 60000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-08-01T00:06:01.132Z,\n    \"low\": 1013,\n    \"name\": \"trade_bar_1_minute\",\n    \"open\": 1013,\n    \"openTimestamp\": 2019-08-01T00:04:00.120Z,\n    \"sellVolume\": 0,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:05:00.000Z,\n    \"trades\": 1,\n    \"type\": \"trade_bar\",\n    \"volume\": 200,\n    \"vwap\": 1013,\n  },\n  {\n    \"buyVolume\": 200,\n    \"close\": 1010,\n    \"closeTimestamp\": 2019-08-01T00:06:00.100Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 1013,\n    \"interval\": 2,\n    \"kind\": \"tick\",\n    \"localTimestamp\": 2019-08-01T00:06:01.132Z,\n    \"low\": 1010,\n    \"name\": \"trade_bar_2ticks\",\n    \"open\": 1013,\n    \"openTimestamp\": 2019-08-01T00:04:00.120Z,\n    \"sellVolume\": 2000,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:06:00.100Z,\n    \"trades\": 2,\n    \"type\": \"trade_bar\",\n    \"volume\": 2200,\n    \"vwap\": 1010.2727272727273,\n  },\n  {\n    \"buyVolume\": 200,\n    \"close\": 1010,\n    \"closeTimestamp\": 2019-08-01T00:06:00.100Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 1013,\n    \"interval\": 2000,\n    \"kind\": \"volume\",\n    \"localTimestamp\": 2019-08-01T00:06:01.132Z,\n    \"low\": 1010,\n    \"name\": \"trade_bar_2kvol\",\n    \"open\": 1013,\n    \"openTimestamp\": 2019-08-01T00:04:00.120Z,\n    \"sellVolume\": 2000,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:06:00.100Z,\n    \"trades\": 2,\n    \"type\": \"trade_bar\",\n    \"volume\": 2200,\n    \"vwap\": 1010.2727272727273,\n  },\n]\n`;\n\nexports[`compute(messages, types) should compute requested types based on replayNormalized iterables 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1830,\n        \"price\": 1000000,\n      },\n      {\n        \"amount\": 245,\n        \"price\": 999999,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 999998,\n      },\n      {\n        \"amount\": 214,\n        \"price\": 406504.5,\n      },\n      {\n        \"amount\": 2008,\n        \"price\": 403226,\n      },\n      {\n        \"amount\": 1203,\n        \"price\": 401606.5,\n      },\n      {\n        \"amount\": 102,\n        \"price\": 400000,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 351450,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 320919,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 250000,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 199999,\n      },\n      {\n        \"amount\": 6800,\n        \"price\": 141250,\n      },\n      {\n        \"amount\": 127,\n        \"price\": 100000,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 88888,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 80000,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 71175,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 71045,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 66494,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 64758.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 63225,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 61317,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 58800,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 52000,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 50000,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 49789,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 46450.5,\n      },\n      {\n        \"amount\": 55000,\n        \"price\": 44556,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 43190,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 41200,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 40825,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 40700,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 40332,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 40170.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 40094.5,\n      },\n      {\n        \"amount\": 10931,\n        \"price\": 40013.5,\n      },\n      {\n        \"amount\": 4302,\n        \"price\": 40000,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 39520,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 38873,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 38500,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 38305,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 38222,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 37638.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 37050,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 36250,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 36012,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 35000,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 34900,\n      },\n      {\n        \"amount\": 279960,\n        \"price\": 34850,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 34505,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 34038.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 34008,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 33328,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 31505,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 30000,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 26019,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 24000,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 20658,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 20450,\n      },\n      {\n        \"amount\": 100071,\n        \"price\": 20000,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 19888,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 19667,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 19664,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 19400,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 19389,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 19386,\n      },\n      {\n        \"amount\": 95000,\n        \"price\": 19000,\n      },\n      {\n        \"amount\": 8700,\n        \"price\": 18844,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 18700,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 18620,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 18400,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 18256,\n      },\n      {\n        \"amount\": 90040,\n        \"price\": 18000,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 17980,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 17896,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 17800,\n      },\n      {\n        \"amount\": 1772,\n        \"price\": 17716,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 17650,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 17535.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 17476,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 17453.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 17438.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 17433,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 17431,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 17400,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 17146,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 17050,\n      },\n      {\n        \"amount\": 85050,\n        \"price\": 17000,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 16950,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 16910,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 16900,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 16877,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 16850,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 16846,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 16446,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 16400,\n      },\n      {\n        \"amount\": 148,\n        \"price\": 16340,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 16310,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 16298,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 16294,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 16292,\n      },\n      {\n        \"amount\": 1611,\n        \"price\": 16105,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 16046,\n      },\n      {\n        \"amount\": 82000,\n        \"price\": 16000,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 15766,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 15760,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 15679,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 15660,\n      },\n      {\n        \"amount\": 7,\n        \"price\": 15555,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 15500,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 15496,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 15466,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 15400,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 15321.5,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 15295.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 15230,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 15136,\n      },\n      {\n        \"amount\": 431262,\n        \"price\": 15000,\n      },\n      {\n        \"amount\": 43,\n        \"price\": 14894,\n      },\n      {\n        \"amount\": 48,\n        \"price\": 14850,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 14822,\n      },\n      {\n        \"amount\": 1465,\n        \"price\": 14641,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 14500,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 14471.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 14447,\n      },\n      {\n        \"amount\": 5040,\n        \"price\": 14400,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 14388,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 14242,\n      },\n      {\n        \"amount\": 329,\n        \"price\": 14000,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 13987,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 13890,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 13647,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 13556.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 13400,\n      },\n      {\n        \"amount\": 1332,\n        \"price\": 13310,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 13250,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 13214,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 13200,\n      },\n      {\n        \"amount\": 150500,\n        \"price\": 13000,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 12979.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 12877,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 12820.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 12760,\n      },\n      {\n        \"amount\": 631,\n        \"price\": 12613,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 12547,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 12500,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 12400,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 12200,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 12192.5,\n      },\n      {\n        \"amount\": 1211,\n        \"price\": 12100,\n      },\n      {\n        \"amount\": 15848,\n        \"price\": 12000,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 11944,\n      },\n      {\n        \"amount\": 48,\n        \"price\": 11900,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 11890,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 11879,\n      },\n      {\n        \"amount\": 5162,\n        \"price\": 11876,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 11848.5,\n      },\n      {\n        \"amount\": 5348,\n        \"price\": 11800,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 11778.5,\n      },\n      {\n        \"amount\": 8189,\n        \"price\": 11777,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 11750,\n      },\n      {\n        \"amount\": 35148,\n        \"price\": 11700,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 11644,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 11605,\n      },\n      {\n        \"amount\": 348,\n        \"price\": 11600,\n      },\n      {\n        \"amount\": 1159,\n        \"price\": 11583,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 11582,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 11518,\n      },\n      {\n        \"amount\": 48548,\n        \"price\": 11500,\n      },\n      {\n        \"amount\": 348,\n        \"price\": 11400,\n      },\n      {\n        \"amount\": 48,\n        \"price\": 11300,\n      },\n      {\n        \"amount\": 50650,\n        \"price\": 11290,\n      },\n      {\n        \"amount\": 29,\n        \"price\": 11248.5,\n      },\n      {\n        \"amount\": 11000,\n        \"price\": 11209,\n      },\n      {\n        \"amount\": 348,\n        \"price\": 11200,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 11183,\n      },\n      {\n        \"amount\": 48,\n        \"price\": 11100,\n      },\n      {\n        \"amount\": 41308,\n        \"price\": 11000,\n      },\n      {\n        \"amount\": 28,\n        \"price\": 10968.5,\n      },\n      {\n        \"amount\": 80048,\n        \"price\": 10900,\n      },\n      {\n        \"amount\": 28,\n        \"price\": 10868.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 10815,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 10744,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 10712,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 10700,\n      },\n      {\n        \"amount\": 27,\n        \"price\": 10698.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 10625,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 10621,\n      },\n      {\n        \"amount\": 27,\n        \"price\": 10488.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 10444,\n      },\n      {\n        \"amount\": 1043,\n        \"price\": 10424,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 10368,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 10300,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 10250,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 10247,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 10168,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 10077,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 10075,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 10030,\n      },\n      {\n        \"amount\": 62863,\n        \"price\": 10000,\n      },\n      {\n        \"amount\": 274,\n        \"price\": 9995.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9990,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 9988.5,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 9987,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 9978,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 9964,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9940,\n      },\n      {\n        \"amount\": 125,\n        \"price\": 9906,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 9903,\n      },\n      {\n        \"amount\": 990,\n        \"price\": 9900,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 9890,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 9889,\n      },\n      {\n        \"amount\": 4180,\n        \"price\": 9850,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 9827,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 9800,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 9790,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 9788,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 9750,\n      },\n      {\n        \"amount\": 974,\n        \"price\": 9734,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 9722,\n      },\n      {\n        \"amount\": 32290,\n        \"price\": 9700,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 9697,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 9690,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 9685,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 9661,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 9650,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 9644.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 9629.5,\n      },\n      {\n        \"amount\": 1800,\n        \"price\": 9600,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 9590,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 9551.5,\n      },\n      {\n        \"amount\": 10590,\n        \"price\": 9500,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9499.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 9483.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 9471,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 9450,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 9439,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9416.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9415.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9415,\n      },\n      {\n        \"amount\": 86,\n        \"price\": 9402,\n      },\n      {\n        \"amount\": 501,\n        \"price\": 9400,\n      },\n      {\n        \"amount\": 202,\n        \"price\": 9399,\n      },\n      {\n        \"amount\": 2710,\n        \"price\": 9380,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 9348,\n      },\n      {\n        \"amount\": 467,\n        \"price\": 9330,\n      },\n      {\n        \"amount\": 125,\n        \"price\": 9326,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 9300,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 9291,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 9244,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 9243,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 9205,\n      },\n      {\n        \"amount\": 202,\n        \"price\": 9199.5,\n      },\n      {\n        \"amount\": 460,\n        \"price\": 9196,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 9182,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 9175,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 9100,\n      },\n      {\n        \"amount\": 1454,\n        \"price\": 9079,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 9044.5,\n      },\n      {\n        \"amount\": 452,\n        \"price\": 9040,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 9021,\n      },\n      {\n        \"amount\": 17540,\n        \"price\": 9000,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 8999,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8990,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 8988,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8973,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8950,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 8946.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 8920,\n      },\n      {\n        \"amount\": 13650,\n        \"price\": 8906.5,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 8899,\n      },\n      {\n        \"amount\": 20800,\n        \"price\": 8888,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 8879,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 8869,\n      },\n      {\n        \"amount\": 4050,\n        \"price\": 8850,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 8848,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 8804.5,\n      },\n      {\n        \"amount\": 1470,\n        \"price\": 8799,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 8767,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 8758,\n      },\n      {\n        \"amount\": 310,\n        \"price\": 8750,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8706,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8700,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 8699,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8647.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8644,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8631,\n      },\n      {\n        \"amount\": 125,\n        \"price\": 8626,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 8600,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 8599,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 8588,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8567,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 8539.5,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 8516.5,\n      },\n      {\n        \"amount\": 1332,\n        \"price\": 8512.5,\n      },\n      {\n        \"amount\": 11100,\n        \"price\": 8500,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 8499,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8481,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8479,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 8459,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 8450,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8449,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 8444,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8427,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8425,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 8421.5,\n      },\n      {\n        \"amount\": 2541,\n        \"price\": 8400,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8399,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 8397,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 8377.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 8362.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8357.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8350,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 8349,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8344,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8306,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8300,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8299,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 8261.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 8250,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8249,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 8215,\n      },\n      {\n        \"amount\": 2940,\n        \"price\": 8200,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8199,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 8175,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 8172,\n      },\n      {\n        \"amount\": 679,\n        \"price\": 8155,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8149.5,\n      },\n      {\n        \"amount\": 1206,\n        \"price\": 8149,\n      },\n      {\n        \"amount\": 1919,\n        \"price\": 8147,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8146.5,\n      },\n      {\n        \"amount\": 3034,\n        \"price\": 8146,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 8113.5,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 8113,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 8106.5,\n      },\n      {\n        \"amount\": 1350,\n        \"price\": 8100,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8099,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 8049,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 8044,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 8033,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 8023,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 8017.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 8010,\n      },\n      {\n        \"amount\": 32201,\n        \"price\": 8000,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7999,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7994,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7990,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 7988,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 7975,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7973,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 7950,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7949,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7941.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7928.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7923,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 7913,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7901,\n      },\n      {\n        \"amount\": 3680,\n        \"price\": 7900,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7899,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 7885,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 7875.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7873,\n      },\n      {\n        \"amount\": 1195,\n        \"price\": 7866.5,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 7865,\n      },\n      {\n        \"amount\": 2020,\n        \"price\": 7850,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7849,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7823,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 7806,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7800.5,\n      },\n      {\n        \"amount\": 366870,\n        \"price\": 7800,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7799,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7790.5,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 7788,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 7778,\n      },\n      {\n        \"amount\": 1111,\n        \"price\": 7777,\n      },\n      {\n        \"amount\": 650,\n        \"price\": 7767.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 7763,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7758.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7750,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 7749,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7744,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7736,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7731,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7700.5,\n      },\n      {\n        \"amount\": 5337,\n        \"price\": 7700,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 7699,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 7688,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 7685,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7680,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 7655,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 7650,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7649,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 7646,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7600.5,\n      },\n      {\n        \"amount\": 2370,\n        \"price\": 7600,\n      },\n      {\n        \"amount\": 3800,\n        \"price\": 7599,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 7596,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 7595,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7576,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7565.5,\n      },\n      {\n        \"amount\": 1213,\n        \"price\": 7563.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7562.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7550.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7549,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7548.5,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 7546,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 7525.5,\n      },\n      {\n        \"amount\": 245,\n        \"price\": 7524,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7506.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7500.5,\n      },\n      {\n        \"amount\": 26658,\n        \"price\": 7500,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 7499,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 7498,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 7495,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 7490,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 7480,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 7479,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 7471.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 7468,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 7464,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 7458.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7450.5,\n      },\n      {\n        \"amount\": 5020,\n        \"price\": 7450,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 7449,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 7446,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7444,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 7443,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 7430,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 7424,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 7420,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7400.5,\n      },\n      {\n        \"amount\": 149390,\n        \"price\": 7400,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7399.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7399,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7397.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7395.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7395,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 7393,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 7390,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7387,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7384,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 7380,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7376,\n      },\n      {\n        \"amount\": 2216,\n        \"price\": 7375.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7350.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7350,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7349,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 7343.5,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 7333,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 7324,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7300.5,\n      },\n      {\n        \"amount\": 470,\n        \"price\": 7300,\n      },\n      {\n        \"amount\": 7400,\n        \"price\": 7299,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7297,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 7288,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 7280,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7276,\n      },\n      {\n        \"amount\": 1232,\n        \"price\": 7273,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 7260,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7250.5,\n      },\n      {\n        \"amount\": 4320,\n        \"price\": 7250,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7249,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7248,\n      },\n      {\n        \"amount\": 10020,\n        \"price\": 7236,\n      },\n      {\n        \"amount\": 75100,\n        \"price\": 7200.5,\n      },\n      {\n        \"amount\": 1420,\n        \"price\": 7200,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7199,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7197,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7195,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7190,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 7185.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7176,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7175,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 7167,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7166,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7150.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7149,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 7144,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 7133,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7132,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 7109.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7100.5,\n      },\n      {\n        \"amount\": 1630,\n        \"price\": 7100,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7099,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 7090,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7077.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 7060,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 7050.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 7050,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 7049,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 7029,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 7028,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 7021,\n      },\n      {\n        \"amount\": 1075,\n        \"price\": 7020,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 7000.5,\n      },\n      {\n        \"amount\": 3055,\n        \"price\": 7000,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6999,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 6996,\n      },\n      {\n        \"amount\": 1008,\n        \"price\": 6995,\n      },\n      {\n        \"amount\": 1251,\n        \"price\": 6993,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6991,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6990,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 6985,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 6984,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 6980,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6975,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6968,\n      },\n      {\n        \"amount\": 139,\n        \"price\": 6967,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 6958,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6950.5,\n      },\n      {\n        \"amount\": 4050,\n        \"price\": 6950,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6949,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6948,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6945,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6944,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6940,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6930,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6926,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6925,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 6924,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6919,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 6913,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6909,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6907.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6902,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6900.5,\n      },\n      {\n        \"amount\": 2379,\n        \"price\": 6900,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 6899.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6899,\n      },\n      {\n        \"amount\": 1008,\n        \"price\": 6895,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 6889,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 6888,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6887.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6880.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6880,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6879,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6875,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6874.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6874,\n      },\n      {\n        \"amount\": 9025,\n        \"price\": 6870,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6869,\n      },\n      {\n        \"amount\": 88,\n        \"price\": 6868,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6862.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6852,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6850.5,\n      },\n      {\n        \"amount\": 820,\n        \"price\": 6850,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6849,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6846.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6845,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6837.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6834.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6830,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 6829.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6825,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6824,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6820,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6818,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6812.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6809.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 6807.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6806,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6804,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6802,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6800.5,\n      },\n      {\n        \"amount\": 4559,\n        \"price\": 6800,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6799,\n      },\n      {\n        \"amount\": 385,\n        \"price\": 6798,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6796.5,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 6796,\n      },\n      {\n        \"amount\": 8,\n        \"price\": 6795,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 6788,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6787.5,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 6787,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6786,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6783,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6780,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6777,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6775,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6768,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6764.5,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 6764,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6762.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 6762,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6759.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6753,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6750.5,\n      },\n      {\n        \"amount\": 4285,\n        \"price\": 6750,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6749,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6745,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6744,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6742,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 6740,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6738,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6737.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6737,\n      },\n      {\n        \"amount\": 756,\n        \"price\": 6735,\n      },\n      {\n        \"amount\": 206,\n        \"price\": 6725,\n      },\n      {\n        \"amount\": 1270,\n        \"price\": 6724,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6723.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6723,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6715,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6714,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6712.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6711.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6710,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6709.5,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 6708.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6708,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6707,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6700.5,\n      },\n      {\n        \"amount\": 6430,\n        \"price\": 6700,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6699,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6695,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6693,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6691,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6690,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6687.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6682.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6681.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6678,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 6675.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6675,\n      },\n      {\n        \"amount\": 1320,\n        \"price\": 6670,\n      },\n      {\n        \"amount\": 12266,\n        \"price\": 6666,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 6665,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6664.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6663,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6662.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 6660,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6659.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6658,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6657,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6656,\n      },\n      {\n        \"amount\": 970,\n        \"price\": 6654,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6650.5,\n      },\n      {\n        \"amount\": 1330,\n        \"price\": 6650,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6649,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6648,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6645,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6637.5,\n      },\n      {\n        \"amount\": 88,\n        \"price\": 6637,\n      },\n      {\n        \"amount\": 135,\n        \"price\": 6636,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6633,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6632,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6630,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 6625.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6625,\n      },\n      {\n        \"amount\": 370,\n        \"price\": 6620,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6618,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6617,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6615,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6612.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6611,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6609.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6607,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6603.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6603,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6600.5,\n      },\n      {\n        \"amount\": 3880,\n        \"price\": 6600,\n      },\n      {\n        \"amount\": 2384,\n        \"price\": 6599,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6598,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6592.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 6590,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6589.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6588,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6587.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6587,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6581.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6580.5,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 6580,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 6578,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 6575.5,\n      },\n      {\n        \"amount\": 200050,\n        \"price\": 6575,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6573,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6567.5,\n      },\n      {\n        \"amount\": 10100,\n        \"price\": 6564.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6562,\n      },\n      {\n        \"amount\": 1830,\n        \"price\": 6560,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6558,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6555,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6554,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6553.5,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 6550,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6549,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 6548,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6545,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6544.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6544,\n      },\n      {\n        \"amount\": 341,\n        \"price\": 6543,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6542.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6541,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6540,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6537,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6534,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6531.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6530,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6528,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 6527,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6526.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6525,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6524.5,\n      },\n      {\n        \"amount\": 971,\n        \"price\": 6520,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6514,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6513,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6512.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 6510,\n      },\n      {\n        \"amount\": 2150,\n        \"price\": 6507.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6504.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6504,\n      },\n      {\n        \"amount\": 4106,\n        \"price\": 6500,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6499,\n      },\n      {\n        \"amount\": 18285,\n        \"price\": 6498,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6495,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6491.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6490,\n      },\n      {\n        \"amount\": 465,\n        \"price\": 6488,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6487.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 6485,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6484.5,\n      },\n      {\n        \"amount\": 21869,\n        \"price\": 6483,\n      },\n      {\n        \"amount\": 3513,\n        \"price\": 6482,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 6480,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 6479,\n      },\n      {\n        \"amount\": 1691,\n        \"price\": 6477,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6475,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6474,\n      },\n      {\n        \"amount\": 170,\n        \"price\": 6470,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6468,\n      },\n      {\n        \"amount\": 1289,\n        \"price\": 6465.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6464.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6462.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6460,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6454,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6453,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6452,\n      },\n      {\n        \"amount\": 640,\n        \"price\": 6450,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6449,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6445,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6444.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6440,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6438.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6438,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6437.5,\n      },\n      {\n        \"amount\": 210,\n        \"price\": 6430,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6427,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6425,\n      },\n      {\n        \"amount\": 11584,\n        \"price\": 6424.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6424,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6423,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6421.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 6420,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6412.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 6410,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6408,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6404.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6404,\n      },\n      {\n        \"amount\": 34160,\n        \"price\": 6400,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6399,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6393,\n      },\n      {\n        \"amount\": 2340,\n        \"price\": 6390,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6389,\n      },\n      {\n        \"amount\": 8600,\n        \"price\": 6388,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6384.5,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 6383.5,\n      },\n      {\n        \"amount\": 290,\n        \"price\": 6380,\n      },\n      {\n        \"amount\": 989,\n        \"price\": 6378.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6378,\n      },\n      {\n        \"amount\": 161,\n        \"price\": 6375,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 6370,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6366.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6366,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6364.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6363,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6360.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 6360,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6359,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 6357.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6354,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 6350,\n      },\n      {\n        \"amount\": 114,\n        \"price\": 6348.5,\n      },\n      {\n        \"amount\": 808,\n        \"price\": 6348,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6347.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6346.5,\n      },\n      {\n        \"amount\": 114,\n        \"price\": 6346,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6345.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6345,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6344.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6343.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6341.5,\n      },\n      {\n        \"amount\": 114,\n        \"price\": 6341,\n      },\n      {\n        \"amount\": 114,\n        \"price\": 6339.5,\n      },\n      {\n        \"amount\": 171,\n        \"price\": 6338.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6338,\n      },\n      {\n        \"amount\": 171,\n        \"price\": 6337.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6336,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6334.5,\n      },\n      {\n        \"amount\": 684,\n        \"price\": 6334,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6333,\n      },\n      {\n        \"amount\": 507,\n        \"price\": 6330.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6330,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6328.5,\n      },\n      {\n        \"amount\": 171,\n        \"price\": 6327.5,\n      },\n      {\n        \"amount\": 57,\n        \"price\": 6326.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6325,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6324.5,\n      },\n      {\n        \"amount\": 2656,\n        \"price\": 6323.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6318,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 6317.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6308.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6308,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6304.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6303,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6302,\n      },\n      {\n        \"amount\": 3726,\n        \"price\": 6300,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 6299,\n      },\n      {\n        \"amount\": 49,\n        \"price\": 6297,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6293.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6293,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6292,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6291.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6291,\n      },\n      {\n        \"amount\": 5120,\n        \"price\": 6290,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6289.5,\n      },\n      {\n        \"amount\": 785,\n        \"price\": 6288,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6284.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6283.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 6283,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 6282,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6280,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6279,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6275,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6273,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6272,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6271.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6271,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6270.5,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 6270,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6269,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6268,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6267,\n      },\n      {\n        \"amount\": 10900,\n        \"price\": 6264.5,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6263.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6260,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6259.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6258,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6255.5,\n      },\n      {\n        \"amount\": 1684,\n        \"price\": 6250.5,\n      },\n      {\n        \"amount\": 3550,\n        \"price\": 6250,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6249.5,\n      },\n      {\n        \"amount\": 3096,\n        \"price\": 6249,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 6246,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6244.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6244,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6243,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6240,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6239,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 6233.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6230,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6228,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6225,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6224.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6220,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 6218.5,\n      },\n      {\n        \"amount\": 1309,\n        \"price\": 6217,\n      },\n      {\n        \"amount\": 645,\n        \"price\": 6216,\n      },\n      {\n        \"amount\": 8207,\n        \"price\": 6215,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6214,\n      },\n      {\n        \"amount\": 465,\n        \"price\": 6213,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6211,\n      },\n      {\n        \"amount\": 4160,\n        \"price\": 6210,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6209.5,\n      },\n      {\n        \"amount\": 766,\n        \"price\": 6205,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6204.5,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 6204,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 6202,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6201,\n      },\n      {\n        \"amount\": 70395,\n        \"price\": 6200,\n      },\n      {\n        \"amount\": 281,\n        \"price\": 6199,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6198,\n      },\n      {\n        \"amount\": 470,\n        \"price\": 6197.5,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6195,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6192.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6191.5,\n      },\n      {\n        \"amount\": 2240,\n        \"price\": 6190,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 6189,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6188,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6184.5,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6183.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6183,\n      },\n      {\n        \"amount\": 3450,\n        \"price\": 6182.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6182,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6181.5,\n      },\n      {\n        \"amount\": 440,\n        \"price\": 6180,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6178.5,\n      },\n      {\n        \"amount\": 75,\n        \"price\": 6175,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6170,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6168,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6160,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6153,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 6152,\n      },\n      {\n        \"amount\": 1450,\n        \"price\": 6150,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6145,\n      },\n      {\n        \"amount\": 73,\n        \"price\": 6144,\n      },\n      {\n        \"amount\": 640,\n        \"price\": 6140,\n      },\n      {\n        \"amount\": 485,\n        \"price\": 6138,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6134.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6133.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6133,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6131,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6130,\n      },\n      {\n        \"amount\": 163,\n        \"price\": 6128,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6125,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6123,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 6121,\n      },\n      {\n        \"amount\": 160,\n        \"price\": 6120,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6118.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 6118,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6117.5,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6113,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6110,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6108,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 6105,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6103,\n      },\n      {\n        \"amount\": 3062,\n        \"price\": 6100,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6093,\n      },\n      {\n        \"amount\": 2164,\n        \"price\": 6090,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6081.5,\n      },\n      {\n        \"amount\": 5140,\n        \"price\": 6080,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6078,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 6077.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6076.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6075.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6075,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 6074.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6070,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 6066.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6063,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6060,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 6056.5,\n      },\n      {\n        \"amount\": 65739,\n        \"price\": 6050,\n      },\n      {\n        \"amount\": 618,\n        \"price\": 6048,\n      },\n      {\n        \"amount\": 49,\n        \"price\": 6047,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 6045,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6043,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 6040,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6033,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 6030,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 6028,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 6025,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 6024,\n      },\n      {\n        \"amount\": 863,\n        \"price\": 6020,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 6018.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6018,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 6017.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 6011.5,\n      },\n      {\n        \"amount\": 640,\n        \"price\": 6010,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 6003.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 6003,\n      },\n      {\n        \"amount\": 29675,\n        \"price\": 6000,\n      },\n      {\n        \"amount\": 9500,\n        \"price\": 5999,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5996,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5994,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 5992,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5991,\n      },\n      {\n        \"amount\": 4465,\n        \"price\": 5990,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5989,\n      },\n      {\n        \"amount\": 9285,\n        \"price\": 5988,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 5986,\n      },\n      {\n        \"amount\": 123,\n        \"price\": 5984.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5984,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5982,\n      },\n      {\n        \"amount\": 1140,\n        \"price\": 5980,\n      },\n      {\n        \"amount\": 1329,\n        \"price\": 5977.5,\n      },\n      {\n        \"amount\": 10700,\n        \"price\": 5977,\n      },\n      {\n        \"amount\": 180000,\n        \"price\": 5976,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5975.5,\n      },\n      {\n        \"amount\": 246,\n        \"price\": 5975,\n      },\n      {\n        \"amount\": 9,\n        \"price\": 5973.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5973,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 5971.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5970,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5968.5,\n      },\n      {\n        \"amount\": 489,\n        \"price\": 5968,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5964,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5960.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5960,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5959.5,\n      },\n      {\n        \"amount\": 2285,\n        \"price\": 5958,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5956,\n      },\n      {\n        \"amount\": 2190,\n        \"price\": 5950,\n      },\n      {\n        \"amount\": 2150,\n        \"price\": 5945,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5944,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5943,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 5942,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5940,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5935,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5928,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5925,\n      },\n      {\n        \"amount\": 105,\n        \"price\": 5921,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 5920.5,\n      },\n      {\n        \"amount\": 540,\n        \"price\": 5920,\n      },\n      {\n        \"amount\": 8202,\n        \"price\": 5916,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5913,\n      },\n      {\n        \"amount\": 3040,\n        \"price\": 5910,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5905.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5902,\n      },\n      {\n        \"amount\": 3957,\n        \"price\": 5901.5,\n      },\n      {\n        \"amount\": 11280,\n        \"price\": 5900,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5898,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5894,\n      },\n      {\n        \"amount\": 2840,\n        \"price\": 5890,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5889,\n      },\n      {\n        \"amount\": 132,\n        \"price\": 5887,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5883,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5880,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 5879,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 5878,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5875,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5874.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5870,\n      },\n      {\n        \"amount\": 735,\n        \"price\": 5868,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 5866,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5865,\n      },\n      {\n        \"amount\": 55,\n        \"price\": 5861.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5860,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5859.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5853,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5852,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5850.5,\n      },\n      {\n        \"amount\": 8250,\n        \"price\": 5850,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5845,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5844,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5843.5,\n      },\n      {\n        \"amount\": 16,\n        \"price\": 5843,\n      },\n      {\n        \"amount\": 325,\n        \"price\": 5841,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 5840.5,\n      },\n      {\n        \"amount\": 5240,\n        \"price\": 5840,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5838,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 5837,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5836.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 5835,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 5834,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5832,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5831,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5830,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5825,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 5824,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 5823.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5823,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5822,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5820,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5819,\n      },\n      {\n        \"amount\": 180,\n        \"price\": 5815,\n      },\n      {\n        \"amount\": 256,\n        \"price\": 5813.5,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 5810,\n      },\n      {\n        \"amount\": 6100,\n        \"price\": 5809.5,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5808,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5806.5,\n      },\n      {\n        \"amount\": 1970,\n        \"price\": 5801.5,\n      },\n      {\n        \"amount\": 130,\n        \"price\": 5801,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5800.5,\n      },\n      {\n        \"amount\": 14425,\n        \"price\": 5800,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 5799,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5796.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5794,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5793,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5792.5,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 5792,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5791,\n      },\n      {\n        \"amount\": 2540,\n        \"price\": 5790,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 5789.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5789,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 5788,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5786,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5785.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5785,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5782,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5781.5,\n      },\n      {\n        \"amount\": 17400,\n        \"price\": 5780,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5779.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 5779,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5778,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5777,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 5775.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5775,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5772,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 5770,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5769,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5766.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5766,\n      },\n      {\n        \"amount\": 305,\n        \"price\": 5763,\n      },\n      {\n        \"amount\": 740,\n        \"price\": 5761.5,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 5760.5,\n      },\n      {\n        \"amount\": 1090,\n        \"price\": 5760,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5756.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 5753.5,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5753,\n      },\n      {\n        \"amount\": 32335,\n        \"price\": 5750,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5749.5,\n      },\n      {\n        \"amount\": 7285,\n        \"price\": 5748,\n      },\n      {\n        \"amount\": 1649,\n        \"price\": 5747.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5745,\n      },\n      {\n        \"amount\": 1315,\n        \"price\": 5744,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5743,\n      },\n      {\n        \"amount\": 2090,\n        \"price\": 5740,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5733,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5732,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5731.5,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5730,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5728,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5727.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5726,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5725,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5722.5,\n      },\n      {\n        \"amount\": 8618,\n        \"price\": 5720,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5719,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5718,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5717.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5715.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5712,\n      },\n      {\n        \"amount\": 7640,\n        \"price\": 5710,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5709.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5707,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5706.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5705,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 5703,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5702.5,\n      },\n      {\n        \"amount\": 37530,\n        \"price\": 5700,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5699,\n      },\n      {\n        \"amount\": 7310,\n        \"price\": 5698,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 5697.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5697,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 5694,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5692,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 5690.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5690,\n      },\n      {\n        \"amount\": 236,\n        \"price\": 5689,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5688,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5687.5,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5687,\n      },\n      {\n        \"amount\": 371,\n        \"price\": 5680,\n      },\n      {\n        \"amount\": 6677,\n        \"price\": 5677,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 5675,\n      },\n      {\n        \"amount\": 2174,\n        \"price\": 5670,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5669.5,\n      },\n      {\n        \"amount\": 313,\n        \"price\": 5667,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 5666,\n      },\n      {\n        \"amount\": 2210,\n        \"price\": 5660,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5657.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5656,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5655.5,\n      },\n      {\n        \"amount\": 11966,\n        \"price\": 5650.5,\n      },\n      {\n        \"amount\": 9885,\n        \"price\": 5650,\n      },\n      {\n        \"amount\": 18700,\n        \"price\": 5649,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5647,\n      },\n      {\n        \"amount\": 675,\n        \"price\": 5645,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 5643.5,\n      },\n      {\n        \"amount\": 190,\n        \"price\": 5640,\n      },\n      {\n        \"amount\": 320,\n        \"price\": 5639.5,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5637,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 5633,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5631.5,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5630,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 5629.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5629,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5628,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5627,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5625,\n      },\n      {\n        \"amount\": 4300,\n        \"price\": 5624.5,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5620,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5619,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5613,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5612.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5612,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5611.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5611,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5610,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5607,\n      },\n      {\n        \"amount\": 1045,\n        \"price\": 5604,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 5602.5,\n      },\n      {\n        \"amount\": 8990,\n        \"price\": 5600,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5599,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5597,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5593,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5592.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5591,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5590,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5589,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 5588,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5587.5,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5587,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5584,\n      },\n      {\n        \"amount\": 10090,\n        \"price\": 5580,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5577,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5576,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5575,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5570.5,\n      },\n      {\n        \"amount\": 190,\n        \"price\": 5570,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5567,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 5564,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5560,\n      },\n      {\n        \"amount\": 28,\n        \"price\": 5558,\n      },\n      {\n        \"amount\": 105,\n        \"price\": 5557,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5555,\n      },\n      {\n        \"amount\": 2777,\n        \"price\": 5554.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5554,\n      },\n      {\n        \"amount\": 18000,\n        \"price\": 5553.5,\n      },\n      {\n        \"amount\": 3745,\n        \"price\": 5553,\n      },\n      {\n        \"amount\": 11966,\n        \"price\": 5550.5,\n      },\n      {\n        \"amount\": 381050,\n        \"price\": 5550,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 5549.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5548,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5547.5,\n      },\n      {\n        \"amount\": 275,\n        \"price\": 5547,\n      },\n      {\n        \"amount\": 35000,\n        \"price\": 5546.5,\n      },\n      {\n        \"amount\": 24650,\n        \"price\": 5545,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 5544,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5540,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5538.5,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 5538,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5537,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 5533,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5530,\n      },\n      {\n        \"amount\": 186,\n        \"price\": 5528.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5528,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5527,\n      },\n      {\n        \"amount\": 1369,\n        \"price\": 5526.5,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 5525,\n      },\n      {\n        \"amount\": 3721,\n        \"price\": 5520,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5518.5,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5517,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5516.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5515,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 5513.5,\n      },\n      {\n        \"amount\": 556,\n        \"price\": 5510,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5509,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5507,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5504.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 5503,\n      },\n      {\n        \"amount\": 100959,\n        \"price\": 5500,\n      },\n      {\n        \"amount\": 780,\n        \"price\": 5499,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5497.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5496.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5496,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5495,\n      },\n      {\n        \"amount\": 180000,\n        \"price\": 5494,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 5490,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 5489,\n      },\n      {\n        \"amount\": 65510,\n        \"price\": 5488,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 5487.5,\n      },\n      {\n        \"amount\": 275,\n        \"price\": 5487,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5485,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 5480,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5478,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5477,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 5475,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5474.5,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 5473,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5470,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5469,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5468.5,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 5466,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 5463,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5462.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5461.5,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 5460,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5458.5,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 5455,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 5454,\n      },\n      {\n        \"amount\": 11966,\n        \"price\": 5450.5,\n      },\n      {\n        \"amount\": 7875,\n        \"price\": 5450,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5449,\n      },\n      {\n        \"amount\": 650,\n        \"price\": 5445,\n      },\n      {\n        \"amount\": 10206,\n        \"price\": 5444,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5443,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5441.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5440,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5439.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5439,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5438,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5437,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5433,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5431.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5430.5,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5430,\n      },\n      {\n        \"amount\": 405,\n        \"price\": 5428,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5425,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5424,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 5421.5,\n      },\n      {\n        \"amount\": 3595,\n        \"price\": 5420,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5419,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5416.5,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 5416,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 5413,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5412.5,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 5410,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 5409.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5406.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5406,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5405,\n      },\n      {\n        \"amount\": 1288,\n        \"price\": 5401,\n      },\n      {\n        \"amount\": 86002,\n        \"price\": 5400,\n      },\n      {\n        \"amount\": 127,\n        \"price\": 5399,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5398,\n      },\n      {\n        \"amount\": 2040,\n        \"price\": 5397.5,\n      },\n      {\n        \"amount\": 60150,\n        \"price\": 5397,\n      },\n      {\n        \"amount\": 165,\n        \"price\": 5395,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5394,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5392,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5390,\n      },\n      {\n        \"amount\": 85900,\n        \"price\": 5389,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5388.5,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 5388,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 5387.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5387,\n      },\n      {\n        \"amount\": 61020,\n        \"price\": 5386.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5385.5,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 5384,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5383,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5382.5,\n      },\n      {\n        \"amount\": 7774,\n        \"price\": 5380,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5379,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5378,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5377.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5375,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5370,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5368,\n      },\n      {\n        \"amount\": 538,\n        \"price\": 5363,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5361,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5360,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5356.5,\n      },\n      {\n        \"amount\": 11966,\n        \"price\": 5350.5,\n      },\n      {\n        \"amount\": 21655,\n        \"price\": 5350,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5348.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5345,\n      },\n      {\n        \"amount\": 1098,\n        \"price\": 5344,\n      },\n      {\n        \"amount\": 501,\n        \"price\": 5342,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5340,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5338.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5335,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5334,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 5333,\n      },\n      {\n        \"amount\": 333,\n        \"price\": 5332.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5331,\n      },\n      {\n        \"amount\": 11090,\n        \"price\": 5330,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 5328.5,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5327.5,\n      },\n      {\n        \"amount\": 4480,\n        \"price\": 5327,\n      },\n      {\n        \"amount\": 338,\n        \"price\": 5325,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5323.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5322,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5321,\n      },\n      {\n        \"amount\": 1090,\n        \"price\": 5320,\n      },\n      {\n        \"amount\": 14,\n        \"price\": 5318,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 5317,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5316,\n      },\n      {\n        \"amount\": 300000,\n        \"price\": 5315,\n      },\n      {\n        \"amount\": 1590,\n        \"price\": 5314,\n      },\n      {\n        \"amount\": 1078,\n        \"price\": 5313,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5312.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 5310,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5308,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 5306.5,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 5305.5,\n      },\n      {\n        \"amount\": 556,\n        \"price\": 5301.5,\n      },\n      {\n        \"amount\": 23225,\n        \"price\": 5300,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5299.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5299,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5298,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5297.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5297,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 5295,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 5294,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5293.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5290,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 5289,\n      },\n      {\n        \"amount\": 20209,\n        \"price\": 5287,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5286,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5283.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5282,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5281,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 5280.5,\n      },\n      {\n        \"amount\": 190,\n        \"price\": 5280,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5279.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5275,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5273.5,\n      },\n      {\n        \"amount\": 1992,\n        \"price\": 5270.5,\n      },\n      {\n        \"amount\": 8500,\n        \"price\": 5270,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5267,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5266,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5264.5,\n      },\n      {\n        \"amount\": 111,\n        \"price\": 5264,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5263.5,\n      },\n      {\n        \"amount\": 3957,\n        \"price\": 5263,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 5260,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5258.5,\n      },\n      {\n        \"amount\": 2630,\n        \"price\": 5258,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5253,\n      },\n      {\n        \"amount\": 37400,\n        \"price\": 5250,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5249,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 5248.5,\n      },\n      {\n        \"amount\": 5538,\n        \"price\": 5248,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5245,\n      },\n      {\n        \"amount\": 16455,\n        \"price\": 5244,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5243,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 5241.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5241,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 5240.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5240,\n      },\n      {\n        \"amount\": 16000,\n        \"price\": 5234.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5230,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5227,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 5226,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5225,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 5224,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5223.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5223,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 5222,\n      },\n      {\n        \"amount\": 13022,\n        \"price\": 5220,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5219,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 5218.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5218,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5216.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5216,\n      },\n      {\n        \"amount\": 618,\n        \"price\": 5214,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5213.5,\n      },\n      {\n        \"amount\": 378,\n        \"price\": 5210,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5206,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 5205.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5205,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5201.5,\n      },\n      {\n        \"amount\": 77866,\n        \"price\": 5200,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5199.5,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 5198,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5196.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5195,\n      },\n      {\n        \"amount\": 88,\n        \"price\": 5194.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5193.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5192.5,\n      },\n      {\n        \"amount\": 10740,\n        \"price\": 5190,\n      },\n      {\n        \"amount\": 1090,\n        \"price\": 5189,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5188.5,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 5188,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 5187.5,\n      },\n      {\n        \"amount\": 72,\n        \"price\": 5185,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5182.5,\n      },\n      {\n        \"amount\": 180,\n        \"price\": 5181,\n      },\n      {\n        \"amount\": 12450,\n        \"price\": 5180,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5179.5,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 5179,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5178,\n      },\n      {\n        \"amount\": 309,\n        \"price\": 5176.5,\n      },\n      {\n        \"amount\": 668,\n        \"price\": 5176,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5175.5,\n      },\n      {\n        \"amount\": 13550,\n        \"price\": 5175,\n      },\n      {\n        \"amount\": 2538,\n        \"price\": 5172,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 5171,\n      },\n      {\n        \"amount\": 690,\n        \"price\": 5170,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5168.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5167,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 5165,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 5163.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5162,\n      },\n      {\n        \"amount\": 7138,\n        \"price\": 5160,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5159,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5158.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5156,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5155.5,\n      },\n      {\n        \"amount\": 930,\n        \"price\": 5153,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5152,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5151.5,\n      },\n      {\n        \"amount\": 64040,\n        \"price\": 5150,\n      },\n      {\n        \"amount\": 18,\n        \"price\": 5149.5,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 5148.5,\n      },\n      {\n        \"amount\": 1604,\n        \"price\": 5147.5,\n      },\n      {\n        \"amount\": 3517,\n        \"price\": 5147,\n      },\n      {\n        \"amount\": 5800,\n        \"price\": 5146,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5145.5,\n      },\n      {\n        \"amount\": 185,\n        \"price\": 5145,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 5144,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5143.5,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 5143,\n      },\n      {\n        \"amount\": 19495,\n        \"price\": 5142,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5140.5,\n      },\n      {\n        \"amount\": 65140,\n        \"price\": 5140,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5139.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5139,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5138,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5137.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 5136,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 5135,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5134,\n      },\n      {\n        \"amount\": 1570,\n        \"price\": 5130,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 5129.5,\n      },\n      {\n        \"amount\": 18,\n        \"price\": 5129,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5128,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5125,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 5124.5,\n      },\n      {\n        \"amount\": 20050,\n        \"price\": 5124,\n      },\n      {\n        \"amount\": 370,\n        \"price\": 5123.5,\n      },\n      {\n        \"amount\": 490,\n        \"price\": 5120,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5119,\n      },\n      {\n        \"amount\": 48,\n        \"price\": 5118,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 5116.5,\n      },\n      {\n        \"amount\": 12500,\n        \"price\": 5114.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 5113.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 5113,\n      },\n      {\n        \"amount\": 13100,\n        \"price\": 5111,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 5110,\n      },\n      {\n        \"amount\": 1412,\n        \"price\": 5109.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 5100.5,\n      },\n      {\n        \"amount\": 143584,\n        \"price\": 5100,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5099.5,\n      },\n      {\n        \"amount\": 6300,\n        \"price\": 5099,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 5096.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5096,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5095,\n      },\n      {\n        \"amount\": 19314,\n        \"price\": 5091,\n      },\n      {\n        \"amount\": 5140,\n        \"price\": 5090,\n      },\n      {\n        \"amount\": 3584,\n        \"price\": 5089.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5089,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5087.5,\n      },\n      {\n        \"amount\": 2250,\n        \"price\": 5087,\n      },\n      {\n        \"amount\": 62000,\n        \"price\": 5086.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5086,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 5084.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5083,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5081.5,\n      },\n      {\n        \"amount\": 9090,\n        \"price\": 5080,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 5079,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5077,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 5075,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5073,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 5071,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 5070,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 5066.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5065,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5062.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 5060,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 5058,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5055,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 5054.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 5054,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5052,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5051.5,\n      },\n      {\n        \"amount\": 12600,\n        \"price\": 5050,\n      },\n      {\n        \"amount\": 3634,\n        \"price\": 5048,\n      },\n      {\n        \"amount\": 17449,\n        \"price\": 5047.5,\n      },\n      {\n        \"amount\": 200100,\n        \"price\": 5045,\n      },\n      {\n        \"amount\": 33700,\n        \"price\": 5043,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5042.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 5041,\n      },\n      {\n        \"amount\": 10325,\n        \"price\": 5040,\n      },\n      {\n        \"amount\": 3010,\n        \"price\": 5038,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5037.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5037,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5034,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 5033,\n      },\n      {\n        \"amount\": 11584,\n        \"price\": 5031.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 5031,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5030.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 5030,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5028.5,\n      },\n      {\n        \"amount\": 1450,\n        \"price\": 5027.5,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 5027,\n      },\n      {\n        \"amount\": 363,\n        \"price\": 5025,\n      },\n      {\n        \"amount\": 616,\n        \"price\": 5023.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 5021.5,\n      },\n      {\n        \"amount\": 1771,\n        \"price\": 5020,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5019.5,\n      },\n      {\n        \"amount\": 4639,\n        \"price\": 5014,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5012.5,\n      },\n      {\n        \"amount\": 2322,\n        \"price\": 5012,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 5011.5,\n      },\n      {\n        \"amount\": 70040,\n        \"price\": 5010,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 5008,\n      },\n      {\n        \"amount\": 44,\n        \"price\": 5005.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 5003.5,\n      },\n      {\n        \"amount\": 4830,\n        \"price\": 5003,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 5002.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 5002,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 5000.5,\n      },\n      {\n        \"amount\": 173618,\n        \"price\": 5000,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4999.5,\n      },\n      {\n        \"amount\": 27345,\n        \"price\": 4999,\n      },\n      {\n        \"amount\": 2110,\n        \"price\": 4998.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 4998,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4997.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4997,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4996,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4995.5,\n      },\n      {\n        \"amount\": 19099,\n        \"price\": 4995,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4994,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 4993,\n      },\n      {\n        \"amount\": 905,\n        \"price\": 4990,\n      },\n      {\n        \"amount\": 3010,\n        \"price\": 4989.5,\n      },\n      {\n        \"amount\": 300100,\n        \"price\": 4989,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4988.5,\n      },\n      {\n        \"amount\": 139288,\n        \"price\": 4988,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4987.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4987,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 4986,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4985,\n      },\n      {\n        \"amount\": 16300,\n        \"price\": 4984,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4983,\n      },\n      {\n        \"amount\": 8732,\n        \"price\": 4982,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4981.5,\n      },\n      {\n        \"amount\": 52179,\n        \"price\": 4980,\n      },\n      {\n        \"amount\": 35,\n        \"price\": 4979,\n      },\n      {\n        \"amount\": 5410,\n        \"price\": 4978,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4977,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4976.5,\n      },\n      {\n        \"amount\": 1361,\n        \"price\": 4975,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 4973.5,\n      },\n      {\n        \"amount\": 3957,\n        \"price\": 4973,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 4970,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4968,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4967.5,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 4966.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4966,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 4965.5,\n      },\n      {\n        \"amount\": 845,\n        \"price\": 4965,\n      },\n      {\n        \"amount\": 10250,\n        \"price\": 4964,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 4963,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4962.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4960.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4960,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4958,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4957,\n      },\n      {\n        \"amount\": 39000,\n        \"price\": 4955,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4953.5,\n      },\n      {\n        \"amount\": 27,\n        \"price\": 4953,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 4951,\n      },\n      {\n        \"amount\": 3984,\n        \"price\": 4950.5,\n      },\n      {\n        \"amount\": 130839,\n        \"price\": 4950,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4949.5,\n      },\n      {\n        \"amount\": 3050,\n        \"price\": 4949,\n      },\n      {\n        \"amount\": 2900,\n        \"price\": 4948,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4947,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 4946,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4945,\n      },\n      {\n        \"amount\": 22288,\n        \"price\": 4944,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4943,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4941.5,\n      },\n      {\n        \"amount\": 3010,\n        \"price\": 4941,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4940.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4940,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 4939.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4938,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 4937,\n      },\n      {\n        \"amount\": 7,\n        \"price\": 4934.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4934,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4933,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4932.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 4931.5,\n      },\n      {\n        \"amount\": 40950,\n        \"price\": 4930,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4928,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4927,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4925.5,\n      },\n      {\n        \"amount\": 7050,\n        \"price\": 4925,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4924,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4923.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 4923,\n      },\n      {\n        \"amount\": 3600,\n        \"price\": 4922.5,\n      },\n      {\n        \"amount\": 12300,\n        \"price\": 4920,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 4919,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 4918,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 4916.5,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 4915.5,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4915,\n      },\n      {\n        \"amount\": 1506,\n        \"price\": 4913,\n      },\n      {\n        \"amount\": 812,\n        \"price\": 4912,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4909.5,\n      },\n      {\n        \"amount\": 49,\n        \"price\": 4909,\n      },\n      {\n        \"amount\": 1480,\n        \"price\": 4908,\n      },\n      {\n        \"amount\": 552,\n        \"price\": 4907.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4907,\n      },\n      {\n        \"amount\": 52,\n        \"price\": 4906.5,\n      },\n      {\n        \"amount\": 468,\n        \"price\": 4906,\n      },\n      {\n        \"amount\": 5700,\n        \"price\": 4905.5,\n      },\n      {\n        \"amount\": 19,\n        \"price\": 4904.5,\n      },\n      {\n        \"amount\": 22316,\n        \"price\": 4903,\n      },\n      {\n        \"amount\": 3890,\n        \"price\": 4902,\n      },\n      {\n        \"amount\": 2061,\n        \"price\": 4901.5,\n      },\n      {\n        \"amount\": 2041,\n        \"price\": 4901,\n      },\n      {\n        \"amount\": 1216,\n        \"price\": 4900.5,\n      },\n      {\n        \"amount\": 989800,\n        \"price\": 4900,\n      },\n      {\n        \"amount\": 16331,\n        \"price\": 4899,\n      },\n      {\n        \"amount\": 577,\n        \"price\": 4898.5,\n      },\n      {\n        \"amount\": 18363,\n        \"price\": 4898,\n      },\n      {\n        \"amount\": 41,\n        \"price\": 4897.5,\n      },\n      {\n        \"amount\": 301,\n        \"price\": 4897,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 4896,\n      },\n      {\n        \"amount\": 2215,\n        \"price\": 4895,\n      },\n      {\n        \"amount\": 171,\n        \"price\": 4894.5,\n      },\n      {\n        \"amount\": 1800,\n        \"price\": 4894,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4893.5,\n      },\n      {\n        \"amount\": 12680,\n        \"price\": 4893,\n      },\n      {\n        \"amount\": 3264,\n        \"price\": 4892.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4892,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4891,\n      },\n      {\n        \"amount\": 6520,\n        \"price\": 4890,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4889.5,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 4889,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 4888.5,\n      },\n      {\n        \"amount\": 24251,\n        \"price\": 4888,\n      },\n      {\n        \"amount\": 1257,\n        \"price\": 4887.5,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4886.5,\n      },\n      {\n        \"amount\": 58,\n        \"price\": 4886,\n      },\n      {\n        \"amount\": 69,\n        \"price\": 4885.5,\n      },\n      {\n        \"amount\": 1203,\n        \"price\": 4885,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4884,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4883,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4881.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4880.5,\n      },\n      {\n        \"amount\": 925,\n        \"price\": 4880,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4879.5,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 4879,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4878.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4876,\n      },\n      {\n        \"amount\": 27066,\n        \"price\": 4875,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4874,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4873,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 4872,\n      },\n      {\n        \"amount\": 10160,\n        \"price\": 4871,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4870,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4869,\n      },\n      {\n        \"amount\": 788,\n        \"price\": 4868,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4867,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4865,\n      },\n      {\n        \"amount\": 2700,\n        \"price\": 4863.5,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 4863,\n      },\n      {\n        \"amount\": 3589,\n        \"price\": 4862,\n      },\n      {\n        \"amount\": 10001,\n        \"price\": 4861.5,\n      },\n      {\n        \"amount\": 4080,\n        \"price\": 4860,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 4859,\n      },\n      {\n        \"amount\": 5700,\n        \"price\": 4858,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 4857.5,\n      },\n      {\n        \"amount\": 1350,\n        \"price\": 4857,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4856.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4855.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4855,\n      },\n      {\n        \"amount\": 3634,\n        \"price\": 4853.5,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 4851,\n      },\n      {\n        \"amount\": 274496,\n        \"price\": 4850,\n      },\n      {\n        \"amount\": 10300,\n        \"price\": 4849.5,\n      },\n      {\n        \"amount\": 11000,\n        \"price\": 4849,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4848.5,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4848,\n      },\n      {\n        \"amount\": 11008,\n        \"price\": 4847,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4846,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 4845.5,\n      },\n      {\n        \"amount\": 2450,\n        \"price\": 4845,\n      },\n      {\n        \"amount\": 2422,\n        \"price\": 4844.5,\n      },\n      {\n        \"amount\": 13010,\n        \"price\": 4844,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 4843,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4842.5,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 4841.5,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 4841,\n      },\n      {\n        \"amount\": 39900,\n        \"price\": 4840,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4839.5,\n      },\n      {\n        \"amount\": 14900,\n        \"price\": 4836.5,\n      },\n      {\n        \"amount\": 5380,\n        \"price\": 4836,\n      },\n      {\n        \"amount\": 100655,\n        \"price\": 4833,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4832.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4830.5,\n      },\n      {\n        \"amount\": 53138,\n        \"price\": 4830,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4828,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4826.5,\n      },\n      {\n        \"amount\": 3020,\n        \"price\": 4826,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4825,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4824,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 4822.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4822,\n      },\n      {\n        \"amount\": 6440,\n        \"price\": 4821.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4821,\n      },\n      {\n        \"amount\": 300650,\n        \"price\": 4820,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4819.5,\n      },\n      {\n        \"amount\": 11008,\n        \"price\": 4819,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4818.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4818,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4817.5,\n      },\n      {\n        \"amount\": 58000,\n        \"price\": 4817,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4816,\n      },\n      {\n        \"amount\": 188,\n        \"price\": 4813.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4812.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4811.5,\n      },\n      {\n        \"amount\": 3428,\n        \"price\": 4810,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4807.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4807,\n      },\n      {\n        \"amount\": 3763,\n        \"price\": 4805.5,\n      },\n      {\n        \"amount\": 3634,\n        \"price\": 4805,\n      },\n      {\n        \"amount\": 68300,\n        \"price\": 4804,\n      },\n      {\n        \"amount\": 100020,\n        \"price\": 4802,\n      },\n      {\n        \"amount\": 770,\n        \"price\": 4800.5,\n      },\n      {\n        \"amount\": 138932,\n        \"price\": 4800,\n      },\n      {\n        \"amount\": 2584,\n        \"price\": 4799.5,\n      },\n      {\n        \"amount\": 19060,\n        \"price\": 4799,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4798.5,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4798,\n      },\n      {\n        \"amount\": 44,\n        \"price\": 4797,\n      },\n      {\n        \"amount\": 3010,\n        \"price\": 4796,\n      },\n      {\n        \"amount\": 865,\n        \"price\": 4795,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 4794,\n      },\n      {\n        \"amount\": 1030,\n        \"price\": 4793,\n      },\n      {\n        \"amount\": 1103,\n        \"price\": 4792,\n      },\n      {\n        \"amount\": 5504,\n        \"price\": 4791,\n      },\n      {\n        \"amount\": 31360,\n        \"price\": 4790,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 4789,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 4788.5,\n      },\n      {\n        \"amount\": 53488,\n        \"price\": 4788,\n      },\n      {\n        \"amount\": 368,\n        \"price\": 4787,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4786.5,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 4786,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4785,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 4784.5,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 4783.5,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 4783,\n      },\n      {\n        \"amount\": 101000,\n        \"price\": 4782,\n      },\n      {\n        \"amount\": 14471,\n        \"price\": 4781.5,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 4780.5,\n      },\n      {\n        \"amount\": 4213,\n        \"price\": 4780,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4778,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4777.5,\n      },\n      {\n        \"amount\": 104650,\n        \"price\": 4777,\n      },\n      {\n        \"amount\": 16550,\n        \"price\": 4776,\n      },\n      {\n        \"amount\": 11929,\n        \"price\": 4775.5,\n      },\n      {\n        \"amount\": 17050,\n        \"price\": 4775,\n      },\n      {\n        \"amount\": 12050,\n        \"price\": 4774,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 4771,\n      },\n      {\n        \"amount\": 850,\n        \"price\": 4770,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 4769.5,\n      },\n      {\n        \"amount\": 1420,\n        \"price\": 4768.5,\n      },\n      {\n        \"amount\": 684,\n        \"price\": 4768,\n      },\n      {\n        \"amount\": 3763,\n        \"price\": 4767,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 4766.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4765,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4763.5,\n      },\n      {\n        \"amount\": 10524,\n        \"price\": 4763,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4762.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4761.5,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 4761,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 4760.5,\n      },\n      {\n        \"amount\": 1150,\n        \"price\": 4760,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 4759,\n      },\n      {\n        \"amount\": 14000,\n        \"price\": 4758,\n      },\n      {\n        \"amount\": 410,\n        \"price\": 4757,\n      },\n      {\n        \"amount\": 3634,\n        \"price\": 4756.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4756,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4755.5,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4755,\n      },\n      {\n        \"amount\": 538,\n        \"price\": 4754,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4753.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4751,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4750.5,\n      },\n      {\n        \"amount\": 555058,\n        \"price\": 4750,\n      },\n      {\n        \"amount\": 14920,\n        \"price\": 4749,\n      },\n      {\n        \"amount\": 3200,\n        \"price\": 4748,\n      },\n      {\n        \"amount\": 3010,\n        \"price\": 4747.5,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 4747,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4746.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4745,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4744.5,\n      },\n      {\n        \"amount\": 41200,\n        \"price\": 4744,\n      },\n      {\n        \"amount\": 40100,\n        \"price\": 4743.5,\n      },\n      {\n        \"amount\": 3824,\n        \"price\": 4741,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4740.5,\n      },\n      {\n        \"amount\": 47040,\n        \"price\": 4740,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4739.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4737.5,\n      },\n      {\n        \"amount\": 60808,\n        \"price\": 4737,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4736.5,\n      },\n      {\n        \"amount\": 25984,\n        \"price\": 4736,\n      },\n      {\n        \"amount\": 180,\n        \"price\": 4735.5,\n      },\n      {\n        \"amount\": 7052,\n        \"price\": 4735,\n      },\n      {\n        \"amount\": 89100,\n        \"price\": 4734,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 4733.5,\n      },\n      {\n        \"amount\": 5025,\n        \"price\": 4733,\n      },\n      {\n        \"amount\": 130872,\n        \"price\": 4732,\n      },\n      {\n        \"amount\": 33046,\n        \"price\": 4730.5,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4729,\n      },\n      {\n        \"amount\": 6763,\n        \"price\": 4728,\n      },\n      {\n        \"amount\": 65286,\n        \"price\": 4727,\n      },\n      {\n        \"amount\": 1011350,\n        \"price\": 4725,\n      },\n      {\n        \"amount\": 11455,\n        \"price\": 4724,\n      },\n      {\n        \"amount\": 10400,\n        \"price\": 4723.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4722,\n      },\n      {\n        \"amount\": 5270,\n        \"price\": 4721.5,\n      },\n      {\n        \"amount\": 31000,\n        \"price\": 4721,\n      },\n      {\n        \"amount\": 11873,\n        \"price\": 4720,\n      },\n      {\n        \"amount\": 475,\n        \"price\": 4719,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4717.5,\n      },\n      {\n        \"amount\": 101,\n        \"price\": 4717,\n      },\n      {\n        \"amount\": 13664,\n        \"price\": 4716,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4714,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4713,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4712.5,\n      },\n      {\n        \"amount\": 2850,\n        \"price\": 4712,\n      },\n      {\n        \"amount\": 10124,\n        \"price\": 4711.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4711,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4710,\n      },\n      {\n        \"amount\": 1572,\n        \"price\": 4709,\n      },\n      {\n        \"amount\": 11634,\n        \"price\": 4708,\n      },\n      {\n        \"amount\": 2752,\n        \"price\": 4707,\n      },\n      {\n        \"amount\": 40960,\n        \"price\": 4705,\n      },\n      {\n        \"amount\": 384,\n        \"price\": 4704,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 4703.5,\n      },\n      {\n        \"amount\": 23300,\n        \"price\": 4703,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4702,\n      },\n      {\n        \"amount\": 4900,\n        \"price\": 4701,\n      },\n      {\n        \"amount\": 770,\n        \"price\": 4700.5,\n      },\n      {\n        \"amount\": 3125665,\n        \"price\": 4700,\n      },\n      {\n        \"amount\": 7310,\n        \"price\": 4699,\n      },\n      {\n        \"amount\": 8999,\n        \"price\": 4698,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4697.5,\n      },\n      {\n        \"amount\": 101,\n        \"price\": 4697,\n      },\n      {\n        \"amount\": 1300,\n        \"price\": 4696,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4695.5,\n      },\n      {\n        \"amount\": 20600,\n        \"price\": 4695,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4694.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4694,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4692.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4691.5,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 4691,\n      },\n      {\n        \"amount\": 20209,\n        \"price\": 4690,\n      },\n      {\n        \"amount\": 1235,\n        \"price\": 4689.5,\n      },\n      {\n        \"amount\": 15366,\n        \"price\": 4689,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4688.5,\n      },\n      {\n        \"amount\": 94062,\n        \"price\": 4688,\n      },\n      {\n        \"amount\": 1300,\n        \"price\": 4687.5,\n      },\n      {\n        \"amount\": 4787,\n        \"price\": 4686,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 4685,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4684,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 4683,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4682.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4681.5,\n      },\n      {\n        \"amount\": 144000,\n        \"price\": 4680.5,\n      },\n      {\n        \"amount\": 8050,\n        \"price\": 4680,\n      },\n      {\n        \"amount\": 34986,\n        \"price\": 4679,\n      },\n      {\n        \"amount\": 13110,\n        \"price\": 4678.5,\n      },\n      {\n        \"amount\": 2947,\n        \"price\": 4678,\n      },\n      {\n        \"amount\": 2751,\n        \"price\": 4677.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4677,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4676.5,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 4675.5,\n      },\n      {\n        \"amount\": 40905,\n        \"price\": 4675,\n      },\n      {\n        \"amount\": 4660,\n        \"price\": 4673,\n      },\n      {\n        \"amount\": 384,\n        \"price\": 4672,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 4671.5,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 4671,\n      },\n      {\n        \"amount\": 41280,\n        \"price\": 4670,\n      },\n      {\n        \"amount\": 1150,\n        \"price\": 4668,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4667.5,\n      },\n      {\n        \"amount\": 264,\n        \"price\": 4666.5,\n      },\n      {\n        \"amount\": 206030,\n        \"price\": 4666,\n      },\n      {\n        \"amount\": 8200,\n        \"price\": 4665,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 4664,\n      },\n      {\n        \"amount\": 4374,\n        \"price\": 4663,\n      },\n      {\n        \"amount\": 11300,\n        \"price\": 4662.5,\n      },\n      {\n        \"amount\": 225,\n        \"price\": 4662,\n      },\n      {\n        \"amount\": 13150,\n        \"price\": 4660,\n      },\n      {\n        \"amount\": 3634,\n        \"price\": 4659.5,\n      },\n      {\n        \"amount\": 25456,\n        \"price\": 4659,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 4655.5,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 4654,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4652.5,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 4652,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4651.5,\n      },\n      {\n        \"amount\": 1876,\n        \"price\": 4651,\n      },\n      {\n        \"amount\": 11909,\n        \"price\": 4650.5,\n      },\n      {\n        \"amount\": 94625,\n        \"price\": 4650,\n      },\n      {\n        \"amount\": 62500,\n        \"price\": 4648,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4647,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 4645,\n      },\n      {\n        \"amount\": 28948,\n        \"price\": 4644.5,\n      },\n      {\n        \"amount\": 39300,\n        \"price\": 4644,\n      },\n      {\n        \"amount\": 1521,\n        \"price\": 4642,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 4641,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4640.5,\n      },\n      {\n        \"amount\": 15932,\n        \"price\": 4640,\n      },\n      {\n        \"amount\": 3096,\n        \"price\": 4639,\n      },\n      {\n        \"amount\": 5175,\n        \"price\": 4638,\n      },\n      {\n        \"amount\": 11300,\n        \"price\": 4637.5,\n      },\n      {\n        \"amount\": 12274,\n        \"price\": 4637,\n      },\n      {\n        \"amount\": 7500,\n        \"price\": 4636.5,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 4636,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4635.5,\n      },\n      {\n        \"amount\": 13540,\n        \"price\": 4635,\n      },\n      {\n        \"amount\": 462,\n        \"price\": 4633.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4632.5,\n      },\n      {\n        \"amount\": 102611,\n        \"price\": 4630,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 4629.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4629,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4628,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4627.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4625.5,\n      },\n      {\n        \"amount\": 12634,\n        \"price\": 4625,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4624.5,\n      },\n      {\n        \"amount\": 26238,\n        \"price\": 4624,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4623,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4622.5,\n      },\n      {\n        \"amount\": 10089,\n        \"price\": 4622,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4621,\n      },\n      {\n        \"amount\": 16000,\n        \"price\": 4620,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4619,\n      },\n      {\n        \"amount\": 18888,\n        \"price\": 4618,\n      },\n      {\n        \"amount\": 19971,\n        \"price\": 4616.5,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 4616,\n      },\n      {\n        \"amount\": 20100,\n        \"price\": 4615,\n      },\n      {\n        \"amount\": 26780,\n        \"price\": 4614,\n      },\n      {\n        \"amount\": 27945,\n        \"price\": 4612.5,\n      },\n      {\n        \"amount\": 28172,\n        \"price\": 4612,\n      },\n      {\n        \"amount\": 4682,\n        \"price\": 4611,\n      },\n      {\n        \"amount\": 12997,\n        \"price\": 4610.5,\n      },\n      {\n        \"amount\": 8130,\n        \"price\": 4610,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4609.5,\n      },\n      {\n        \"amount\": 4475,\n        \"price\": 4609,\n      },\n      {\n        \"amount\": 3384,\n        \"price\": 4608,\n      },\n      {\n        \"amount\": 25677,\n        \"price\": 4607.5,\n      },\n      {\n        \"amount\": 4300,\n        \"price\": 4606,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4605,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 4604,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4603,\n      },\n      {\n        \"amount\": 3298,\n        \"price\": 4602,\n      },\n      {\n        \"amount\": 5250,\n        \"price\": 4601,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4600.5,\n      },\n      {\n        \"amount\": 673876,\n        \"price\": 4600,\n      },\n      {\n        \"amount\": 810,\n        \"price\": 4599.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4599,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 4598.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4598,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4597.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4597,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 4596.5,\n      },\n      {\n        \"amount\": 16388,\n        \"price\": 4596,\n      },\n      {\n        \"amount\": 114950,\n        \"price\": 4595,\n      },\n      {\n        \"amount\": 5700,\n        \"price\": 4594,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4593.5,\n      },\n      {\n        \"amount\": 112918,\n        \"price\": 4593,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4591.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4590.5,\n      },\n      {\n        \"amount\": 4160,\n        \"price\": 4590,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4589.5,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 4589,\n      },\n      {\n        \"amount\": 336,\n        \"price\": 4588.5,\n      },\n      {\n        \"amount\": 214508,\n        \"price\": 4588,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4587.5,\n      },\n      {\n        \"amount\": 206,\n        \"price\": 4587,\n      },\n      {\n        \"amount\": 16969,\n        \"price\": 4586.5,\n      },\n      {\n        \"amount\": 151015,\n        \"price\": 4586,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4585.5,\n      },\n      {\n        \"amount\": 1110,\n        \"price\": 4585,\n      },\n      {\n        \"amount\": 3099,\n        \"price\": 4584.5,\n      },\n      {\n        \"amount\": 30050,\n        \"price\": 4584,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4583.5,\n      },\n      {\n        \"amount\": 20932,\n        \"price\": 4583,\n      },\n      {\n        \"amount\": 100500,\n        \"price\": 4582,\n      },\n      {\n        \"amount\": 2700,\n        \"price\": 4581.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4581,\n      },\n      {\n        \"amount\": 50963,\n        \"price\": 4580,\n      },\n      {\n        \"amount\": 3900,\n        \"price\": 4579.5,\n      },\n      {\n        \"amount\": 3597,\n        \"price\": 4579,\n      },\n      {\n        \"amount\": 322050,\n        \"price\": 4578,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4577.5,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 4577,\n      },\n      {\n        \"amount\": 840,\n        \"price\": 4576.5,\n      },\n      {\n        \"amount\": 730,\n        \"price\": 4576,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4575.5,\n      },\n      {\n        \"amount\": 200605,\n        \"price\": 4575,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4574.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4574,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 4573.5,\n      },\n      {\n        \"amount\": 3763,\n        \"price\": 4573,\n      },\n      {\n        \"amount\": 840,\n        \"price\": 4571.5,\n      },\n      {\n        \"amount\": 1125,\n        \"price\": 4571,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4570.5,\n      },\n      {\n        \"amount\": 422598,\n        \"price\": 4570,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 4569,\n      },\n      {\n        \"amount\": 60744,\n        \"price\": 4568,\n      },\n      {\n        \"amount\": 1584,\n        \"price\": 4567,\n      },\n      {\n        \"amount\": 3457,\n        \"price\": 4566.5,\n      },\n      {\n        \"amount\": 1135,\n        \"price\": 4566,\n      },\n      {\n        \"amount\": 42000,\n        \"price\": 4565.5,\n      },\n      {\n        \"amount\": 2960,\n        \"price\": 4565,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 4564,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4563.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4563,\n      },\n      {\n        \"amount\": 3634,\n        \"price\": 4562.5,\n      },\n      {\n        \"amount\": 725,\n        \"price\": 4562,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4561.5,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 4561,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4560.5,\n      },\n      {\n        \"amount\": 6050,\n        \"price\": 4560,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4559.5,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4559,\n      },\n      {\n        \"amount\": 13212,\n        \"price\": 4558,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 4557.5,\n      },\n      {\n        \"amount\": 2503,\n        \"price\": 4557,\n      },\n      {\n        \"amount\": 10600,\n        \"price\": 4556.5,\n      },\n      {\n        \"amount\": 1350,\n        \"price\": 4556,\n      },\n      {\n        \"amount\": 580,\n        \"price\": 4555.5,\n      },\n      {\n        \"amount\": 20600,\n        \"price\": 4555,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4554,\n      },\n      {\n        \"amount\": 11120,\n        \"price\": 4553.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4553,\n      },\n      {\n        \"amount\": 830,\n        \"price\": 4552,\n      },\n      {\n        \"amount\": 2120,\n        \"price\": 4551.5,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 4551,\n      },\n      {\n        \"amount\": 5450,\n        \"price\": 4550.5,\n      },\n      {\n        \"amount\": 907009,\n        \"price\": 4550,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 4549.5,\n      },\n      {\n        \"amount\": 1080,\n        \"price\": 4549,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 4548.5,\n      },\n      {\n        \"amount\": 66100,\n        \"price\": 4548,\n      },\n      {\n        \"amount\": 62500,\n        \"price\": 4547,\n      },\n      {\n        \"amount\": 83000,\n        \"price\": 4546,\n      },\n      {\n        \"amount\": 100020,\n        \"price\": 4545.5,\n      },\n      {\n        \"amount\": 57950,\n        \"price\": 4545,\n      },\n      {\n        \"amount\": 23384,\n        \"price\": 4544,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4543.5,\n      },\n      {\n        \"amount\": 251,\n        \"price\": 4543,\n      },\n      {\n        \"amount\": 101477,\n        \"price\": 4542.5,\n      },\n      {\n        \"amount\": 1150,\n        \"price\": 4542,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4541.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4541,\n      },\n      {\n        \"amount\": 34194,\n        \"price\": 4540,\n      },\n      {\n        \"amount\": 11780,\n        \"price\": 4539,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4538.5,\n      },\n      {\n        \"amount\": 51750,\n        \"price\": 4538,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 4537.5,\n      },\n      {\n        \"amount\": 5070,\n        \"price\": 4537,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4536.5,\n      },\n      {\n        \"amount\": 65500,\n        \"price\": 4536,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 4535.5,\n      },\n      {\n        \"amount\": 239500,\n        \"price\": 4535,\n      },\n      {\n        \"amount\": 6063,\n        \"price\": 4534,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4533.5,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 4533,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4532.5,\n      },\n      {\n        \"amount\": 10900,\n        \"price\": 4532,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4531.5,\n      },\n      {\n        \"amount\": 18894,\n        \"price\": 4531,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4530.5,\n      },\n      {\n        \"amount\": 49805,\n        \"price\": 4530,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 4529.5,\n      },\n      {\n        \"amount\": 2900,\n        \"price\": 4529,\n      },\n      {\n        \"amount\": 18722,\n        \"price\": 4528,\n      },\n      {\n        \"amount\": 7100,\n        \"price\": 4527.5,\n      },\n      {\n        \"amount\": 17000,\n        \"price\": 4527,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4526.5,\n      },\n      {\n        \"amount\": 6288,\n        \"price\": 4526,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 4525.5,\n      },\n      {\n        \"amount\": 57050,\n        \"price\": 4525,\n      },\n      {\n        \"amount\": 702,\n        \"price\": 4524,\n      },\n      {\n        \"amount\": 14075,\n        \"price\": 4523,\n      },\n      {\n        \"amount\": 45000,\n        \"price\": 4522.5,\n      },\n      {\n        \"amount\": 37000,\n        \"price\": 4522,\n      },\n      {\n        \"amount\": 15500,\n        \"price\": 4521,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4520.5,\n      },\n      {\n        \"amount\": 66408,\n        \"price\": 4520,\n      },\n      {\n        \"amount\": 10835,\n        \"price\": 4519.5,\n      },\n      {\n        \"amount\": 2631,\n        \"price\": 4519,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4518.5,\n      },\n      {\n        \"amount\": 12600,\n        \"price\": 4518,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 4517,\n      },\n      {\n        \"amount\": 5650,\n        \"price\": 4516.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 4516,\n      },\n      {\n        \"amount\": 34340,\n        \"price\": 4515,\n      },\n      {\n        \"amount\": 3734,\n        \"price\": 4514,\n      },\n      {\n        \"amount\": 4102,\n        \"price\": 4513.5,\n      },\n      {\n        \"amount\": 2021,\n        \"price\": 4513,\n      },\n      {\n        \"amount\": 3983,\n        \"price\": 4512,\n      },\n      {\n        \"amount\": 205,\n        \"price\": 4511.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4511,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 4510.5,\n      },\n      {\n        \"amount\": 77653,\n        \"price\": 4510,\n      },\n      {\n        \"amount\": 6584,\n        \"price\": 4509,\n      },\n      {\n        \"amount\": 14267,\n        \"price\": 4508.5,\n      },\n      {\n        \"amount\": 123380,\n        \"price\": 4508,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4507,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 4506,\n      },\n      {\n        \"amount\": 195,\n        \"price\": 4505.5,\n      },\n      {\n        \"amount\": 40120,\n        \"price\": 4505,\n      },\n      {\n        \"amount\": 14450,\n        \"price\": 4504,\n      },\n      {\n        \"amount\": 13990,\n        \"price\": 4503.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4503,\n      },\n      {\n        \"amount\": 13170,\n        \"price\": 4502,\n      },\n      {\n        \"amount\": 4080,\n        \"price\": 4501,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 4500.5,\n      },\n      {\n        \"amount\": 1389042,\n        \"price\": 4500,\n      },\n      {\n        \"amount\": 6496,\n        \"price\": 4499.5,\n      },\n      {\n        \"amount\": 17467,\n        \"price\": 4499,\n      },\n      {\n        \"amount\": 1875,\n        \"price\": 4498.5,\n      },\n      {\n        \"amount\": 90320,\n        \"price\": 4498,\n      },\n      {\n        \"amount\": 4932,\n        \"price\": 4497,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4496.5,\n      },\n      {\n        \"amount\": 40500,\n        \"price\": 4496,\n      },\n      {\n        \"amount\": 8013,\n        \"price\": 4495.5,\n      },\n      {\n        \"amount\": 26270,\n        \"price\": 4495,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 4494.5,\n      },\n      {\n        \"amount\": 101700,\n        \"price\": 4494,\n      },\n      {\n        \"amount\": 395,\n        \"price\": 4493.5,\n      },\n      {\n        \"amount\": 1202,\n        \"price\": 4493,\n      },\n      {\n        \"amount\": 512,\n        \"price\": 4492,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 4491,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 4490.5,\n      },\n      {\n        \"amount\": 94945,\n        \"price\": 4490,\n      },\n      {\n        \"amount\": 16065,\n        \"price\": 4489.5,\n      },\n      {\n        \"amount\": 225480,\n        \"price\": 4489,\n      },\n      {\n        \"amount\": 7500,\n        \"price\": 4488.5,\n      },\n      {\n        \"amount\": 37079,\n        \"price\": 4488,\n      },\n      {\n        \"amount\": 39751,\n        \"price\": 4487,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 4486.5,\n      },\n      {\n        \"amount\": 1150,\n        \"price\": 4486,\n      },\n      {\n        \"amount\": 8195,\n        \"price\": 4485,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 4484.5,\n      },\n      {\n        \"amount\": 6374,\n        \"price\": 4484,\n      },\n      {\n        \"amount\": 263000,\n        \"price\": 4483.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 4483,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 4482.5,\n      },\n      {\n        \"amount\": 195,\n        \"price\": 4482,\n      },\n      {\n        \"amount\": 1516,\n        \"price\": 4481,\n      },\n      {\n        \"amount\": 94049,\n        \"price\": 4480,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4479.5,\n      },\n      {\n        \"amount\": 17734,\n        \"price\": 4479,\n      },\n      {\n        \"amount\": 5850,\n        \"price\": 4478.5,\n      },\n      {\n        \"amount\": 32351,\n        \"price\": 4478,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4477.5,\n      },\n      {\n        \"amount\": 656,\n        \"price\": 4477,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4476.5,\n      },\n      {\n        \"amount\": 3168,\n        \"price\": 4476,\n      },\n      {\n        \"amount\": 43447,\n        \"price\": 4475,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4474.5,\n      },\n      {\n        \"amount\": 703,\n        \"price\": 4474,\n      },\n      {\n        \"amount\": 1115,\n        \"price\": 4473.5,\n      },\n      {\n        \"amount\": 16,\n        \"price\": 4473,\n      },\n      {\n        \"amount\": 6243,\n        \"price\": 4472,\n      },\n      {\n        \"amount\": 22172,\n        \"price\": 4471.5,\n      },\n      {\n        \"amount\": 24678,\n        \"price\": 4471,\n      },\n      {\n        \"amount\": 347166,\n        \"price\": 4470,\n      },\n      {\n        \"amount\": 4800,\n        \"price\": 4469.5,\n      },\n      {\n        \"amount\": 30350,\n        \"price\": 4469,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 4468.5,\n      },\n      {\n        \"amount\": 15368,\n        \"price\": 4468,\n      },\n      {\n        \"amount\": 12250,\n        \"price\": 4467.5,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 4467,\n      },\n      {\n        \"amount\": 1198,\n        \"price\": 4466.5,\n      },\n      {\n        \"amount\": 3768,\n        \"price\": 4466,\n      },\n      {\n        \"amount\": 3684,\n        \"price\": 4465.5,\n      },\n      {\n        \"amount\": 29410,\n        \"price\": 4465,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4464.5,\n      },\n      {\n        \"amount\": 6629,\n        \"price\": 4464,\n      },\n      {\n        \"amount\": 105,\n        \"price\": 4463,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4462.5,\n      },\n      {\n        \"amount\": 97800,\n        \"price\": 4462,\n      },\n      {\n        \"amount\": 12050,\n        \"price\": 4461.5,\n      },\n      {\n        \"amount\": 45100,\n        \"price\": 4461,\n      },\n      {\n        \"amount\": 2385,\n        \"price\": 4460.5,\n      },\n      {\n        \"amount\": 110718,\n        \"price\": 4460,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 4459.5,\n      },\n      {\n        \"amount\": 10298,\n        \"price\": 4459,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 4458.5,\n      },\n      {\n        \"amount\": 12222,\n        \"price\": 4458,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4457.5,\n      },\n      {\n        \"amount\": 53977,\n        \"price\": 4457,\n      },\n      {\n        \"amount\": 5052,\n        \"price\": 4456.5,\n      },\n      {\n        \"amount\": 11554,\n        \"price\": 4456,\n      },\n      {\n        \"amount\": 104265,\n        \"price\": 4455.5,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4455,\n      },\n      {\n        \"amount\": 18517,\n        \"price\": 4454,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4453,\n      },\n      {\n        \"amount\": 1160,\n        \"price\": 4452.5,\n      },\n      {\n        \"amount\": 5284,\n        \"price\": 4452,\n      },\n      {\n        \"amount\": 4225,\n        \"price\": 4451.5,\n      },\n      {\n        \"amount\": 21096,\n        \"price\": 4451,\n      },\n      {\n        \"amount\": 9137,\n        \"price\": 4450.5,\n      },\n      {\n        \"amount\": 1878892,\n        \"price\": 4450,\n      },\n      {\n        \"amount\": 209144,\n        \"price\": 4449.5,\n      },\n      {\n        \"amount\": 3850,\n        \"price\": 4449,\n      },\n      {\n        \"amount\": 6140,\n        \"price\": 4448.5,\n      },\n      {\n        \"amount\": 40251,\n        \"price\": 4448,\n      },\n      {\n        \"amount\": 158500,\n        \"price\": 4447.5,\n      },\n      {\n        \"amount\": 74000,\n        \"price\": 4447,\n      },\n      {\n        \"amount\": 4171,\n        \"price\": 4446.5,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 4446,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4445.5,\n      },\n      {\n        \"amount\": 165099,\n        \"price\": 4445,\n      },\n      {\n        \"amount\": 13669,\n        \"price\": 4444.5,\n      },\n      {\n        \"amount\": 165346,\n        \"price\": 4444,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 4443.5,\n      },\n      {\n        \"amount\": 12700,\n        \"price\": 4443,\n      },\n      {\n        \"amount\": 1004,\n        \"price\": 4442,\n      },\n      {\n        \"amount\": 6300,\n        \"price\": 4441,\n      },\n      {\n        \"amount\": 1040,\n        \"price\": 4440.5,\n      },\n      {\n        \"amount\": 85618,\n        \"price\": 4440,\n      },\n      {\n        \"amount\": 1335,\n        \"price\": 4439.5,\n      },\n      {\n        \"amount\": 119600,\n        \"price\": 4439,\n      },\n      {\n        \"amount\": 5924,\n        \"price\": 4438.5,\n      },\n      {\n        \"amount\": 11325,\n        \"price\": 4438,\n      },\n      {\n        \"amount\": 1786,\n        \"price\": 4437.5,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 4437,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4436.5,\n      },\n      {\n        \"amount\": 1368,\n        \"price\": 4436,\n      },\n      {\n        \"amount\": 114500,\n        \"price\": 4435,\n      },\n      {\n        \"amount\": 195,\n        \"price\": 4434.5,\n      },\n      {\n        \"amount\": 40390,\n        \"price\": 4434,\n      },\n      {\n        \"amount\": 12398,\n        \"price\": 4433.5,\n      },\n      {\n        \"amount\": 8954,\n        \"price\": 4433,\n      },\n      {\n        \"amount\": 42000,\n        \"price\": 4432.5,\n      },\n      {\n        \"amount\": 6168,\n        \"price\": 4432,\n      },\n      {\n        \"amount\": 10350,\n        \"price\": 4431.5,\n      },\n      {\n        \"amount\": 249178,\n        \"price\": 4431,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 4430.5,\n      },\n      {\n        \"amount\": 126951,\n        \"price\": 4430,\n      },\n      {\n        \"amount\": 5800,\n        \"price\": 4429.5,\n      },\n      {\n        \"amount\": 3330,\n        \"price\": 4429,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 4428.5,\n      },\n      {\n        \"amount\": 18424,\n        \"price\": 4428,\n      },\n      {\n        \"amount\": 18600,\n        \"price\": 4427.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 4427,\n      },\n      {\n        \"amount\": 110200,\n        \"price\": 4426.5,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 4426,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4425.5,\n      },\n      {\n        \"amount\": 25617,\n        \"price\": 4425,\n      },\n      {\n        \"amount\": 6618,\n        \"price\": 4424,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 4423.5,\n      },\n      {\n        \"amount\": 18942,\n        \"price\": 4423,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4422.5,\n      },\n      {\n        \"amount\": 1742,\n        \"price\": 4422,\n      },\n      {\n        \"amount\": 20800,\n        \"price\": 4421.5,\n      },\n      {\n        \"amount\": 11300,\n        \"price\": 4421,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4420.5,\n      },\n      {\n        \"amount\": 525123,\n        \"price\": 4420,\n      },\n      {\n        \"amount\": 10830,\n        \"price\": 4419,\n      },\n      {\n        \"amount\": 3800,\n        \"price\": 4418.5,\n      },\n      {\n        \"amount\": 14596,\n        \"price\": 4418,\n      },\n      {\n        \"amount\": 1800,\n        \"price\": 4417.5,\n      },\n      {\n        \"amount\": 30886,\n        \"price\": 4417,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4416.5,\n      },\n      {\n        \"amount\": 1816,\n        \"price\": 4416,\n      },\n      {\n        \"amount\": 773708,\n        \"price\": 4415,\n      },\n      {\n        \"amount\": 160000,\n        \"price\": 4414.5,\n      },\n      {\n        \"amount\": 13913,\n        \"price\": 4414,\n      },\n      {\n        \"amount\": 751150,\n        \"price\": 4413.5,\n      },\n      {\n        \"amount\": 50815,\n        \"price\": 4413,\n      },\n      {\n        \"amount\": 12446,\n        \"price\": 4412.5,\n      },\n      {\n        \"amount\": 15186,\n        \"price\": 4412,\n      },\n      {\n        \"amount\": 2600,\n        \"price\": 4411.5,\n      },\n      {\n        \"amount\": 73613,\n        \"price\": 4411,\n      },\n      {\n        \"amount\": 10030,\n        \"price\": 4410.5,\n      },\n      {\n        \"amount\": 175257,\n        \"price\": 4410,\n      },\n      {\n        \"amount\": 240000,\n        \"price\": 4409.5,\n      },\n      {\n        \"amount\": 8850,\n        \"price\": 4409,\n      },\n      {\n        \"amount\": 10303,\n        \"price\": 4408.5,\n      },\n      {\n        \"amount\": 23573,\n        \"price\": 4408,\n      },\n      {\n        \"amount\": 6600,\n        \"price\": 4407.5,\n      },\n      {\n        \"amount\": 234040,\n        \"price\": 4407,\n      },\n      {\n        \"amount\": 19983,\n        \"price\": 4406.5,\n      },\n      {\n        \"amount\": 7228,\n        \"price\": 4406,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 4405.5,\n      },\n      {\n        \"amount\": 21700,\n        \"price\": 4405,\n      },\n      {\n        \"amount\": 12649,\n        \"price\": 4404.5,\n      },\n      {\n        \"amount\": 5768,\n        \"price\": 4404,\n      },\n      {\n        \"amount\": 1439,\n        \"price\": 4403.5,\n      },\n      {\n        \"amount\": 21403,\n        \"price\": 4403,\n      },\n      {\n        \"amount\": 10730,\n        \"price\": 4402.5,\n      },\n      {\n        \"amount\": 1811,\n        \"price\": 4402,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4401.5,\n      },\n      {\n        \"amount\": 5280,\n        \"price\": 4401,\n      },\n      {\n        \"amount\": 1930,\n        \"price\": 4400.5,\n      },\n      {\n        \"amount\": 1295290,\n        \"price\": 4400,\n      },\n      {\n        \"amount\": 50827,\n        \"price\": 4399.5,\n      },\n      {\n        \"amount\": 15732,\n        \"price\": 4399,\n      },\n      {\n        \"amount\": 1298,\n        \"price\": 4398.5,\n      },\n      {\n        \"amount\": 38739,\n        \"price\": 4398,\n      },\n      {\n        \"amount\": 8077,\n        \"price\": 4397.5,\n      },\n      {\n        \"amount\": 4703,\n        \"price\": 4397,\n      },\n      {\n        \"amount\": 1783,\n        \"price\": 4396.5,\n      },\n      {\n        \"amount\": 1268,\n        \"price\": 4396,\n      },\n      {\n        \"amount\": 8101,\n        \"price\": 4395.5,\n      },\n      {\n        \"amount\": 344164,\n        \"price\": 4395,\n      },\n      {\n        \"amount\": 4103,\n        \"price\": 4394.5,\n      },\n      {\n        \"amount\": 36180,\n        \"price\": 4394,\n      },\n      {\n        \"amount\": 42400,\n        \"price\": 4393.5,\n      },\n      {\n        \"amount\": 4694,\n        \"price\": 4393,\n      },\n      {\n        \"amount\": 15560,\n        \"price\": 4392.5,\n      },\n      {\n        \"amount\": 2483,\n        \"price\": 4392,\n      },\n      {\n        \"amount\": 20100,\n        \"price\": 4391.5,\n      },\n      {\n        \"amount\": 105128,\n        \"price\": 4391,\n      },\n      {\n        \"amount\": 10200,\n        \"price\": 4390.5,\n      },\n      {\n        \"amount\": 237254,\n        \"price\": 4390,\n      },\n      {\n        \"amount\": 270,\n        \"price\": 4389.5,\n      },\n      {\n        \"amount\": 80674,\n        \"price\": 4389,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 4388.5,\n      },\n      {\n        \"amount\": 20309,\n        \"price\": 4388,\n      },\n      {\n        \"amount\": 19845,\n        \"price\": 4387.5,\n      },\n      {\n        \"amount\": 6739,\n        \"price\": 4387,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 4386.5,\n      },\n      {\n        \"amount\": 59700,\n        \"price\": 4386,\n      },\n      {\n        \"amount\": 10369,\n        \"price\": 4385.5,\n      },\n      {\n        \"amount\": 70042,\n        \"price\": 4385,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4384.5,\n      },\n      {\n        \"amount\": 12235,\n        \"price\": 4384,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 4383.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4383,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4382.5,\n      },\n      {\n        \"amount\": 71313,\n        \"price\": 4382,\n      },\n      {\n        \"amount\": 14628,\n        \"price\": 4381.5,\n      },\n      {\n        \"amount\": 34431,\n        \"price\": 4381,\n      },\n      {\n        \"amount\": 40302,\n        \"price\": 4380.5,\n      },\n      {\n        \"amount\": 164320,\n        \"price\": 4380,\n      },\n      {\n        \"amount\": 23350,\n        \"price\": 4379.5,\n      },\n      {\n        \"amount\": 44779,\n        \"price\": 4379,\n      },\n      {\n        \"amount\": 258276,\n        \"price\": 4378.5,\n      },\n      {\n        \"amount\": 70860,\n        \"price\": 4378,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4377.5,\n      },\n      {\n        \"amount\": 101298,\n        \"price\": 4377,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4376.5,\n      },\n      {\n        \"amount\": 81698,\n        \"price\": 4376,\n      },\n      {\n        \"amount\": 3195,\n        \"price\": 4375.5,\n      },\n      {\n        \"amount\": 91387,\n        \"price\": 4375,\n      },\n      {\n        \"amount\": 1622,\n        \"price\": 4374.5,\n      },\n      {\n        \"amount\": 21663,\n        \"price\": 4374,\n      },\n      {\n        \"amount\": 17754,\n        \"price\": 4373.5,\n      },\n      {\n        \"amount\": 2345,\n        \"price\": 4373,\n      },\n      {\n        \"amount\": 1252,\n        \"price\": 4372.5,\n      },\n      {\n        \"amount\": 20154,\n        \"price\": 4372,\n      },\n      {\n        \"amount\": 9352,\n        \"price\": 4371.5,\n      },\n      {\n        \"amount\": 12702,\n        \"price\": 4371,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 4370.5,\n      },\n      {\n        \"amount\": 591992,\n        \"price\": 4370,\n      },\n      {\n        \"amount\": 9272,\n        \"price\": 4369.5,\n      },\n      {\n        \"amount\": 15252,\n        \"price\": 4369,\n      },\n      {\n        \"amount\": 6450,\n        \"price\": 4368.5,\n      },\n      {\n        \"amount\": 154462,\n        \"price\": 4368,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 4367.5,\n      },\n      {\n        \"amount\": 263440,\n        \"price\": 4367,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 4366.5,\n      },\n      {\n        \"amount\": 11299,\n        \"price\": 4366,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 4365.5,\n      },\n      {\n        \"amount\": 21325,\n        \"price\": 4365,\n      },\n      {\n        \"amount\": 51802,\n        \"price\": 4364.5,\n      },\n      {\n        \"amount\": 11914,\n        \"price\": 4364,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 4363.5,\n      },\n      {\n        \"amount\": 6495,\n        \"price\": 4363,\n      },\n      {\n        \"amount\": 255,\n        \"price\": 4362.5,\n      },\n      {\n        \"amount\": 14800,\n        \"price\": 4362,\n      },\n      {\n        \"amount\": 101,\n        \"price\": 4361.5,\n      },\n      {\n        \"amount\": 16100,\n        \"price\": 4361,\n      },\n      {\n        \"amount\": 3580,\n        \"price\": 4360.5,\n      },\n      {\n        \"amount\": 135315,\n        \"price\": 4360,\n      },\n      {\n        \"amount\": 101,\n        \"price\": 4359.5,\n      },\n      {\n        \"amount\": 736720,\n        \"price\": 4359,\n      },\n      {\n        \"amount\": 9101,\n        \"price\": 4358.5,\n      },\n      {\n        \"amount\": 24840,\n        \"price\": 4358,\n      },\n      {\n        \"amount\": 8280,\n        \"price\": 4357.5,\n      },\n      {\n        \"amount\": 5586,\n        \"price\": 4357,\n      },\n      {\n        \"amount\": 1601,\n        \"price\": 4356.5,\n      },\n      {\n        \"amount\": 1919,\n        \"price\": 4356,\n      },\n      {\n        \"amount\": 308,\n        \"price\": 4355.5,\n      },\n      {\n        \"amount\": 69425,\n        \"price\": 4355,\n      },\n      {\n        \"amount\": 6500,\n        \"price\": 4354.5,\n      },\n      {\n        \"amount\": 21051,\n        \"price\": 4354,\n      },\n      {\n        \"amount\": 8355,\n        \"price\": 4353.5,\n      },\n      {\n        \"amount\": 10052,\n        \"price\": 4353,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 4352.5,\n      },\n      {\n        \"amount\": 79406,\n        \"price\": 4352,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4351.5,\n      },\n      {\n        \"amount\": 17300,\n        \"price\": 4351,\n      },\n      {\n        \"amount\": 6611,\n        \"price\": 4350.5,\n      },\n      {\n        \"amount\": 332487,\n        \"price\": 4350,\n      },\n      {\n        \"amount\": 200025,\n        \"price\": 4349.5,\n      },\n      {\n        \"amount\": 173376,\n        \"price\": 4349,\n      },\n      {\n        \"amount\": 8700,\n        \"price\": 4348.5,\n      },\n      {\n        \"amount\": 110677,\n        \"price\": 4348,\n      },\n      {\n        \"amount\": 44449,\n        \"price\": 4347.5,\n      },\n      {\n        \"amount\": 44980,\n        \"price\": 4347,\n      },\n      {\n        \"amount\": 1415,\n        \"price\": 4346.5,\n      },\n      {\n        \"amount\": 12175,\n        \"price\": 4346,\n      },\n      {\n        \"amount\": 8520,\n        \"price\": 4345.5,\n      },\n      {\n        \"amount\": 18060,\n        \"price\": 4345,\n      },\n      {\n        \"amount\": 1957,\n        \"price\": 4344.5,\n      },\n      {\n        \"amount\": 169284,\n        \"price\": 4344,\n      },\n      {\n        \"amount\": 3200,\n        \"price\": 4343.5,\n      },\n      {\n        \"amount\": 50552,\n        \"price\": 4343,\n      },\n      {\n        \"amount\": 121060,\n        \"price\": 4342.5,\n      },\n      {\n        \"amount\": 20900,\n        \"price\": 4342,\n      },\n      {\n        \"amount\": 348,\n        \"price\": 4341.5,\n      },\n      {\n        \"amount\": 7450,\n        \"price\": 4341,\n      },\n      {\n        \"amount\": 174633,\n        \"price\": 4340.5,\n      },\n      {\n        \"amount\": 182598,\n        \"price\": 4340,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 4339.5,\n      },\n      {\n        \"amount\": 24023,\n        \"price\": 4339,\n      },\n      {\n        \"amount\": 10508,\n        \"price\": 4338.5,\n      },\n      {\n        \"amount\": 13775,\n        \"price\": 4338,\n      },\n      {\n        \"amount\": 18710,\n        \"price\": 4337.5,\n      },\n      {\n        \"amount\": 12591,\n        \"price\": 4337,\n      },\n      {\n        \"amount\": 1748,\n        \"price\": 4336,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 4335.5,\n      },\n      {\n        \"amount\": 48594,\n        \"price\": 4335,\n      },\n      {\n        \"amount\": 10057,\n        \"price\": 4334.5,\n      },\n      {\n        \"amount\": 94215,\n        \"price\": 4334,\n      },\n      {\n        \"amount\": 15452,\n        \"price\": 4333.5,\n      },\n      {\n        \"amount\": 58892,\n        \"price\": 4333,\n      },\n      {\n        \"amount\": 140000,\n        \"price\": 4332.5,\n      },\n      {\n        \"amount\": 11368,\n        \"price\": 4332,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4331.5,\n      },\n      {\n        \"amount\": 17100,\n        \"price\": 4331,\n      },\n      {\n        \"amount\": 2700,\n        \"price\": 4330.5,\n      },\n      {\n        \"amount\": 170428,\n        \"price\": 4330,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4329.5,\n      },\n      {\n        \"amount\": 10620,\n        \"price\": 4329,\n      },\n      {\n        \"amount\": 2195,\n        \"price\": 4328.5,\n      },\n      {\n        \"amount\": 143308,\n        \"price\": 4328,\n      },\n      {\n        \"amount\": 45750,\n        \"price\": 4327.5,\n      },\n      {\n        \"amount\": 30750,\n        \"price\": 4327,\n      },\n      {\n        \"amount\": 4815,\n        \"price\": 4326.5,\n      },\n      {\n        \"amount\": 68646,\n        \"price\": 4326,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4325.5,\n      },\n      {\n        \"amount\": 21752,\n        \"price\": 4325,\n      },\n      {\n        \"amount\": 3245,\n        \"price\": 4324.5,\n      },\n      {\n        \"amount\": 15998,\n        \"price\": 4324,\n      },\n      {\n        \"amount\": 1252,\n        \"price\": 4323.5,\n      },\n      {\n        \"amount\": 3970,\n        \"price\": 4323,\n      },\n      {\n        \"amount\": 2906,\n        \"price\": 4322.5,\n      },\n      {\n        \"amount\": 18125,\n        \"price\": 4322,\n      },\n      {\n        \"amount\": 822343,\n        \"price\": 4321.5,\n      },\n      {\n        \"amount\": 15650,\n        \"price\": 4321,\n      },\n      {\n        \"amount\": 1641,\n        \"price\": 4320.5,\n      },\n      {\n        \"amount\": 416714,\n        \"price\": 4320,\n      },\n      {\n        \"amount\": 365,\n        \"price\": 4319.5,\n      },\n      {\n        \"amount\": 21744,\n        \"price\": 4319,\n      },\n      {\n        \"amount\": 8669,\n        \"price\": 4318.5,\n      },\n      {\n        \"amount\": 162705,\n        \"price\": 4318,\n      },\n      {\n        \"amount\": 16757,\n        \"price\": 4317.5,\n      },\n      {\n        \"amount\": 6045,\n        \"price\": 4317,\n      },\n      {\n        \"amount\": 82109,\n        \"price\": 4316.5,\n      },\n      {\n        \"amount\": 104156,\n        \"price\": 4316,\n      },\n      {\n        \"amount\": 1306,\n        \"price\": 4315.5,\n      },\n      {\n        \"amount\": 329527,\n        \"price\": 4315,\n      },\n      {\n        \"amount\": 6200,\n        \"price\": 4314.5,\n      },\n      {\n        \"amount\": 84136,\n        \"price\": 4314,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 4313.5,\n      },\n      {\n        \"amount\": 13509,\n        \"price\": 4313,\n      },\n      {\n        \"amount\": 11375,\n        \"price\": 4312.5,\n      },\n      {\n        \"amount\": 20768,\n        \"price\": 4312,\n      },\n      {\n        \"amount\": 9431,\n        \"price\": 4311.5,\n      },\n      {\n        \"amount\": 65745,\n        \"price\": 4311,\n      },\n      {\n        \"amount\": 82,\n        \"price\": 4310.5,\n      },\n      {\n        \"amount\": 508664,\n        \"price\": 4310,\n      },\n      {\n        \"amount\": 3539,\n        \"price\": 4309.5,\n      },\n      {\n        \"amount\": 8279,\n        \"price\": 4309,\n      },\n      {\n        \"amount\": 61142,\n        \"price\": 4308.5,\n      },\n      {\n        \"amount\": 13518,\n        \"price\": 4308,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 4307.5,\n      },\n      {\n        \"amount\": 1503,\n        \"price\": 4307,\n      },\n      {\n        \"amount\": 830,\n        \"price\": 4306.5,\n      },\n      {\n        \"amount\": 30044,\n        \"price\": 4306,\n      },\n      {\n        \"amount\": 12265,\n        \"price\": 4305.5,\n      },\n      {\n        \"amount\": 7070,\n        \"price\": 4305,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4304.5,\n      },\n      {\n        \"amount\": 25912,\n        \"price\": 4304,\n      },\n      {\n        \"amount\": 1472,\n        \"price\": 4303.5,\n      },\n      {\n        \"amount\": 5700,\n        \"price\": 4303,\n      },\n      {\n        \"amount\": 650,\n        \"price\": 4302.5,\n      },\n      {\n        \"amount\": 4373,\n        \"price\": 4302,\n      },\n      {\n        \"amount\": 22300,\n        \"price\": 4301.5,\n      },\n      {\n        \"amount\": 22240,\n        \"price\": 4301,\n      },\n      {\n        \"amount\": 10550,\n        \"price\": 4300.5,\n      },\n      {\n        \"amount\": 770161,\n        \"price\": 4300,\n      },\n      {\n        \"amount\": 63112,\n        \"price\": 4299.5,\n      },\n      {\n        \"amount\": 26050,\n        \"price\": 4299,\n      },\n      {\n        \"amount\": 109,\n        \"price\": 4298.5,\n      },\n      {\n        \"amount\": 972835,\n        \"price\": 4298,\n      },\n      {\n        \"amount\": 66311,\n        \"price\": 4297.5,\n      },\n      {\n        \"amount\": 6738,\n        \"price\": 4297,\n      },\n      {\n        \"amount\": 2566,\n        \"price\": 4296.5,\n      },\n      {\n        \"amount\": 123421,\n        \"price\": 4296,\n      },\n      {\n        \"amount\": 15291,\n        \"price\": 4295.5,\n      },\n      {\n        \"amount\": 61470,\n        \"price\": 4295,\n      },\n      {\n        \"amount\": 12920,\n        \"price\": 4294.5,\n      },\n      {\n        \"amount\": 40972,\n        \"price\": 4294,\n      },\n      {\n        \"amount\": 13595,\n        \"price\": 4293.5,\n      },\n      {\n        \"amount\": 66876,\n        \"price\": 4293,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 4292.5,\n      },\n      {\n        \"amount\": 158140,\n        \"price\": 4292,\n      },\n      {\n        \"amount\": 3463,\n        \"price\": 4291,\n      },\n      {\n        \"amount\": 46350,\n        \"price\": 4290.5,\n      },\n      {\n        \"amount\": 142043,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 11604,\n        \"price\": 4289.5,\n      },\n      {\n        \"amount\": 11831,\n        \"price\": 4289,\n      },\n      {\n        \"amount\": 76820,\n        \"price\": 4288.5,\n      },\n      {\n        \"amount\": 111992,\n        \"price\": 4288,\n      },\n      {\n        \"amount\": 15572,\n        \"price\": 4287.5,\n      },\n      {\n        \"amount\": 20485,\n        \"price\": 4287,\n      },\n      {\n        \"amount\": 2164,\n        \"price\": 4286.5,\n      },\n      {\n        \"amount\": 79346,\n        \"price\": 4286,\n      },\n      {\n        \"amount\": 18055,\n        \"price\": 4285.5,\n      },\n      {\n        \"amount\": 11689,\n        \"price\": 4285,\n      },\n      {\n        \"amount\": 9255,\n        \"price\": 4284.5,\n      },\n      {\n        \"amount\": 28025,\n        \"price\": 4284,\n      },\n      {\n        \"amount\": 23445,\n        \"price\": 4283.5,\n      },\n      {\n        \"amount\": 134514,\n        \"price\": 4283,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4282.5,\n      },\n      {\n        \"amount\": 14615,\n        \"price\": 4282,\n      },\n      {\n        \"amount\": 34938,\n        \"price\": 4281.5,\n      },\n      {\n        \"amount\": 38578,\n        \"price\": 4281,\n      },\n      {\n        \"amount\": 4715,\n        \"price\": 4280.5,\n      },\n      {\n        \"amount\": 293000,\n        \"price\": 4280,\n      },\n      {\n        \"amount\": 131150,\n        \"price\": 4279.5,\n      },\n      {\n        \"amount\": 256359,\n        \"price\": 4279,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4278.5,\n      },\n      {\n        \"amount\": 144071,\n        \"price\": 4278,\n      },\n      {\n        \"amount\": 71426,\n        \"price\": 4277.5,\n      },\n      {\n        \"amount\": 56526,\n        \"price\": 4277,\n      },\n      {\n        \"amount\": 87611,\n        \"price\": 4276.5,\n      },\n      {\n        \"amount\": 94288,\n        \"price\": 4276,\n      },\n      {\n        \"amount\": 220426,\n        \"price\": 4275.5,\n      },\n      {\n        \"amount\": 270814,\n        \"price\": 4275,\n      },\n      {\n        \"amount\": 13417,\n        \"price\": 4274.5,\n      },\n      {\n        \"amount\": 66302,\n        \"price\": 4274,\n      },\n      {\n        \"amount\": 21404,\n        \"price\": 4273.5,\n      },\n      {\n        \"amount\": 27665,\n        \"price\": 4273,\n      },\n      {\n        \"amount\": 17268,\n        \"price\": 4272.5,\n      },\n      {\n        \"amount\": 53306,\n        \"price\": 4272,\n      },\n      {\n        \"amount\": 72377,\n        \"price\": 4271,\n      },\n      {\n        \"amount\": 21308,\n        \"price\": 4270.5,\n      },\n      {\n        \"amount\": 417299,\n        \"price\": 4270,\n      },\n      {\n        \"amount\": 286593,\n        \"price\": 4269.5,\n      },\n      {\n        \"amount\": 13195,\n        \"price\": 4269,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 4268.5,\n      },\n      {\n        \"amount\": 56292,\n        \"price\": 4268,\n      },\n      {\n        \"amount\": 5057,\n        \"price\": 4267.5,\n      },\n      {\n        \"amount\": 23062,\n        \"price\": 4267,\n      },\n      {\n        \"amount\": 532,\n        \"price\": 4266.5,\n      },\n      {\n        \"amount\": 55860,\n        \"price\": 4266,\n      },\n      {\n        \"amount\": 1294,\n        \"price\": 4265.5,\n      },\n      {\n        \"amount\": 40898,\n        \"price\": 4265,\n      },\n      {\n        \"amount\": 6450,\n        \"price\": 4264.5,\n      },\n      {\n        \"amount\": 456786,\n        \"price\": 4264,\n      },\n      {\n        \"amount\": 125050,\n        \"price\": 4263.5,\n      },\n      {\n        \"amount\": 61326,\n        \"price\": 4263,\n      },\n      {\n        \"amount\": 8350,\n        \"price\": 4262.5,\n      },\n      {\n        \"amount\": 21800,\n        \"price\": 4262,\n      },\n      {\n        \"amount\": 321,\n        \"price\": 4261.5,\n      },\n      {\n        \"amount\": 11768,\n        \"price\": 4261,\n      },\n      {\n        \"amount\": 27908,\n        \"price\": 4260.5,\n      },\n      {\n        \"amount\": 391551,\n        \"price\": 4260,\n      },\n      {\n        \"amount\": 7650,\n        \"price\": 4259.5,\n      },\n      {\n        \"amount\": 71110,\n        \"price\": 4259,\n      },\n      {\n        \"amount\": 20827,\n        \"price\": 4258.5,\n      },\n      {\n        \"amount\": 49145,\n        \"price\": 4258,\n      },\n      {\n        \"amount\": 38986,\n        \"price\": 4257.5,\n      },\n      {\n        \"amount\": 4321,\n        \"price\": 4257,\n      },\n      {\n        \"amount\": 358916,\n        \"price\": 4256.5,\n      },\n      {\n        \"amount\": 15684,\n        \"price\": 4256,\n      },\n      {\n        \"amount\": 545,\n        \"price\": 4255.5,\n      },\n      {\n        \"amount\": 61125,\n        \"price\": 4255,\n      },\n      {\n        \"amount\": 15700,\n        \"price\": 4254.5,\n      },\n      {\n        \"amount\": 13106,\n        \"price\": 4254,\n      },\n      {\n        \"amount\": 9141,\n        \"price\": 4253.5,\n      },\n      {\n        \"amount\": 15500,\n        \"price\": 4253,\n      },\n      {\n        \"amount\": 5807,\n        \"price\": 4252.5,\n      },\n      {\n        \"amount\": 29718,\n        \"price\": 4252,\n      },\n      {\n        \"amount\": 41850,\n        \"price\": 4251.5,\n      },\n      {\n        \"amount\": 72347,\n        \"price\": 4251,\n      },\n      {\n        \"amount\": 30611,\n        \"price\": 4250.5,\n      },\n      {\n        \"amount\": 1283699,\n        \"price\": 4250,\n      },\n      {\n        \"amount\": 213845,\n        \"price\": 4249.5,\n      },\n      {\n        \"amount\": 87594,\n        \"price\": 4249,\n      },\n      {\n        \"amount\": 50033,\n        \"price\": 4248.5,\n      },\n      {\n        \"amount\": 133114,\n        \"price\": 4248,\n      },\n      {\n        \"amount\": 390650,\n        \"price\": 4247.5,\n      },\n      {\n        \"amount\": 90915,\n        \"price\": 4247,\n      },\n      {\n        \"amount\": 24122,\n        \"price\": 4246.5,\n      },\n      {\n        \"amount\": 27436,\n        \"price\": 4246,\n      },\n      {\n        \"amount\": 32530,\n        \"price\": 4245.5,\n      },\n      {\n        \"amount\": 136705,\n        \"price\": 4245,\n      },\n      {\n        \"amount\": 10488,\n        \"price\": 4244.5,\n      },\n      {\n        \"amount\": 56828,\n        \"price\": 4244,\n      },\n      {\n        \"amount\": 22955,\n        \"price\": 4243.5,\n      },\n      {\n        \"amount\": 4582,\n        \"price\": 4243,\n      },\n      {\n        \"amount\": 176,\n        \"price\": 4242.5,\n      },\n      {\n        \"amount\": 628837,\n        \"price\": 4242,\n      },\n      {\n        \"amount\": 98907,\n        \"price\": 4241.5,\n      },\n      {\n        \"amount\": 27043,\n        \"price\": 4241,\n      },\n      {\n        \"amount\": 65122,\n        \"price\": 4240.5,\n      },\n      {\n        \"amount\": 545597,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 17698,\n        \"price\": 4239.5,\n      },\n      {\n        \"amount\": 99706,\n        \"price\": 4239,\n      },\n      {\n        \"amount\": 30588,\n        \"price\": 4238.5,\n      },\n      {\n        \"amount\": 398044,\n        \"price\": 4238,\n      },\n      {\n        \"amount\": 3350,\n        \"price\": 4237.5,\n      },\n      {\n        \"amount\": 80176,\n        \"price\": 4237,\n      },\n      {\n        \"amount\": 16390,\n        \"price\": 4236.5,\n      },\n      {\n        \"amount\": 87590,\n        \"price\": 4236,\n      },\n      {\n        \"amount\": 14794,\n        \"price\": 4235.5,\n      },\n      {\n        \"amount\": 96498,\n        \"price\": 4235,\n      },\n      {\n        \"amount\": 337003,\n        \"price\": 4234.5,\n      },\n      {\n        \"amount\": 53300,\n        \"price\": 4234,\n      },\n      {\n        \"amount\": 124890,\n        \"price\": 4233.5,\n      },\n      {\n        \"amount\": 113369,\n        \"price\": 4233,\n      },\n      {\n        \"amount\": 6924,\n        \"price\": 4232.5,\n      },\n      {\n        \"amount\": 23787,\n        \"price\": 4232,\n      },\n      {\n        \"amount\": 33704,\n        \"price\": 4231.5,\n      },\n      {\n        \"amount\": 54200,\n        \"price\": 4231,\n      },\n      {\n        \"amount\": 84046,\n        \"price\": 4230.5,\n      },\n      {\n        \"amount\": 530123,\n        \"price\": 4230,\n      },\n      {\n        \"amount\": 16920,\n        \"price\": 4229.5,\n      },\n      {\n        \"amount\": 84344,\n        \"price\": 4229,\n      },\n      {\n        \"amount\": 269224,\n        \"price\": 4228.5,\n      },\n      {\n        \"amount\": 445320,\n        \"price\": 4228,\n      },\n      {\n        \"amount\": 1382,\n        \"price\": 4227.5,\n      },\n      {\n        \"amount\": 32518,\n        \"price\": 4227,\n      },\n      {\n        \"amount\": 78854,\n        \"price\": 4226.5,\n      },\n      {\n        \"amount\": 5508,\n        \"price\": 4226,\n      },\n      {\n        \"amount\": 4501,\n        \"price\": 4225.5,\n      },\n      {\n        \"amount\": 227606,\n        \"price\": 4225,\n      },\n      {\n        \"amount\": 56085,\n        \"price\": 4224.5,\n      },\n      {\n        \"amount\": 54640,\n        \"price\": 4224,\n      },\n      {\n        \"amount\": 31578,\n        \"price\": 4223.5,\n      },\n      {\n        \"amount\": 70089,\n        \"price\": 4223,\n      },\n      {\n        \"amount\": 78074,\n        \"price\": 4222.5,\n      },\n      {\n        \"amount\": 628730,\n        \"price\": 4222,\n      },\n      {\n        \"amount\": 51400,\n        \"price\": 4221.5,\n      },\n      {\n        \"amount\": 17581,\n        \"price\": 4221,\n      },\n      {\n        \"amount\": 11028,\n        \"price\": 4220.5,\n      },\n      {\n        \"amount\": 1270265,\n        \"price\": 4220,\n      },\n      {\n        \"amount\": 38686,\n        \"price\": 4219.5,\n      },\n      {\n        \"amount\": 131765,\n        \"price\": 4219,\n      },\n      {\n        \"amount\": 36565,\n        \"price\": 4218.5,\n      },\n      {\n        \"amount\": 220643,\n        \"price\": 4218,\n      },\n      {\n        \"amount\": 18774,\n        \"price\": 4217.5,\n      },\n      {\n        \"amount\": 62708,\n        \"price\": 4217,\n      },\n      {\n        \"amount\": 145062,\n        \"price\": 4216.5,\n      },\n      {\n        \"amount\": 81190,\n        \"price\": 4216,\n      },\n      {\n        \"amount\": 221366,\n        \"price\": 4215.5,\n      },\n      {\n        \"amount\": 403151,\n        \"price\": 4215,\n      },\n      {\n        \"amount\": 35827,\n        \"price\": 4214.5,\n      },\n      {\n        \"amount\": 43737,\n        \"price\": 4214,\n      },\n      {\n        \"amount\": 27671,\n        \"price\": 4213.5,\n      },\n      {\n        \"amount\": 475006,\n        \"price\": 4213,\n      },\n      {\n        \"amount\": 355851,\n        \"price\": 4212.5,\n      },\n      {\n        \"amount\": 198812,\n        \"price\": 4212,\n      },\n      {\n        \"amount\": 24475,\n        \"price\": 4211.5,\n      },\n      {\n        \"amount\": 331385,\n        \"price\": 4211,\n      },\n      {\n        \"amount\": 59999,\n        \"price\": 4210.5,\n      },\n      {\n        \"amount\": 594158,\n        \"price\": 4210,\n      },\n      {\n        \"amount\": 109030,\n        \"price\": 4209.5,\n      },\n      {\n        \"amount\": 43079,\n        \"price\": 4209,\n      },\n      {\n        \"amount\": 19740,\n        \"price\": 4208.5,\n      },\n      {\n        \"amount\": 79807,\n        \"price\": 4208,\n      },\n      {\n        \"amount\": 11861,\n        \"price\": 4207.5,\n      },\n      {\n        \"amount\": 10870,\n        \"price\": 4207,\n      },\n      {\n        \"amount\": 49253,\n        \"price\": 4206.5,\n      },\n      {\n        \"amount\": 117621,\n        \"price\": 4206,\n      },\n      {\n        \"amount\": 334798,\n        \"price\": 4205.5,\n      },\n      {\n        \"amount\": 73793,\n        \"price\": 4205,\n      },\n      {\n        \"amount\": 17751,\n        \"price\": 4204.5,\n      },\n      {\n        \"amount\": 58338,\n        \"price\": 4204,\n      },\n      {\n        \"amount\": 44046,\n        \"price\": 4203.5,\n      },\n      {\n        \"amount\": 46526,\n        \"price\": 4203,\n      },\n      {\n        \"amount\": 23001,\n        \"price\": 4202.5,\n      },\n      {\n        \"amount\": 52320,\n        \"price\": 4202,\n      },\n      {\n        \"amount\": 16181,\n        \"price\": 4201.5,\n      },\n      {\n        \"amount\": 18940,\n        \"price\": 4201,\n      },\n      {\n        \"amount\": 117021,\n        \"price\": 4200.5,\n      },\n      {\n        \"amount\": 4151766,\n        \"price\": 4200,\n      },\n      {\n        \"amount\": 112240,\n        \"price\": 4199.5,\n      },\n      {\n        \"amount\": 305865,\n        \"price\": 4199,\n      },\n      {\n        \"amount\": 377165,\n        \"price\": 4198.5,\n      },\n      {\n        \"amount\": 169496,\n        \"price\": 4198,\n      },\n      {\n        \"amount\": 146032,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 201364,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 399340,\n        \"price\": 4196.5,\n      },\n      {\n        \"amount\": 130156,\n        \"price\": 4196,\n      },\n      {\n        \"amount\": 20755,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 404633,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 94486,\n        \"price\": 4194.5,\n      },\n      {\n        \"amount\": 182544,\n        \"price\": 4194,\n      },\n      {\n        \"amount\": 12919,\n        \"price\": 4193.5,\n      },\n      {\n        \"amount\": 98941,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 72542,\n        \"price\": 4192.5,\n      },\n      {\n        \"amount\": 772908,\n        \"price\": 4192,\n      },\n      {\n        \"amount\": 20803,\n        \"price\": 4191.5,\n      },\n      {\n        \"amount\": 99987,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 149248,\n        \"price\": 4190.5,\n      },\n      {\n        \"amount\": 1386307,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 184619,\n        \"price\": 4189.5,\n      },\n      {\n        \"amount\": 322023,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 148531,\n        \"price\": 4188.5,\n      },\n      {\n        \"amount\": 1035213,\n        \"price\": 4188,\n      },\n      {\n        \"amount\": 256102,\n        \"price\": 4187.5,\n      },\n      {\n        \"amount\": 381218,\n        \"price\": 4187,\n      },\n      {\n        \"amount\": 670900,\n        \"price\": 4186.5,\n      },\n      {\n        \"amount\": 206437,\n        \"price\": 4186,\n      },\n      {\n        \"amount\": 33529,\n        \"price\": 4185.5,\n      },\n      {\n        \"amount\": 463493,\n        \"price\": 4185,\n      },\n      {\n        \"amount\": 271949,\n        \"price\": 4184.5,\n      },\n      {\n        \"amount\": 90262,\n        \"price\": 4184,\n      },\n      {\n        \"amount\": 75537,\n        \"price\": 4183.5,\n      },\n      {\n        \"amount\": 156968,\n        \"price\": 4183,\n      },\n      {\n        \"amount\": 34452,\n        \"price\": 4182.5,\n      },\n      {\n        \"amount\": 185935,\n        \"price\": 4182,\n      },\n      {\n        \"amount\": 142215,\n        \"price\": 4181.5,\n      },\n      {\n        \"amount\": 55845,\n        \"price\": 4181,\n      },\n      {\n        \"amount\": 67337,\n        \"price\": 4180.5,\n      },\n      {\n        \"amount\": 2024793,\n        \"price\": 4180,\n      },\n      {\n        \"amount\": 326319,\n        \"price\": 4179.5,\n      },\n      {\n        \"amount\": 290742,\n        \"price\": 4179,\n      },\n      {\n        \"amount\": 198349,\n        \"price\": 4178.5,\n      },\n      {\n        \"amount\": 318078,\n        \"price\": 4178,\n      },\n      {\n        \"amount\": 194945,\n        \"price\": 4177.5,\n      },\n      {\n        \"amount\": 577930,\n        \"price\": 4177,\n      },\n      {\n        \"amount\": 136181,\n        \"price\": 4176.5,\n      },\n      {\n        \"amount\": 2088068,\n        \"price\": 4176,\n      },\n      {\n        \"amount\": 490781,\n        \"price\": 4175.5,\n      },\n      {\n        \"amount\": 869035,\n        \"price\": 4175,\n      },\n      {\n        \"amount\": 158373,\n        \"price\": 4174.5,\n      },\n      {\n        \"amount\": 242307,\n        \"price\": 4174,\n      },\n      {\n        \"amount\": 219561,\n        \"price\": 4173.5,\n      },\n      {\n        \"amount\": 138947,\n        \"price\": 4173,\n      },\n      {\n        \"amount\": 216532,\n        \"price\": 4172.5,\n      },\n      {\n        \"amount\": 183053,\n        \"price\": 4172,\n      },\n      {\n        \"amount\": 430231,\n        \"price\": 4171.5,\n      },\n      {\n        \"amount\": 151792,\n        \"price\": 4171,\n      },\n      {\n        \"amount\": 180950,\n        \"price\": 4170.5,\n      },\n      {\n        \"amount\": 1602369,\n        \"price\": 4170,\n      },\n      {\n        \"amount\": 166617,\n        \"price\": 4169.5,\n      },\n      {\n        \"amount\": 154972,\n        \"price\": 4169,\n      },\n      {\n        \"amount\": 14814,\n        \"price\": 4168.5,\n      },\n      {\n        \"amount\": 497321,\n        \"price\": 4168,\n      },\n      {\n        \"amount\": 282941,\n        \"price\": 4167.5,\n      },\n      {\n        \"amount\": 165729,\n        \"price\": 4167,\n      },\n      {\n        \"amount\": 244676,\n        \"price\": 4166.5,\n      },\n      {\n        \"amount\": 375603,\n        \"price\": 4166,\n      },\n      {\n        \"amount\": 536483,\n        \"price\": 4165.5,\n      },\n      {\n        \"amount\": 464136,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 78107,\n        \"price\": 4164.5,\n      },\n      {\n        \"amount\": 189049,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 91098,\n        \"price\": 4163.5,\n      },\n      {\n        \"amount\": 231754,\n        \"price\": 4163,\n      },\n      {\n        \"amount\": 167590,\n        \"price\": 4162.5,\n      },\n      {\n        \"amount\": 118109,\n        \"price\": 4162,\n      },\n      {\n        \"amount\": 181285,\n        \"price\": 4161.5,\n      },\n      {\n        \"amount\": 176192,\n        \"price\": 4161,\n      },\n      {\n        \"amount\": 98479,\n        \"price\": 4160.5,\n      },\n      {\n        \"amount\": 1666999,\n        \"price\": 4160,\n      },\n      {\n        \"amount\": 159158,\n        \"price\": 4159.5,\n      },\n      {\n        \"amount\": 545368,\n        \"price\": 4159,\n      },\n      {\n        \"amount\": 197547,\n        \"price\": 4158.5,\n      },\n      {\n        \"amount\": 692871,\n        \"price\": 4158,\n      },\n      {\n        \"amount\": 492023,\n        \"price\": 4157.5,\n      },\n      {\n        \"amount\": 234335,\n        \"price\": 4157,\n      },\n      {\n        \"amount\": 175017,\n        \"price\": 4156.5,\n      },\n      {\n        \"amount\": 244204,\n        \"price\": 4156,\n      },\n      {\n        \"amount\": 122397,\n        \"price\": 4155.5,\n      },\n      {\n        \"amount\": 915032,\n        \"price\": 4155,\n      },\n      {\n        \"amount\": 23923,\n        \"price\": 4154.5,\n      },\n      {\n        \"amount\": 115275,\n        \"price\": 4154,\n      },\n      {\n        \"amount\": 231700,\n        \"price\": 4153.5,\n      },\n      {\n        \"amount\": 299138,\n        \"price\": 4153,\n      },\n      {\n        \"amount\": 295344,\n        \"price\": 4152.5,\n      },\n      {\n        \"amount\": 1602454,\n        \"price\": 4152,\n      },\n      {\n        \"amount\": 69141,\n        \"price\": 4151.5,\n      },\n      {\n        \"amount\": 449142,\n        \"price\": 4151,\n      },\n      {\n        \"amount\": 102878,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 8126978,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 445307,\n        \"price\": 4149.5,\n      },\n      {\n        \"amount\": 638567,\n        \"price\": 4149,\n      },\n      {\n        \"amount\": 786670,\n        \"price\": 4148.5,\n      },\n      {\n        \"amount\": 2676040,\n        \"price\": 4148,\n      },\n      {\n        \"amount\": 473836,\n        \"price\": 4147.5,\n      },\n      {\n        \"amount\": 454834,\n        \"price\": 4147,\n      },\n      {\n        \"amount\": 96964,\n        \"price\": 4146.5,\n      },\n      {\n        \"amount\": 1929209,\n        \"price\": 4146,\n      },\n      {\n        \"amount\": 474315,\n        \"price\": 4145.5,\n      },\n      {\n        \"amount\": 1002831,\n        \"price\": 4145,\n      },\n      {\n        \"amount\": 445999,\n        \"price\": 4144.5,\n      },\n      {\n        \"amount\": 1782436,\n        \"price\": 4144,\n      },\n      {\n        \"amount\": 65688,\n        \"price\": 4143.5,\n      },\n      {\n        \"amount\": 230488,\n        \"price\": 4143,\n      },\n      {\n        \"amount\": 213124,\n        \"price\": 4142.5,\n      },\n      {\n        \"amount\": 391330,\n        \"price\": 4142,\n      },\n      {\n        \"amount\": 138205,\n        \"price\": 4141.5,\n      },\n      {\n        \"amount\": 372820,\n        \"price\": 4141,\n      },\n      {\n        \"amount\": 103477,\n        \"price\": 4140.5,\n      },\n      {\n        \"amount\": 1301773,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 307203,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 595896,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 74322,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 935213,\n        \"price\": 4138,\n      },\n      {\n        \"amount\": 119356,\n        \"price\": 4137.5,\n      },\n      {\n        \"amount\": 242535,\n        \"price\": 4137,\n      },\n      {\n        \"amount\": 150677,\n        \"price\": 4136.5,\n      },\n      {\n        \"amount\": 196753,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 135535,\n        \"price\": 4135.5,\n      },\n      {\n        \"amount\": 817519,\n        \"price\": 4135,\n      },\n      {\n        \"amount\": 50362,\n        \"price\": 4134.5,\n      },\n      {\n        \"amount\": 1410189,\n        \"price\": 4134,\n      },\n      {\n        \"amount\": 246580,\n        \"price\": 4133.5,\n      },\n      {\n        \"amount\": 436932,\n        \"price\": 4133,\n      },\n      {\n        \"amount\": 422426,\n        \"price\": 4132.5,\n      },\n      {\n        \"amount\": 285610,\n        \"price\": 4132,\n      },\n      {\n        \"amount\": 291821,\n        \"price\": 4131.5,\n      },\n      {\n        \"amount\": 265937,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 336220,\n        \"price\": 4130.5,\n      },\n      {\n        \"amount\": 1951817,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 367013,\n        \"price\": 4129.5,\n      },\n      {\n        \"amount\": 1663432,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 270473,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 984303,\n        \"price\": 4128,\n      },\n      {\n        \"amount\": 222363,\n        \"price\": 4127.5,\n      },\n      {\n        \"amount\": 580259,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 57174,\n        \"price\": 4126.5,\n      },\n      {\n        \"amount\": 848756,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 70346,\n        \"price\": 4125.5,\n      },\n      {\n        \"amount\": 750287,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 163379,\n        \"price\": 4124.5,\n      },\n      {\n        \"amount\": 330340,\n        \"price\": 4124,\n      },\n      {\n        \"amount\": 589498,\n        \"price\": 4123.5,\n      },\n      {\n        \"amount\": 247227,\n        \"price\": 4123,\n      },\n      {\n        \"amount\": 980281,\n        \"price\": 4122.5,\n      },\n      {\n        \"amount\": 389766,\n        \"price\": 4122,\n      },\n      {\n        \"amount\": 439355,\n        \"price\": 4121.5,\n      },\n      {\n        \"amount\": 215536,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 454083,\n        \"price\": 4120.5,\n      },\n      {\n        \"amount\": 2331559,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 455387,\n        \"price\": 4119.5,\n      },\n      {\n        \"amount\": 686225,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 448071,\n        \"price\": 4118.5,\n      },\n      {\n        \"amount\": 1291276,\n        \"price\": 4118,\n      },\n      {\n        \"amount\": 530062,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 1091521,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 112228,\n        \"price\": 4116.5,\n      },\n      {\n        \"amount\": 410409,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 848665,\n        \"price\": 4115.5,\n      },\n      {\n        \"amount\": 1157511,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 256678,\n        \"price\": 4114.5,\n      },\n      {\n        \"amount\": 458139,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 301024,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 305093,\n        \"price\": 4113,\n      },\n      {\n        \"amount\": 97096,\n        \"price\": 4112.5,\n      },\n      {\n        \"amount\": 381370,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 413763,\n        \"price\": 4111.5,\n      },\n      {\n        \"amount\": 246536,\n        \"price\": 4111,\n      },\n      {\n        \"amount\": 137968,\n        \"price\": 4110.5,\n      },\n      {\n        \"amount\": 1768716,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 595038,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 480705,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 251575,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 629774,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 511001,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 359934,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 156701,\n        \"price\": 4106.5,\n      },\n      {\n        \"amount\": 500752,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 288608,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 814344,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 138236,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 250312,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 225538,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 363723,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 97942,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 236470,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 237633,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 143306,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 303955,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3380081,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 634033,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 701225,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 615552,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 1072756,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 642031,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1869388,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 349456,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 661233,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 447952,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 754535,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 517741,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 826929,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 249329,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 1710008,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 287094,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85019,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260468,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 415181,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338371,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341068,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362442,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 206440,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 489525,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 338530,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 71706,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 667137,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 228416,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 633279,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 154960,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 320503,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 156968,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 305318,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 494326,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 646779,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 86282,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 550476,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 160431,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 361340,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 154721,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 355917,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 251778,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 536986,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 272364,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 950868,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 125840,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1031424,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 102161,\n        \"price\": 4073.5,\n      },\n      {\n        \"amount\": 205504,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 138406,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 192357,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 233663,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 212862,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 362313,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 1435873,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 710607,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 308926,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 145927,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 553914,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 131711,\n        \"price\": 4067.5,\n      },\n      {\n        \"amount\": 467406,\n        \"price\": 4067,\n      },\n      {\n        \"amount\": 609881,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 433508,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 196633,\n        \"price\": 4065.5,\n      },\n      {\n        \"amount\": 721321,\n        \"price\": 4065,\n      },\n      {\n        \"amount\": 149480,\n        \"price\": 4064.5,\n      },\n      {\n        \"amount\": 126076,\n        \"price\": 4064,\n      },\n      {\n        \"amount\": 122693,\n        \"price\": 4063.5,\n      },\n      {\n        \"amount\": 497845,\n        \"price\": 4063,\n      },\n      {\n        \"amount\": 206197,\n        \"price\": 4062.5,\n      },\n      {\n        \"amount\": 1334372,\n        \"price\": 4062,\n      },\n      {\n        \"amount\": 281903,\n        \"price\": 4061.5,\n      },\n      {\n        \"amount\": 328616,\n        \"price\": 4061,\n      },\n      {\n        \"amount\": 874115,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 1178160,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 88070,\n        \"price\": 4059.5,\n      },\n      {\n        \"amount\": 123950,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 188841,\n        \"price\": 4058.5,\n      },\n      {\n        \"amount\": 359855,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 105673,\n        \"price\": 4057.5,\n      },\n      {\n        \"amount\": 127487,\n        \"price\": 4057,\n      },\n      {\n        \"amount\": 124740,\n        \"price\": 4056.5,\n      },\n      {\n        \"amount\": 479911,\n        \"price\": 4056,\n      },\n      {\n        \"amount\": 277858,\n        \"price\": 4055.5,\n      },\n      {\n        \"amount\": 706316,\n        \"price\": 4055,\n      },\n      {\n        \"amount\": 250738,\n        \"price\": 4054.5,\n      },\n      {\n        \"amount\": 193223,\n        \"price\": 4054,\n      },\n      {\n        \"amount\": 128904,\n        \"price\": 4053.5,\n      },\n      {\n        \"amount\": 127558,\n        \"price\": 4053,\n      },\n      {\n        \"amount\": 219415,\n        \"price\": 4052.5,\n      },\n      {\n        \"amount\": 587406,\n        \"price\": 4052,\n      },\n      {\n        \"amount\": 100981,\n        \"price\": 4051.5,\n      },\n      {\n        \"amount\": 235679,\n        \"price\": 4051,\n      },\n      {\n        \"amount\": 215519,\n        \"price\": 4050.5,\n      },\n      {\n        \"amount\": 1844011,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 81435,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 303553,\n        \"price\": 4049,\n      },\n      {\n        \"amount\": 109792,\n        \"price\": 4048.5,\n      },\n      {\n        \"amount\": 408298,\n        \"price\": 4048,\n      },\n      {\n        \"amount\": 107007,\n        \"price\": 4047.5,\n      },\n      {\n        \"amount\": 854538,\n        \"price\": 4047,\n      },\n      {\n        \"amount\": 189442,\n        \"price\": 4046.5,\n      },\n      {\n        \"amount\": 664030,\n        \"price\": 4046,\n      },\n      {\n        \"amount\": 182996,\n        \"price\": 4045.5,\n      },\n      {\n        \"amount\": 1603958,\n        \"price\": 4045,\n      },\n      {\n        \"amount\": 141491,\n        \"price\": 4044.5,\n      },\n      {\n        \"amount\": 1091689,\n        \"price\": 4044,\n      },\n      {\n        \"amount\": 93322,\n        \"price\": 4043.5,\n      },\n      {\n        \"amount\": 353629,\n        \"price\": 4043,\n      },\n      {\n        \"amount\": 326965,\n        \"price\": 4042.5,\n      },\n      {\n        \"amount\": 496687,\n        \"price\": 4042,\n      },\n      {\n        \"amount\": 167138,\n        \"price\": 4041.5,\n      },\n      {\n        \"amount\": 1056819,\n        \"price\": 4041,\n      },\n      {\n        \"amount\": 527221,\n        \"price\": 4040.5,\n      },\n      {\n        \"amount\": 2723201,\n        \"price\": 4040,\n      },\n      {\n        \"amount\": 244720,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 528066,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 135609,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 499183,\n        \"price\": 4038,\n      },\n      {\n        \"amount\": 383435,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 328932,\n        \"price\": 4037,\n      },\n      {\n        \"amount\": 635779,\n        \"price\": 4036.5,\n      },\n      {\n        \"amount\": 302361,\n        \"price\": 4036,\n      },\n      {\n        \"amount\": 1083180,\n        \"price\": 4035.5,\n      },\n      {\n        \"amount\": 628894,\n        \"price\": 4035,\n      },\n      {\n        \"amount\": 339948,\n        \"price\": 4034.5,\n      },\n      {\n        \"amount\": 182466,\n        \"price\": 4034,\n      },\n      {\n        \"amount\": 583444,\n        \"price\": 4033.5,\n      },\n      {\n        \"amount\": 548087,\n        \"price\": 4033,\n      },\n      {\n        \"amount\": 613299,\n        \"price\": 4032.5,\n      },\n      {\n        \"amount\": 424464,\n        \"price\": 4032,\n      },\n      {\n        \"amount\": 235817,\n        \"price\": 4031.5,\n      },\n      {\n        \"amount\": 449501,\n        \"price\": 4031,\n      },\n      {\n        \"amount\": 448590,\n        \"price\": 4030.5,\n      },\n      {\n        \"amount\": 2148319,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 133512,\n        \"price\": 4029.5,\n      },\n      {\n        \"amount\": 255763,\n        \"price\": 4029,\n      },\n      {\n        \"amount\": 562282,\n        \"price\": 4028.5,\n      },\n      {\n        \"amount\": 621897,\n        \"price\": 4028,\n      },\n      {\n        \"amount\": 182357,\n        \"price\": 4027.5,\n      },\n      {\n        \"amount\": 569803,\n        \"price\": 4027,\n      },\n      {\n        \"amount\": 1165748,\n        \"price\": 4026.5,\n      },\n      {\n        \"amount\": 424686,\n        \"price\": 4026,\n      },\n      {\n        \"amount\": 1026158,\n        \"price\": 4025.5,\n      },\n      {\n        \"amount\": 1909646,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 598270,\n        \"price\": 4024.5,\n      },\n      {\n        \"amount\": 449001,\n        \"price\": 4024,\n      },\n      {\n        \"amount\": 1551161,\n        \"price\": 4023.5,\n      },\n      {\n        \"amount\": 721659,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 502632,\n        \"price\": 4022.5,\n      },\n      {\n        \"amount\": 999221,\n        \"price\": 4022,\n      },\n      {\n        \"amount\": 133756,\n        \"price\": 4021.5,\n      },\n      {\n        \"amount\": 1420414,\n        \"price\": 4021,\n      },\n      {\n        \"amount\": 418740,\n        \"price\": 4020.5,\n      },\n      {\n        \"amount\": 2175249,\n        \"price\": 4020,\n      },\n      {\n        \"amount\": 241206,\n        \"price\": 4019.5,\n      },\n      {\n        \"amount\": 277868,\n        \"price\": 4019,\n      },\n      {\n        \"amount\": 1244943,\n        \"price\": 4018.5,\n      },\n      {\n        \"amount\": 340920,\n        \"price\": 4018,\n      },\n      {\n        \"amount\": 95815,\n        \"price\": 4017.5,\n      },\n      {\n        \"amount\": 547131,\n        \"price\": 4017,\n      },\n      {\n        \"amount\": 643410,\n        \"price\": 4016.5,\n      },\n      {\n        \"amount\": 403387,\n        \"price\": 4016,\n      },\n      {\n        \"amount\": 262828,\n        \"price\": 4015.5,\n      },\n      {\n        \"amount\": 472905,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 46139,\n        \"price\": 4014.5,\n      },\n      {\n        \"amount\": 290705,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 86624,\n        \"price\": 4013.5,\n      },\n      {\n        \"amount\": 814543,\n        \"price\": 4013,\n      },\n      {\n        \"amount\": 105237,\n        \"price\": 4012.5,\n      },\n      {\n        \"amount\": 522558,\n        \"price\": 4012,\n      },\n      {\n        \"amount\": 89709,\n        \"price\": 4011.5,\n      },\n      {\n        \"amount\": 1258911,\n        \"price\": 4011,\n      },\n      {\n        \"amount\": 420568,\n        \"price\": 4010.5,\n      },\n      {\n        \"amount\": 1821306,\n        \"price\": 4010,\n      },\n      {\n        \"amount\": 394016,\n        \"price\": 4009.5,\n      },\n      {\n        \"amount\": 171769,\n        \"price\": 4009,\n      },\n      {\n        \"amount\": 976487,\n        \"price\": 4008.5,\n      },\n      {\n        \"amount\": 249176,\n        \"price\": 4008,\n      },\n      {\n        \"amount\": 414320,\n        \"price\": 4007.5,\n      },\n      {\n        \"amount\": 177988,\n        \"price\": 4007,\n      },\n      {\n        \"amount\": 387368,\n        \"price\": 4006.5,\n      },\n      {\n        \"amount\": 426100,\n        \"price\": 4006,\n      },\n      {\n        \"amount\": 325989,\n        \"price\": 4005.5,\n      },\n      {\n        \"amount\": 1248142,\n        \"price\": 4005,\n      },\n      {\n        \"amount\": 536440,\n        \"price\": 4004.5,\n      },\n      {\n        \"amount\": 403200,\n        \"price\": 4004,\n      },\n      {\n        \"amount\": 382865,\n        \"price\": 4003.5,\n      },\n      {\n        \"amount\": 409301,\n        \"price\": 4003,\n      },\n      {\n        \"amount\": 607153,\n        \"price\": 4002.5,\n      },\n      {\n        \"amount\": 333602,\n        \"price\": 4002,\n      },\n      {\n        \"amount\": 193254,\n        \"price\": 4001.5,\n      },\n      {\n        \"amount\": 701559,\n        \"price\": 4001,\n      },\n      {\n        \"amount\": 677399,\n        \"price\": 4000.5,\n      },\n      {\n        \"amount\": 1755210,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 156407,\n        \"price\": 3999.5,\n      },\n      {\n        \"amount\": 1310165,\n        \"price\": 3999,\n      },\n      {\n        \"amount\": 225510,\n        \"price\": 3998.5,\n      },\n      {\n        \"amount\": 388022,\n        \"price\": 3998,\n      },\n      {\n        \"amount\": 48707,\n        \"price\": 3997.5,\n      },\n      {\n        \"amount\": 649228,\n        \"price\": 3997,\n      },\n      {\n        \"amount\": 71887,\n        \"price\": 3996.5,\n      },\n      {\n        \"amount\": 166727,\n        \"price\": 3996,\n      },\n      {\n        \"amount\": 114078,\n        \"price\": 3995.5,\n      },\n      {\n        \"amount\": 479202,\n        \"price\": 3995,\n      },\n      {\n        \"amount\": 51345,\n        \"price\": 3994.5,\n      },\n      {\n        \"amount\": 160433,\n        \"price\": 3994,\n      },\n      {\n        \"amount\": 536769,\n        \"price\": 3993.5,\n      },\n      {\n        \"amount\": 125754,\n        \"price\": 3993,\n      },\n      {\n        \"amount\": 141196,\n        \"price\": 3992.5,\n      },\n      {\n        \"amount\": 421773,\n        \"price\": 3992,\n      },\n      {\n        \"amount\": 116734,\n        \"price\": 3991.5,\n      },\n      {\n        \"amount\": 179752,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 383958,\n        \"price\": 3990.5,\n      },\n      {\n        \"amount\": 1309144,\n        \"price\": 3990,\n      },\n      {\n        \"amount\": 36593,\n        \"price\": 3989.5,\n      },\n      {\n        \"amount\": 282168,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 33858,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 460762,\n        \"price\": 3988,\n      },\n      {\n        \"amount\": 17173,\n        \"price\": 3987.5,\n      },\n      {\n        \"amount\": 572691,\n        \"price\": 3987,\n      },\n      {\n        \"amount\": 171526,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 391936,\n        \"price\": 3986,\n      },\n      {\n        \"amount\": 131602,\n        \"price\": 3985.5,\n      },\n      {\n        \"amount\": 1652206,\n        \"price\": 3985,\n      },\n      {\n        \"amount\": 136968,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 181721,\n        \"price\": 3984,\n      },\n      {\n        \"amount\": 60071,\n        \"price\": 3983.5,\n      },\n      {\n        \"amount\": 683591,\n        \"price\": 3983,\n      },\n      {\n        \"amount\": 270260,\n        \"price\": 3982.5,\n      },\n      {\n        \"amount\": 305742,\n        \"price\": 3982,\n      },\n      {\n        \"amount\": 33388,\n        \"price\": 3981.5,\n      },\n      {\n        \"amount\": 529542,\n        \"price\": 3981,\n      },\n      {\n        \"amount\": 218621,\n        \"price\": 3980.5,\n      },\n      {\n        \"amount\": 2524916,\n        \"price\": 3980,\n      },\n      {\n        \"amount\": 22873,\n        \"price\": 3979.5,\n      },\n      {\n        \"amount\": 319484,\n        \"price\": 3979,\n      },\n      {\n        \"amount\": 46850,\n        \"price\": 3978.5,\n      },\n      {\n        \"amount\": 235938,\n        \"price\": 3978,\n      },\n      {\n        \"amount\": 236050,\n        \"price\": 3977.5,\n      },\n      {\n        \"amount\": 903903,\n        \"price\": 3977,\n      },\n      {\n        \"amount\": 112676,\n        \"price\": 3976.5,\n      },\n      {\n        \"amount\": 210490,\n        \"price\": 3976,\n      },\n      {\n        \"amount\": 59167,\n        \"price\": 3975.5,\n      },\n      {\n        \"amount\": 508457,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 45620,\n        \"price\": 3974.5,\n      },\n      {\n        \"amount\": 260304,\n        \"price\": 3974,\n      },\n      {\n        \"amount\": 59871,\n        \"price\": 3973.5,\n      },\n      {\n        \"amount\": 185206,\n        \"price\": 3973,\n      },\n      {\n        \"amount\": 63279,\n        \"price\": 3972.5,\n      },\n      {\n        \"amount\": 390173,\n        \"price\": 3972,\n      },\n      {\n        \"amount\": 86484,\n        \"price\": 3971.5,\n      },\n      {\n        \"amount\": 371237,\n        \"price\": 3971,\n      },\n      {\n        \"amount\": 883991,\n        \"price\": 3970.5,\n      },\n      {\n        \"amount\": 1161221,\n        \"price\": 3970,\n      },\n      {\n        \"amount\": 42987,\n        \"price\": 3969.5,\n      },\n      {\n        \"amount\": 178206,\n        \"price\": 3969,\n      },\n      {\n        \"amount\": 19321,\n        \"price\": 3968.5,\n      },\n      {\n        \"amount\": 139410,\n        \"price\": 3968,\n      },\n      {\n        \"amount\": 130453,\n        \"price\": 3967.5,\n      },\n      {\n        \"amount\": 272552,\n        \"price\": 3967,\n      },\n      {\n        \"amount\": 55111,\n        \"price\": 3966.5,\n      },\n      {\n        \"amount\": 607732,\n        \"price\": 3966,\n      },\n      {\n        \"amount\": 152125,\n        \"price\": 3965.5,\n      },\n      {\n        \"amount\": 671991,\n        \"price\": 3965,\n      },\n      {\n        \"amount\": 328898,\n        \"price\": 3964.5,\n      },\n      {\n        \"amount\": 319178,\n        \"price\": 3964,\n      },\n      {\n        \"amount\": 195296,\n        \"price\": 3963.5,\n      },\n      {\n        \"amount\": 972882,\n        \"price\": 3963,\n      },\n      {\n        \"amount\": 172820,\n        \"price\": 3962.5,\n      },\n      {\n        \"amount\": 1077742,\n        \"price\": 3962,\n      },\n      {\n        \"amount\": 14154,\n        \"price\": 3961.5,\n      },\n      {\n        \"amount\": 443866,\n        \"price\": 3961,\n      },\n      {\n        \"amount\": 104289,\n        \"price\": 3960.5,\n      },\n      {\n        \"amount\": 1499078,\n        \"price\": 3960,\n      },\n      {\n        \"amount\": 92580,\n        \"price\": 3959.5,\n      },\n      {\n        \"amount\": 1022388,\n        \"price\": 3959,\n      },\n      {\n        \"amount\": 51190,\n        \"price\": 3958.5,\n      },\n      {\n        \"amount\": 481778,\n        \"price\": 3958,\n      },\n      {\n        \"amount\": 44418,\n        \"price\": 3957.5,\n      },\n      {\n        \"amount\": 307705,\n        \"price\": 3957,\n      },\n      {\n        \"amount\": 959214,\n        \"price\": 3956.5,\n      },\n      {\n        \"amount\": 663547,\n        \"price\": 3956,\n      },\n      {\n        \"amount\": 131413,\n        \"price\": 3955.5,\n      },\n      {\n        \"amount\": 1346763,\n        \"price\": 3955,\n      },\n      {\n        \"amount\": 85889,\n        \"price\": 3954.5,\n      },\n      {\n        \"amount\": 172733,\n        \"price\": 3954,\n      },\n      {\n        \"amount\": 52670,\n        \"price\": 3953.5,\n      },\n      {\n        \"amount\": 285333,\n        \"price\": 3953,\n      },\n      {\n        \"amount\": 628961,\n        \"price\": 3952.5,\n      },\n      {\n        \"amount\": 354326,\n        \"price\": 3952,\n      },\n      {\n        \"amount\": 64895,\n        \"price\": 3951.5,\n      },\n      {\n        \"amount\": 636949,\n        \"price\": 3951,\n      },\n      {\n        \"amount\": 88955,\n        \"price\": 3950.5,\n      },\n      {\n        \"amount\": 1611196,\n        \"price\": 3950,\n      },\n      {\n        \"amount\": 80866,\n        \"price\": 3949.5,\n      },\n      {\n        \"amount\": 85885,\n        \"price\": 3949,\n      },\n      {\n        \"amount\": 147745,\n        \"price\": 3948.5,\n      },\n      {\n        \"amount\": 337624,\n        \"price\": 3948,\n      },\n      {\n        \"amount\": 40334,\n        \"price\": 3947.5,\n      },\n      {\n        \"amount\": 110325,\n        \"price\": 3947,\n      },\n      {\n        \"amount\": 30946,\n        \"price\": 3946.5,\n      },\n      {\n        \"amount\": 295799,\n        \"price\": 3946,\n      },\n      {\n        \"amount\": 119610,\n        \"price\": 3945.5,\n      },\n      {\n        \"amount\": 471495,\n        \"price\": 3945,\n      },\n      {\n        \"amount\": 46631,\n        \"price\": 3944.5,\n      },\n      {\n        \"amount\": 128168,\n        \"price\": 3944,\n      },\n      {\n        \"amount\": 340215,\n        \"price\": 3943.5,\n      },\n      {\n        \"amount\": 204351,\n        \"price\": 3943,\n      },\n      {\n        \"amount\": 36920,\n        \"price\": 3942.5,\n      },\n      {\n        \"amount\": 181519,\n        \"price\": 3942,\n      },\n      {\n        \"amount\": 58923,\n        \"price\": 3941.5,\n      },\n      {\n        \"amount\": 236936,\n        \"price\": 3941,\n      },\n      {\n        \"amount\": 108952,\n        \"price\": 3940.5,\n      },\n      {\n        \"amount\": 1083833,\n        \"price\": 3940,\n      },\n      {\n        \"amount\": 15622,\n        \"price\": 3939.5,\n      },\n      {\n        \"amount\": 391425,\n        \"price\": 3939,\n      },\n      {\n        \"amount\": 13911,\n        \"price\": 3938.5,\n      },\n      {\n        \"amount\": 481447,\n        \"price\": 3938,\n      },\n      {\n        \"amount\": 26870,\n        \"price\": 3937.5,\n      },\n      {\n        \"amount\": 255331,\n        \"price\": 3937,\n      },\n      {\n        \"amount\": 42785,\n        \"price\": 3936.5,\n      },\n      {\n        \"amount\": 1026281,\n        \"price\": 3936,\n      },\n      {\n        \"amount\": 593493,\n        \"price\": 3935.5,\n      },\n      {\n        \"amount\": 292507,\n        \"price\": 3935,\n      },\n      {\n        \"amount\": 14487,\n        \"price\": 3934.5,\n      },\n      {\n        \"amount\": 221925,\n        \"price\": 3934,\n      },\n      {\n        \"amount\": 97494,\n        \"price\": 3933.5,\n      },\n      {\n        \"amount\": 578769,\n        \"price\": 3933,\n      },\n      {\n        \"amount\": 40964,\n        \"price\": 3932.5,\n      },\n      {\n        \"amount\": 581659,\n        \"price\": 3932,\n      },\n      {\n        \"amount\": 377601,\n        \"price\": 3931.5,\n      },\n      {\n        \"amount\": 322582,\n        \"price\": 3931,\n      },\n      {\n        \"amount\": 303592,\n        \"price\": 3930.5,\n      },\n      {\n        \"amount\": 659253,\n        \"price\": 3930,\n      },\n      {\n        \"amount\": 11730,\n        \"price\": 3929.5,\n      },\n      {\n        \"amount\": 279663,\n        \"price\": 3929,\n      },\n      {\n        \"amount\": 25363,\n        \"price\": 3928.5,\n      },\n      {\n        \"amount\": 121193,\n        \"price\": 3928,\n      },\n      {\n        \"amount\": 55677,\n        \"price\": 3927.5,\n      },\n      {\n        \"amount\": 139978,\n        \"price\": 3927,\n      },\n      {\n        \"amount\": 115768,\n        \"price\": 3926.5,\n      },\n      {\n        \"amount\": 223776,\n        \"price\": 3926,\n      },\n      {\n        \"amount\": 52385,\n        \"price\": 3925.5,\n      },\n      {\n        \"amount\": 1230187,\n        \"price\": 3925,\n      },\n      {\n        \"amount\": 9550,\n        \"price\": 3924.5,\n      },\n      {\n        \"amount\": 397658,\n        \"price\": 3924,\n      },\n      {\n        \"amount\": 161032,\n        \"price\": 3923.5,\n      },\n      {\n        \"amount\": 236140,\n        \"price\": 3923,\n      },\n      {\n        \"amount\": 51446,\n        \"price\": 3922.5,\n      },\n      {\n        \"amount\": 126195,\n        \"price\": 3922,\n      },\n      {\n        \"amount\": 74241,\n        \"price\": 3921.5,\n      },\n      {\n        \"amount\": 533588,\n        \"price\": 3921,\n      },\n      {\n        \"amount\": 43726,\n        \"price\": 3920.5,\n      },\n      {\n        \"amount\": 682106,\n        \"price\": 3920,\n      },\n      {\n        \"amount\": 39118,\n        \"price\": 3919.5,\n      },\n      {\n        \"amount\": 132353,\n        \"price\": 3919,\n      },\n      {\n        \"amount\": 16735,\n        \"price\": 3918.5,\n      },\n      {\n        \"amount\": 102299,\n        \"price\": 3918,\n      },\n      {\n        \"amount\": 24799,\n        \"price\": 3917.5,\n      },\n      {\n        \"amount\": 254012,\n        \"price\": 3917,\n      },\n      {\n        \"amount\": 38392,\n        \"price\": 3916.5,\n      },\n      {\n        \"amount\": 204008,\n        \"price\": 3916,\n      },\n      {\n        \"amount\": 51623,\n        \"price\": 3915.5,\n      },\n      {\n        \"amount\": 473790,\n        \"price\": 3915,\n      },\n      {\n        \"amount\": 66957,\n        \"price\": 3914.5,\n      },\n      {\n        \"amount\": 101875,\n        \"price\": 3914,\n      },\n      {\n        \"amount\": 50475,\n        \"price\": 3913.5,\n      },\n      {\n        \"amount\": 142373,\n        \"price\": 3913,\n      },\n      {\n        \"amount\": 41662,\n        \"price\": 3912.5,\n      },\n      {\n        \"amount\": 129987,\n        \"price\": 3912,\n      },\n      {\n        \"amount\": 14671,\n        \"price\": 3911.5,\n      },\n      {\n        \"amount\": 305513,\n        \"price\": 3911,\n      },\n      {\n        \"amount\": 178183,\n        \"price\": 3910.5,\n      },\n      {\n        \"amount\": 1503424,\n        \"price\": 3910,\n      },\n      {\n        \"amount\": 48864,\n        \"price\": 3909.5,\n      },\n      {\n        \"amount\": 85420,\n        \"price\": 3909,\n      },\n      {\n        \"amount\": 48856,\n        \"price\": 3908.5,\n      },\n      {\n        \"amount\": 284719,\n        \"price\": 3908,\n      },\n      {\n        \"amount\": 41953,\n        \"price\": 3907.5,\n      },\n      {\n        \"amount\": 103874,\n        \"price\": 3907,\n      },\n      {\n        \"amount\": 10689,\n        \"price\": 3906.5,\n      },\n      {\n        \"amount\": 311931,\n        \"price\": 3906,\n      },\n      {\n        \"amount\": 86572,\n        \"price\": 3905.5,\n      },\n      {\n        \"amount\": 263328,\n        \"price\": 3905,\n      },\n      {\n        \"amount\": 47748,\n        \"price\": 3904.5,\n      },\n      {\n        \"amount\": 177042,\n        \"price\": 3904,\n      },\n      {\n        \"amount\": 166844,\n        \"price\": 3903.5,\n      },\n      {\n        \"amount\": 217134,\n        \"price\": 3903,\n      },\n      {\n        \"amount\": 16400,\n        \"price\": 3902.5,\n      },\n      {\n        \"amount\": 229634,\n        \"price\": 3902,\n      },\n      {\n        \"amount\": 11520,\n        \"price\": 3901.5,\n      },\n      {\n        \"amount\": 446905,\n        \"price\": 3901,\n      },\n      {\n        \"amount\": 1428785,\n        \"price\": 3900.5,\n      },\n      {\n        \"amount\": 1318193,\n        \"price\": 3900,\n      },\n      {\n        \"amount\": 1137,\n        \"price\": 3899.5,\n      },\n      {\n        \"amount\": 114115,\n        \"price\": 3899,\n      },\n      {\n        \"amount\": 6706,\n        \"price\": 3898.5,\n      },\n      {\n        \"amount\": 55005,\n        \"price\": 3898,\n      },\n      {\n        \"amount\": 18914,\n        \"price\": 3897.5,\n      },\n      {\n        \"amount\": 20387,\n        \"price\": 3897,\n      },\n      {\n        \"amount\": 13895,\n        \"price\": 3896.5,\n      },\n      {\n        \"amount\": 46430,\n        \"price\": 3896,\n      },\n      {\n        \"amount\": 119423,\n        \"price\": 3895.5,\n      },\n      {\n        \"amount\": 101612,\n        \"price\": 3895,\n      },\n      {\n        \"amount\": 1221,\n        \"price\": 3894.5,\n      },\n      {\n        \"amount\": 58281,\n        \"price\": 3894,\n      },\n      {\n        \"amount\": 18199,\n        \"price\": 3893.5,\n      },\n      {\n        \"amount\": 50039,\n        \"price\": 3893,\n      },\n      {\n        \"amount\": 182196,\n        \"price\": 3892.5,\n      },\n      {\n        \"amount\": 210786,\n        \"price\": 3892,\n      },\n      {\n        \"amount\": 5611,\n        \"price\": 3891.5,\n      },\n      {\n        \"amount\": 425327,\n        \"price\": 3891,\n      },\n      {\n        \"amount\": 104579,\n        \"price\": 3890.5,\n      },\n      {\n        \"amount\": 768008,\n        \"price\": 3890,\n      },\n      {\n        \"amount\": 122945,\n        \"price\": 3889.5,\n      },\n      {\n        \"amount\": 712311,\n        \"price\": 3889,\n      },\n      {\n        \"amount\": 66471,\n        \"price\": 3888.5,\n      },\n      {\n        \"amount\": 369191,\n        \"price\": 3888,\n      },\n      {\n        \"amount\": 402924,\n        \"price\": 3887.5,\n      },\n      {\n        \"amount\": 200118,\n        \"price\": 3887,\n      },\n      {\n        \"amount\": 8408,\n        \"price\": 3886.5,\n      },\n      {\n        \"amount\": 168592,\n        \"price\": 3886,\n      },\n      {\n        \"amount\": 135680,\n        \"price\": 3885.5,\n      },\n      {\n        \"amount\": 262940,\n        \"price\": 3885,\n      },\n      {\n        \"amount\": 72684,\n        \"price\": 3884.5,\n      },\n      {\n        \"amount\": 486705,\n        \"price\": 3884,\n      },\n      {\n        \"amount\": 62750,\n        \"price\": 3883.5,\n      },\n      {\n        \"amount\": 151414,\n        \"price\": 3883,\n      },\n      {\n        \"amount\": 100424,\n        \"price\": 3882.5,\n      },\n      {\n        \"amount\": 468429,\n        \"price\": 3882,\n      },\n      {\n        \"amount\": 27160,\n        \"price\": 3881.5,\n      },\n      {\n        \"amount\": 181089,\n        \"price\": 3881,\n      },\n      {\n        \"amount\": 43228,\n        \"price\": 3880.5,\n      },\n      {\n        \"amount\": 1082895,\n        \"price\": 3880,\n      },\n      {\n        \"amount\": 11790,\n        \"price\": 3879.5,\n      },\n      {\n        \"amount\": 139072,\n        \"price\": 3879,\n      },\n      {\n        \"amount\": 17845,\n        \"price\": 3878.5,\n      },\n      {\n        \"amount\": 77792,\n        \"price\": 3878,\n      },\n      {\n        \"amount\": 17938,\n        \"price\": 3877.5,\n      },\n      {\n        \"amount\": 255318,\n        \"price\": 3877,\n      },\n      {\n        \"amount\": 1300,\n        \"price\": 3876.5,\n      },\n      {\n        \"amount\": 130360,\n        \"price\": 3876,\n      },\n      {\n        \"amount\": 268907,\n        \"price\": 3875.5,\n      },\n      {\n        \"amount\": 169168,\n        \"price\": 3875,\n      },\n      {\n        \"amount\": 74155,\n        \"price\": 3874.5,\n      },\n      {\n        \"amount\": 60576,\n        \"price\": 3874,\n      },\n      {\n        \"amount\": 16695,\n        \"price\": 3873.5,\n      },\n      {\n        \"amount\": 34885,\n        \"price\": 3873,\n      },\n      {\n        \"amount\": 21039,\n        \"price\": 3872.5,\n      },\n      {\n        \"amount\": 165323,\n        \"price\": 3872,\n      },\n      {\n        \"amount\": 40870,\n        \"price\": 3871.5,\n      },\n      {\n        \"amount\": 207924,\n        \"price\": 3871,\n      },\n      {\n        \"amount\": 87420,\n        \"price\": 3870.5,\n      },\n      {\n        \"amount\": 683621,\n        \"price\": 3870,\n      },\n      {\n        \"amount\": 49196,\n        \"price\": 3869.5,\n      },\n      {\n        \"amount\": 67124,\n        \"price\": 3869,\n      },\n      {\n        \"amount\": 14567,\n        \"price\": 3868.5,\n      },\n      {\n        \"amount\": 184830,\n        \"price\": 3868,\n      },\n      {\n        \"amount\": 80638,\n        \"price\": 3867.5,\n      },\n      {\n        \"amount\": 108003,\n        \"price\": 3867,\n      },\n      {\n        \"amount\": 27473,\n        \"price\": 3866.5,\n      },\n      {\n        \"amount\": 214173,\n        \"price\": 3866,\n      },\n      {\n        \"amount\": 72939,\n        \"price\": 3865.5,\n      },\n      {\n        \"amount\": 1696876,\n        \"price\": 3865,\n      },\n      {\n        \"amount\": 23135,\n        \"price\": 3864.5,\n      },\n      {\n        \"amount\": 86276,\n        \"price\": 3864,\n      },\n      {\n        \"amount\": 45378,\n        \"price\": 3863.5,\n      },\n      {\n        \"amount\": 181747,\n        \"price\": 3863,\n      },\n      {\n        \"amount\": 24243,\n        \"price\": 3862.5,\n      },\n      {\n        \"amount\": 142056,\n        \"price\": 3862,\n      },\n      {\n        \"amount\": 118230,\n        \"price\": 3861.5,\n      },\n      {\n        \"amount\": 505303,\n        \"price\": 3861,\n      },\n      {\n        \"amount\": 86730,\n        \"price\": 3860.5,\n      },\n      {\n        \"amount\": 482641,\n        \"price\": 3860,\n      },\n      {\n        \"amount\": 30774,\n        \"price\": 3859.5,\n      },\n      {\n        \"amount\": 130570,\n        \"price\": 3859,\n      },\n      {\n        \"amount\": 160601,\n        \"price\": 3858.5,\n      },\n      {\n        \"amount\": 84053,\n        \"price\": 3858,\n      },\n      {\n        \"amount\": 33934,\n        \"price\": 3857.5,\n      },\n      {\n        \"amount\": 330399,\n        \"price\": 3857,\n      },\n      {\n        \"amount\": 1260,\n        \"price\": 3856.5,\n      },\n      {\n        \"amount\": 361633,\n        \"price\": 3856,\n      },\n      {\n        \"amount\": 39767,\n        \"price\": 3855.5,\n      },\n      {\n        \"amount\": 1373851,\n        \"price\": 3855,\n      },\n      {\n        \"amount\": 10399,\n        \"price\": 3854.5,\n      },\n      {\n        \"amount\": 68155,\n        \"price\": 3854,\n      },\n      {\n        \"amount\": 115916,\n        \"price\": 3853.5,\n      },\n      {\n        \"amount\": 120875,\n        \"price\": 3853,\n      },\n      {\n        \"amount\": 19372,\n        \"price\": 3852.5,\n      },\n      {\n        \"amount\": 161728,\n        \"price\": 3852,\n      },\n      {\n        \"amount\": 60590,\n        \"price\": 3851.5,\n      },\n      {\n        \"amount\": 303031,\n        \"price\": 3851,\n      },\n      {\n        \"amount\": 79572,\n        \"price\": 3850.5,\n      },\n      {\n        \"amount\": 1671794,\n        \"price\": 3850,\n      },\n      {\n        \"amount\": 15967,\n        \"price\": 3849.5,\n      },\n      {\n        \"amount\": 32820,\n        \"price\": 3849,\n      },\n      {\n        \"amount\": 10411,\n        \"price\": 3848.5,\n      },\n      {\n        \"amount\": 79893,\n        \"price\": 3848,\n      },\n      {\n        \"amount\": 22280,\n        \"price\": 3847.5,\n      },\n      {\n        \"amount\": 24104,\n        \"price\": 3847,\n      },\n      {\n        \"amount\": 34100,\n        \"price\": 3846.5,\n      },\n      {\n        \"amount\": 34012,\n        \"price\": 3846,\n      },\n      {\n        \"amount\": 50150,\n        \"price\": 3845.5,\n      },\n      {\n        \"amount\": 160392,\n        \"price\": 3845,\n      },\n      {\n        \"amount\": 11170,\n        \"price\": 3844.5,\n      },\n      {\n        \"amount\": 226041,\n        \"price\": 3844,\n      },\n      {\n        \"amount\": 104062,\n        \"price\": 3843.5,\n      },\n      {\n        \"amount\": 38463,\n        \"price\": 3843,\n      },\n      {\n        \"amount\": 19498,\n        \"price\": 3842.5,\n      },\n      {\n        \"amount\": 44285,\n        \"price\": 3842,\n      },\n      {\n        \"amount\": 884979,\n        \"price\": 3841.5,\n      },\n      {\n        \"amount\": 17035,\n        \"price\": 3841,\n      },\n      {\n        \"amount\": 57757,\n        \"price\": 3840.5,\n      },\n      {\n        \"amount\": 217063,\n        \"price\": 3840,\n      },\n      {\n        \"amount\": 111368,\n        \"price\": 3839.5,\n      },\n      {\n        \"amount\": 260486,\n        \"price\": 3839,\n      },\n      {\n        \"amount\": 131683,\n        \"price\": 3838.5,\n      },\n      {\n        \"amount\": 233375,\n        \"price\": 3838,\n      },\n      {\n        \"amount\": 18260,\n        \"price\": 3837.5,\n      },\n      {\n        \"amount\": 117178,\n        \"price\": 3837,\n      },\n      {\n        \"amount\": 25146,\n        \"price\": 3836.5,\n      },\n      {\n        \"amount\": 393236,\n        \"price\": 3836,\n      },\n      {\n        \"amount\": 20234,\n        \"price\": 3835.5,\n      },\n      {\n        \"amount\": 133289,\n        \"price\": 3835,\n      },\n      {\n        \"amount\": 15671,\n        \"price\": 3834.5,\n      },\n      {\n        \"amount\": 16338,\n        \"price\": 3834,\n      },\n      {\n        \"amount\": 19507,\n        \"price\": 3833.5,\n      },\n      {\n        \"amount\": 75317,\n        \"price\": 3833,\n      },\n      {\n        \"amount\": 34361,\n        \"price\": 3832.5,\n      },\n      {\n        \"amount\": 730227,\n        \"price\": 3832,\n      },\n      {\n        \"amount\": 1792,\n        \"price\": 3831.5,\n      },\n      {\n        \"amount\": 121430,\n        \"price\": 3831,\n      },\n      {\n        \"amount\": 108858,\n        \"price\": 3830.5,\n      },\n      {\n        \"amount\": 310762,\n        \"price\": 3830,\n      },\n      {\n        \"amount\": 131800,\n        \"price\": 3829.5,\n      },\n      {\n        \"amount\": 23510,\n        \"price\": 3829,\n      },\n      {\n        \"amount\": 7958,\n        \"price\": 3828.5,\n      },\n      {\n        \"amount\": 768201,\n        \"price\": 3828,\n      },\n      {\n        \"amount\": 14999,\n        \"price\": 3827.5,\n      },\n      {\n        \"amount\": 46175,\n        \"price\": 3827,\n      },\n      {\n        \"amount\": 32019,\n        \"price\": 3826.5,\n      },\n      {\n        \"amount\": 25748,\n        \"price\": 3826,\n      },\n      {\n        \"amount\": 23465,\n        \"price\": 3825.5,\n      },\n      {\n        \"amount\": 893043,\n        \"price\": 3825,\n      },\n      {\n        \"amount\": 14611,\n        \"price\": 3824.5,\n      },\n      {\n        \"amount\": 104615,\n        \"price\": 3824,\n      },\n      {\n        \"amount\": 59649,\n        \"price\": 3823.5,\n      },\n      {\n        \"amount\": 37195,\n        \"price\": 3823,\n      },\n      {\n        \"amount\": 17341,\n        \"price\": 3822.5,\n      },\n      {\n        \"amount\": 181963,\n        \"price\": 3822,\n      },\n      {\n        \"amount\": 5070,\n        \"price\": 3821.5,\n      },\n      {\n        \"amount\": 20063,\n        \"price\": 3821,\n      },\n      {\n        \"amount\": 27828,\n        \"price\": 3820.5,\n      },\n      {\n        \"amount\": 391325,\n        \"price\": 3820,\n      },\n      {\n        \"amount\": 108490,\n        \"price\": 3819.5,\n      },\n      {\n        \"amount\": 43274,\n        \"price\": 3819,\n      },\n      {\n        \"amount\": 11050,\n        \"price\": 3818.5,\n      },\n      {\n        \"amount\": 163024,\n        \"price\": 3818,\n      },\n      {\n        \"amount\": 7464,\n        \"price\": 3817.5,\n      },\n      {\n        \"amount\": 47078,\n        \"price\": 3817,\n      },\n      {\n        \"amount\": 12190,\n        \"price\": 3816.5,\n      },\n      {\n        \"amount\": 265814,\n        \"price\": 3816,\n      },\n      {\n        \"amount\": 18240,\n        \"price\": 3815.5,\n      },\n      {\n        \"amount\": 287547,\n        \"price\": 3815,\n      },\n      {\n        \"amount\": 117745,\n        \"price\": 3814.5,\n      },\n      {\n        \"amount\": 27419,\n        \"price\": 3814,\n      },\n      {\n        \"amount\": 1024859,\n        \"price\": 3813.5,\n      },\n      {\n        \"amount\": 29750,\n        \"price\": 3813,\n      },\n      {\n        \"amount\": 13765,\n        \"price\": 3812.5,\n      },\n      {\n        \"amount\": 91220,\n        \"price\": 3812,\n      },\n      {\n        \"amount\": 18203,\n        \"price\": 3811.5,\n      },\n      {\n        \"amount\": 80183,\n        \"price\": 3811,\n      },\n      {\n        \"amount\": 36652,\n        \"price\": 3810.5,\n      },\n      {\n        \"amount\": 234839,\n        \"price\": 3810,\n      },\n      {\n        \"amount\": 106486,\n        \"price\": 3809.5,\n      },\n      {\n        \"amount\": 46909,\n        \"price\": 3809,\n      },\n      {\n        \"amount\": 6780,\n        \"price\": 3808.5,\n      },\n      {\n        \"amount\": 88011,\n        \"price\": 3808,\n      },\n      {\n        \"amount\": 37500,\n        \"price\": 3807.5,\n      },\n      {\n        \"amount\": 35953,\n        \"price\": 3807,\n      },\n      {\n        \"amount\": 71529,\n        \"price\": 3806.5,\n      },\n      {\n        \"amount\": 36115,\n        \"price\": 3806,\n      },\n      {\n        \"amount\": 23348,\n        \"price\": 3805.5,\n      },\n      {\n        \"amount\": 228940,\n        \"price\": 3805,\n      },\n      {\n        \"amount\": 8260,\n        \"price\": 3804.5,\n      },\n      {\n        \"amount\": 35250,\n        \"price\": 3804,\n      },\n      {\n        \"amount\": 67671,\n        \"price\": 3803.5,\n      },\n      {\n        \"amount\": 82181,\n        \"price\": 3803,\n      },\n      {\n        \"amount\": 49240,\n        \"price\": 3802.5,\n      },\n      {\n        \"amount\": 58239,\n        \"price\": 3802,\n      },\n      {\n        \"amount\": 56620,\n        \"price\": 3801.5,\n      },\n      {\n        \"amount\": 1149102,\n        \"price\": 3801,\n      },\n      {\n        \"amount\": 211955,\n        \"price\": 3800.5,\n      },\n      {\n        \"amount\": 1623608,\n        \"price\": 3800,\n      },\n      {\n        \"amount\": 51080,\n        \"price\": 3799.5,\n      },\n      {\n        \"amount\": 82986,\n        \"price\": 3799,\n      },\n      {\n        \"amount\": 3012,\n        \"price\": 3798.5,\n      },\n      {\n        \"amount\": 41220,\n        \"price\": 3798,\n      },\n      {\n        \"amount\": 62405,\n        \"price\": 3797.5,\n      },\n      {\n        \"amount\": 25076,\n        \"price\": 3797,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3796.5,\n      },\n      {\n        \"amount\": 20069,\n        \"price\": 3796,\n      },\n      {\n        \"amount\": 15887,\n        \"price\": 3795.5,\n      },\n      {\n        \"amount\": 56992,\n        \"price\": 3795,\n      },\n      {\n        \"amount\": 3475,\n        \"price\": 3794.5,\n      },\n      {\n        \"amount\": 14470,\n        \"price\": 3794,\n      },\n      {\n        \"amount\": 3150,\n        \"price\": 3793.5,\n      },\n      {\n        \"amount\": 33240,\n        \"price\": 3793,\n      },\n      {\n        \"amount\": 33336,\n        \"price\": 3792.5,\n      },\n      {\n        \"amount\": 120882,\n        \"price\": 3792,\n      },\n      {\n        \"amount\": 301638,\n        \"price\": 3791.5,\n      },\n      {\n        \"amount\": 171473,\n        \"price\": 3791,\n      },\n      {\n        \"amount\": 7388,\n        \"price\": 3790.5,\n      },\n      {\n        \"amount\": 399017,\n        \"price\": 3790,\n      },\n      {\n        \"amount\": 120348,\n        \"price\": 3789.5,\n      },\n      {\n        \"amount\": 1775,\n        \"price\": 3789,\n      },\n      {\n        \"amount\": 8526,\n        \"price\": 3788.5,\n      },\n      {\n        \"amount\": 148920,\n        \"price\": 3788,\n      },\n      {\n        \"amount\": 12953,\n        \"price\": 3787.5,\n      },\n      {\n        \"amount\": 26259,\n        \"price\": 3787,\n      },\n      {\n        \"amount\": 22420,\n        \"price\": 3786.5,\n      },\n      {\n        \"amount\": 46703,\n        \"price\": 3786,\n      },\n      {\n        \"amount\": 17610,\n        \"price\": 3785.5,\n      },\n      {\n        \"amount\": 58816,\n        \"price\": 3785,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 3784.5,\n      },\n      {\n        \"amount\": 27134,\n        \"price\": 3784,\n      },\n      {\n        \"amount\": 19160,\n        \"price\": 3783.5,\n      },\n      {\n        \"amount\": 55402,\n        \"price\": 3783,\n      },\n      {\n        \"amount\": 8350,\n        \"price\": 3782.5,\n      },\n      {\n        \"amount\": 338647,\n        \"price\": 3782,\n      },\n      {\n        \"amount\": 30680,\n        \"price\": 3781.5,\n      },\n      {\n        \"amount\": 68068,\n        \"price\": 3781,\n      },\n      {\n        \"amount\": 9087,\n        \"price\": 3780.5,\n      },\n      {\n        \"amount\": 535349,\n        \"price\": 3780,\n      },\n      {\n        \"amount\": 172650,\n        \"price\": 3779.5,\n      },\n      {\n        \"amount\": 139386,\n        \"price\": 3779,\n      },\n      {\n        \"amount\": 3532,\n        \"price\": 3778.5,\n      },\n      {\n        \"amount\": 32281,\n        \"price\": 3778,\n      },\n      {\n        \"amount\": 69387,\n        \"price\": 3777.5,\n      },\n      {\n        \"amount\": 747463,\n        \"price\": 3777,\n      },\n      {\n        \"amount\": 27590,\n        \"price\": 3776.5,\n      },\n      {\n        \"amount\": 22399,\n        \"price\": 3776,\n      },\n      {\n        \"amount\": 152614,\n        \"price\": 3775.5,\n      },\n      {\n        \"amount\": 170366,\n        \"price\": 3775,\n      },\n      {\n        \"amount\": 19916,\n        \"price\": 3774.5,\n      },\n      {\n        \"amount\": 93664,\n        \"price\": 3774,\n      },\n      {\n        \"amount\": 5219,\n        \"price\": 3773.5,\n      },\n      {\n        \"amount\": 40281,\n        \"price\": 3773,\n      },\n      {\n        \"amount\": 56215,\n        \"price\": 3772.5,\n      },\n      {\n        \"amount\": 33641,\n        \"price\": 3772,\n      },\n      {\n        \"amount\": 96573,\n        \"price\": 3771.5,\n      },\n      {\n        \"amount\": 192250,\n        \"price\": 3771,\n      },\n      {\n        \"amount\": 48750,\n        \"price\": 3770.5,\n      },\n      {\n        \"amount\": 334605,\n        \"price\": 3770,\n      },\n      {\n        \"amount\": 66406,\n        \"price\": 3769.5,\n      },\n      {\n        \"amount\": 60701,\n        \"price\": 3769,\n      },\n      {\n        \"amount\": 17850,\n        \"price\": 3768.5,\n      },\n      {\n        \"amount\": 52898,\n        \"price\": 3768,\n      },\n      {\n        \"amount\": 7460,\n        \"price\": 3767.5,\n      },\n      {\n        \"amount\": 49697,\n        \"price\": 3767,\n      },\n      {\n        \"amount\": 319972,\n        \"price\": 3766.5,\n      },\n      {\n        \"amount\": 139551,\n        \"price\": 3766,\n      },\n      {\n        \"amount\": 35376,\n        \"price\": 3765.5,\n      },\n      {\n        \"amount\": 273259,\n        \"price\": 3765,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3764.5,\n      },\n      {\n        \"amount\": 57537,\n        \"price\": 3764,\n      },\n      {\n        \"amount\": 11976,\n        \"price\": 3763.5,\n      },\n      {\n        \"amount\": 130390,\n        \"price\": 3763,\n      },\n      {\n        \"amount\": 59868,\n        \"price\": 3762.5,\n      },\n      {\n        \"amount\": 179394,\n        \"price\": 3762,\n      },\n      {\n        \"amount\": 34661,\n        \"price\": 3761.5,\n      },\n      {\n        \"amount\": 150300,\n        \"price\": 3761,\n      },\n      {\n        \"amount\": 65377,\n        \"price\": 3760.5,\n      },\n      {\n        \"amount\": 519351,\n        \"price\": 3760,\n      },\n      {\n        \"amount\": 4870,\n        \"price\": 3759.5,\n      },\n      {\n        \"amount\": 129261,\n        \"price\": 3759,\n      },\n      {\n        \"amount\": 6675,\n        \"price\": 3758.5,\n      },\n      {\n        \"amount\": 332966,\n        \"price\": 3758,\n      },\n      {\n        \"amount\": 19389,\n        \"price\": 3757.5,\n      },\n      {\n        \"amount\": 168922,\n        \"price\": 3757,\n      },\n      {\n        \"amount\": 7940,\n        \"price\": 3756.5,\n      },\n      {\n        \"amount\": 492952,\n        \"price\": 3756,\n      },\n      {\n        \"amount\": 86904,\n        \"price\": 3755.5,\n      },\n      {\n        \"amount\": 362173,\n        \"price\": 3755,\n      },\n      {\n        \"amount\": 23109,\n        \"price\": 3754.5,\n      },\n      {\n        \"amount\": 318161,\n        \"price\": 3754,\n      },\n      {\n        \"amount\": 4480,\n        \"price\": 3753.5,\n      },\n      {\n        \"amount\": 90750,\n        \"price\": 3753,\n      },\n      {\n        \"amount\": 35203,\n        \"price\": 3752.5,\n      },\n      {\n        \"amount\": 39925,\n        \"price\": 3752,\n      },\n      {\n        \"amount\": 18843,\n        \"price\": 3751.5,\n      },\n      {\n        \"amount\": 101472,\n        \"price\": 3751,\n      },\n      {\n        \"amount\": 18209,\n        \"price\": 3750.5,\n      },\n      {\n        \"amount\": 1435093,\n        \"price\": 3750,\n      },\n      {\n        \"amount\": 20956,\n        \"price\": 3749.5,\n      },\n      {\n        \"amount\": 21174,\n        \"price\": 3749,\n      },\n      {\n        \"amount\": 20732,\n        \"price\": 3748.5,\n      },\n      {\n        \"amount\": 26855,\n        \"price\": 3748,\n      },\n      {\n        \"amount\": 36200,\n        \"price\": 3747.5,\n      },\n      {\n        \"amount\": 7335,\n        \"price\": 3747,\n      },\n      {\n        \"amount\": 18817,\n        \"price\": 3746.5,\n      },\n      {\n        \"amount\": 231595,\n        \"price\": 3746,\n      },\n      {\n        \"amount\": 13625,\n        \"price\": 3745.5,\n      },\n      {\n        \"amount\": 39555,\n        \"price\": 3745,\n      },\n      {\n        \"amount\": 2220,\n        \"price\": 3744.5,\n      },\n      {\n        \"amount\": 156495,\n        \"price\": 3744,\n      },\n      {\n        \"amount\": 24800,\n        \"price\": 3743.5,\n      },\n      {\n        \"amount\": 52594,\n        \"price\": 3743,\n      },\n      {\n        \"amount\": 18155,\n        \"price\": 3742.5,\n      },\n      {\n        \"amount\": 26627,\n        \"price\": 3742,\n      },\n      {\n        \"amount\": 14251,\n        \"price\": 3741.5,\n      },\n      {\n        \"amount\": 10211,\n        \"price\": 3741,\n      },\n      {\n        \"amount\": 6685,\n        \"price\": 3740.5,\n      },\n      {\n        \"amount\": 413703,\n        \"price\": 3740,\n      },\n      {\n        \"amount\": 4700,\n        \"price\": 3739.5,\n      },\n      {\n        \"amount\": 64129,\n        \"price\": 3739,\n      },\n      {\n        \"amount\": 15650,\n        \"price\": 3738.5,\n      },\n      {\n        \"amount\": 77702,\n        \"price\": 3738,\n      },\n      {\n        \"amount\": 32407,\n        \"price\": 3737.5,\n      },\n      {\n        \"amount\": 114060,\n        \"price\": 3737,\n      },\n      {\n        \"amount\": 12601,\n        \"price\": 3736.5,\n      },\n      {\n        \"amount\": 25252,\n        \"price\": 3736,\n      },\n      {\n        \"amount\": 15282,\n        \"price\": 3735.5,\n      },\n      {\n        \"amount\": 109125,\n        \"price\": 3735,\n      },\n      {\n        \"amount\": 8158,\n        \"price\": 3734.5,\n      },\n      {\n        \"amount\": 28635,\n        \"price\": 3734,\n      },\n      {\n        \"amount\": 46582,\n        \"price\": 3733.5,\n      },\n      {\n        \"amount\": 33711,\n        \"price\": 3733,\n      },\n      {\n        \"amount\": 6940,\n        \"price\": 3732.5,\n      },\n      {\n        \"amount\": 23160,\n        \"price\": 3732,\n      },\n      {\n        \"amount\": 10422,\n        \"price\": 3731.5,\n      },\n      {\n        \"amount\": 19320,\n        \"price\": 3731,\n      },\n      {\n        \"amount\": 52650,\n        \"price\": 3730.5,\n      },\n      {\n        \"amount\": 198296,\n        \"price\": 3730,\n      },\n      {\n        \"amount\": 12325,\n        \"price\": 3729.5,\n      },\n      {\n        \"amount\": 7801,\n        \"price\": 3729,\n      },\n      {\n        \"amount\": 29188,\n        \"price\": 3728.5,\n      },\n      {\n        \"amount\": 128921,\n        \"price\": 3728,\n      },\n      {\n        \"amount\": 23600,\n        \"price\": 3727.5,\n      },\n      {\n        \"amount\": 286105,\n        \"price\": 3727,\n      },\n      {\n        \"amount\": 517107,\n        \"price\": 3726.5,\n      },\n      {\n        \"amount\": 213034,\n        \"price\": 3726,\n      },\n      {\n        \"amount\": 49009,\n        \"price\": 3725.5,\n      },\n      {\n        \"amount\": 52252,\n        \"price\": 3725,\n      },\n      {\n        \"amount\": 5570,\n        \"price\": 3724.5,\n      },\n      {\n        \"amount\": 36332,\n        \"price\": 3724,\n      },\n      {\n        \"amount\": 73683,\n        \"price\": 3723.5,\n      },\n      {\n        \"amount\": 103512,\n        \"price\": 3723,\n      },\n      {\n        \"amount\": 47475,\n        \"price\": 3722.5,\n      },\n      {\n        \"amount\": 1333922,\n        \"price\": 3722,\n      },\n      {\n        \"amount\": 12346,\n        \"price\": 3721.5,\n      },\n      {\n        \"amount\": 62132,\n        \"price\": 3721,\n      },\n      {\n        \"amount\": 50397,\n        \"price\": 3720.5,\n      },\n      {\n        \"amount\": 408243,\n        \"price\": 3720,\n      },\n      {\n        \"amount\": 20525,\n        \"price\": 3719.5,\n      },\n      {\n        \"amount\": 34900,\n        \"price\": 3719,\n      },\n      {\n        \"amount\": 3397,\n        \"price\": 3718.5,\n      },\n      {\n        \"amount\": 73585,\n        \"price\": 3718,\n      },\n      {\n        \"amount\": 6730,\n        \"price\": 3717.5,\n      },\n      {\n        \"amount\": 26337,\n        \"price\": 3717,\n      },\n      {\n        \"amount\": 31463,\n        \"price\": 3716.5,\n      },\n      {\n        \"amount\": 111818,\n        \"price\": 3716,\n      },\n      {\n        \"amount\": 13397,\n        \"price\": 3715.5,\n      },\n      {\n        \"amount\": 166080,\n        \"price\": 3715,\n      },\n      {\n        \"amount\": 3600,\n        \"price\": 3714.5,\n      },\n      {\n        \"amount\": 5677,\n        \"price\": 3714,\n      },\n      {\n        \"amount\": 62600,\n        \"price\": 3713.5,\n      },\n      {\n        \"amount\": 124991,\n        \"price\": 3713,\n      },\n      {\n        \"amount\": 24502,\n        \"price\": 3712.5,\n      },\n      {\n        \"amount\": 127548,\n        \"price\": 3712,\n      },\n      {\n        \"amount\": 9790,\n        \"price\": 3711.5,\n      },\n      {\n        \"amount\": 15541,\n        \"price\": 3711,\n      },\n      {\n        \"amount\": 54198,\n        \"price\": 3710.5,\n      },\n      {\n        \"amount\": 115558,\n        \"price\": 3710,\n      },\n      {\n        \"amount\": 13617,\n        \"price\": 3709.5,\n      },\n      {\n        \"amount\": 26789,\n        \"price\": 3709,\n      },\n      {\n        \"amount\": 22380,\n        \"price\": 3708.5,\n      },\n      {\n        \"amount\": 166906,\n        \"price\": 3708,\n      },\n      {\n        \"amount\": 45688,\n        \"price\": 3707.5,\n      },\n      {\n        \"amount\": 82928,\n        \"price\": 3707,\n      },\n      {\n        \"amount\": 64650,\n        \"price\": 3706.5,\n      },\n      {\n        \"amount\": 38239,\n        \"price\": 3706,\n      },\n      {\n        \"amount\": 29726,\n        \"price\": 3705.5,\n      },\n      {\n        \"amount\": 215740,\n        \"price\": 3705,\n      },\n      {\n        \"amount\": 17185,\n        \"price\": 3704.5,\n      },\n      {\n        \"amount\": 39959,\n        \"price\": 3704,\n      },\n      {\n        \"amount\": 15850,\n        \"price\": 3703.5,\n      },\n      {\n        \"amount\": 386324,\n        \"price\": 3703,\n      },\n      {\n        \"amount\": 12812,\n        \"price\": 3702.5,\n      },\n      {\n        \"amount\": 486068,\n        \"price\": 3702,\n      },\n      {\n        \"amount\": 1103243,\n        \"price\": 3701.5,\n      },\n      {\n        \"amount\": 678692,\n        \"price\": 3701,\n      },\n      {\n        \"amount\": 849504,\n        \"price\": 3700.5,\n      },\n      {\n        \"amount\": 1240047,\n        \"price\": 3700,\n      },\n      {\n        \"amount\": 22341,\n        \"price\": 3699.5,\n      },\n      {\n        \"amount\": 246386,\n        \"price\": 3699,\n      },\n      {\n        \"amount\": 8276,\n        \"price\": 3698.5,\n      },\n      {\n        \"amount\": 292804,\n        \"price\": 3698,\n      },\n      {\n        \"amount\": 117846,\n        \"price\": 3697.5,\n      },\n      {\n        \"amount\": 121496,\n        \"price\": 3697,\n      },\n      {\n        \"amount\": 113526,\n        \"price\": 3696.5,\n      },\n      {\n        \"amount\": 119050,\n        \"price\": 3696,\n      },\n      {\n        \"amount\": 115155,\n        \"price\": 3695.5,\n      },\n      {\n        \"amount\": 111142,\n        \"price\": 3695,\n      },\n      {\n        \"amount\": 126586,\n        \"price\": 3694.5,\n      },\n      {\n        \"amount\": 110786,\n        \"price\": 3694,\n      },\n      {\n        \"amount\": 117362,\n        \"price\": 3693.5,\n      },\n      {\n        \"amount\": 136530,\n        \"price\": 3693,\n      },\n      {\n        \"amount\": 105569,\n        \"price\": 3692.5,\n      },\n      {\n        \"amount\": 132800,\n        \"price\": 3692,\n      },\n      {\n        \"amount\": 63638,\n        \"price\": 3691.5,\n      },\n      {\n        \"amount\": 55430,\n        \"price\": 3691,\n      },\n      {\n        \"amount\": 20313,\n        \"price\": 3690.5,\n      },\n      {\n        \"amount\": 189934,\n        \"price\": 3690,\n      },\n      {\n        \"amount\": 130071,\n        \"price\": 3689.5,\n      },\n      {\n        \"amount\": 283270,\n        \"price\": 3689,\n      },\n      {\n        \"amount\": 9117,\n        \"price\": 3688.5,\n      },\n      {\n        \"amount\": 266558,\n        \"price\": 3688,\n      },\n      {\n        \"amount\": 43269,\n        \"price\": 3687.5,\n      },\n      {\n        \"amount\": 38589,\n        \"price\": 3687,\n      },\n      {\n        \"amount\": 20418,\n        \"price\": 3686.5,\n      },\n      {\n        \"amount\": 59290,\n        \"price\": 3686,\n      },\n      {\n        \"amount\": 1043650,\n        \"price\": 3685.5,\n      },\n      {\n        \"amount\": 101196,\n        \"price\": 3685,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 3684.5,\n      },\n      {\n        \"amount\": 36311,\n        \"price\": 3684,\n      },\n      {\n        \"amount\": 158006,\n        \"price\": 3683.5,\n      },\n      {\n        \"amount\": 70555,\n        \"price\": 3683,\n      },\n      {\n        \"amount\": 34570,\n        \"price\": 3682.5,\n      },\n      {\n        \"amount\": 480154,\n        \"price\": 3682,\n      },\n      {\n        \"amount\": 28715,\n        \"price\": 3681.5,\n      },\n      {\n        \"amount\": 1111338,\n        \"price\": 3681,\n      },\n      {\n        \"amount\": 35420,\n        \"price\": 3680.5,\n      },\n      {\n        \"amount\": 1435003,\n        \"price\": 3680,\n      },\n      {\n        \"amount\": 2284,\n        \"price\": 3679.5,\n      },\n      {\n        \"amount\": 80786,\n        \"price\": 3679,\n      },\n      {\n        \"amount\": 561266,\n        \"price\": 3678.5,\n      },\n      {\n        \"amount\": 58437,\n        \"price\": 3678,\n      },\n      {\n        \"amount\": 126227,\n        \"price\": 3677.5,\n      },\n      {\n        \"amount\": 72045,\n        \"price\": 3677,\n      },\n      {\n        \"amount\": 12862,\n        \"price\": 3676.5,\n      },\n      {\n        \"amount\": 92964,\n        \"price\": 3676,\n      },\n      {\n        \"amount\": 68634,\n        \"price\": 3675.5,\n      },\n      {\n        \"amount\": 231726,\n        \"price\": 3675,\n      },\n      {\n        \"amount\": 26934,\n        \"price\": 3674.5,\n      },\n      {\n        \"amount\": 8264,\n        \"price\": 3674,\n      },\n      {\n        \"amount\": 154030,\n        \"price\": 3673.5,\n      },\n      {\n        \"amount\": 58058,\n        \"price\": 3673,\n      },\n      {\n        \"amount\": 63000,\n        \"price\": 3672.5,\n      },\n      {\n        \"amount\": 35133,\n        \"price\": 3672,\n      },\n      {\n        \"amount\": 10774,\n        \"price\": 3671.5,\n      },\n      {\n        \"amount\": 92073,\n        \"price\": 3671,\n      },\n      {\n        \"amount\": 35566,\n        \"price\": 3670.5,\n      },\n      {\n        \"amount\": 257871,\n        \"price\": 3670,\n      },\n      {\n        \"amount\": 19120,\n        \"price\": 3669.5,\n      },\n      {\n        \"amount\": 17746,\n        \"price\": 3669,\n      },\n      {\n        \"amount\": 69044,\n        \"price\": 3668.5,\n      },\n      {\n        \"amount\": 50490,\n        \"price\": 3668,\n      },\n      {\n        \"amount\": 76303,\n        \"price\": 3667.5,\n      },\n      {\n        \"amount\": 130468,\n        \"price\": 3667,\n      },\n      {\n        \"amount\": 8660,\n        \"price\": 3666.5,\n      },\n      {\n        \"amount\": 208798,\n        \"price\": 3666,\n      },\n      {\n        \"amount\": 11075,\n        \"price\": 3665.5,\n      },\n      {\n        \"amount\": 136872,\n        \"price\": 3665,\n      },\n      {\n        \"amount\": 4803,\n        \"price\": 3664.5,\n      },\n      {\n        \"amount\": 75485,\n        \"price\": 3664,\n      },\n      {\n        \"amount\": 6591,\n        \"price\": 3663.5,\n      },\n      {\n        \"amount\": 56799,\n        \"price\": 3663,\n      },\n      {\n        \"amount\": 11832,\n        \"price\": 3662.5,\n      },\n      {\n        \"amount\": 48983,\n        \"price\": 3662,\n      },\n      {\n        \"amount\": 41542,\n        \"price\": 3661.5,\n      },\n      {\n        \"amount\": 444070,\n        \"price\": 3661,\n      },\n      {\n        \"amount\": 6800,\n        \"price\": 3660.5,\n      },\n      {\n        \"amount\": 410151,\n        \"price\": 3660,\n      },\n      {\n        \"amount\": 17851,\n        \"price\": 3659.5,\n      },\n      {\n        \"amount\": 136918,\n        \"price\": 3659,\n      },\n      {\n        \"amount\": 7515,\n        \"price\": 3658.5,\n      },\n      {\n        \"amount\": 296340,\n        \"price\": 3658,\n      },\n      {\n        \"amount\": 14230,\n        \"price\": 3657.5,\n      },\n      {\n        \"amount\": 62520,\n        \"price\": 3657,\n      },\n      {\n        \"amount\": 36980,\n        \"price\": 3656.5,\n      },\n      {\n        \"amount\": 35670,\n        \"price\": 3656,\n      },\n      {\n        \"amount\": 38407,\n        \"price\": 3655.5,\n      },\n      {\n        \"amount\": 203235,\n        \"price\": 3655,\n      },\n      {\n        \"amount\": 6177,\n        \"price\": 3654.5,\n      },\n      {\n        \"amount\": 214587,\n        \"price\": 3654,\n      },\n      {\n        \"amount\": 17670,\n        \"price\": 3653.5,\n      },\n      {\n        \"amount\": 514369,\n        \"price\": 3653,\n      },\n      {\n        \"amount\": 19698,\n        \"price\": 3652.5,\n      },\n      {\n        \"amount\": 30760,\n        \"price\": 3652,\n      },\n      {\n        \"amount\": 62610,\n        \"price\": 3651.5,\n      },\n      {\n        \"amount\": 151993,\n        \"price\": 3651,\n      },\n      {\n        \"amount\": 55411,\n        \"price\": 3650.5,\n      },\n      {\n        \"amount\": 3092934,\n        \"price\": 3650,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 3649.5,\n      },\n      {\n        \"amount\": 13624,\n        \"price\": 3649,\n      },\n      {\n        \"amount\": 5021,\n        \"price\": 3648.5,\n      },\n      {\n        \"amount\": 46744,\n        \"price\": 3648,\n      },\n      {\n        \"amount\": 4422,\n        \"price\": 3647.5,\n      },\n      {\n        \"amount\": 48245,\n        \"price\": 3647,\n      },\n      {\n        \"amount\": 20595,\n        \"price\": 3646.5,\n      },\n      {\n        \"amount\": 19554,\n        \"price\": 3646,\n      },\n      {\n        \"amount\": 5312,\n        \"price\": 3645.5,\n      },\n      {\n        \"amount\": 289867,\n        \"price\": 3645,\n      },\n      {\n        \"amount\": 439366,\n        \"price\": 3644.5,\n      },\n      {\n        \"amount\": 7159,\n        \"price\": 3644,\n      },\n      {\n        \"amount\": 6100,\n        \"price\": 3643.5,\n      },\n      {\n        \"amount\": 62600,\n        \"price\": 3643,\n      },\n      {\n        \"amount\": 36620,\n        \"price\": 3642.5,\n      },\n      {\n        \"amount\": 53127,\n        \"price\": 3642,\n      },\n      {\n        \"amount\": 4250,\n        \"price\": 3641.5,\n      },\n      {\n        \"amount\": 10150,\n        \"price\": 3641,\n      },\n      {\n        \"amount\": 6800,\n        \"price\": 3640.5,\n      },\n      {\n        \"amount\": 88498,\n        \"price\": 3640,\n      },\n      {\n        \"amount\": 1048,\n        \"price\": 3639.5,\n      },\n      {\n        \"amount\": 5110,\n        \"price\": 3639,\n      },\n      {\n        \"amount\": 21050,\n        \"price\": 3638.5,\n      },\n      {\n        \"amount\": 39563,\n        \"price\": 3638,\n      },\n      {\n        \"amount\": 14300,\n        \"price\": 3637.5,\n      },\n      {\n        \"amount\": 29458,\n        \"price\": 3637,\n      },\n      {\n        \"amount\": 3200,\n        \"price\": 3636.5,\n      },\n      {\n        \"amount\": 28424,\n        \"price\": 3636,\n      },\n      {\n        \"amount\": 219595,\n        \"price\": 3635.5,\n      },\n      {\n        \"amount\": 141295,\n        \"price\": 3635,\n      },\n      {\n        \"amount\": 5162,\n        \"price\": 3634.5,\n      },\n      {\n        \"amount\": 39978,\n        \"price\": 3634,\n      },\n      {\n        \"amount\": 11450,\n        \"price\": 3633.5,\n      },\n      {\n        \"amount\": 371858,\n        \"price\": 3633,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3632.5,\n      },\n      {\n        \"amount\": 18947,\n        \"price\": 3632,\n      },\n      {\n        \"amount\": 31403,\n        \"price\": 3631.5,\n      },\n      {\n        \"amount\": 4172,\n        \"price\": 3631,\n      },\n      {\n        \"amount\": 36397,\n        \"price\": 3630.5,\n      },\n      {\n        \"amount\": 712578,\n        \"price\": 3630,\n      },\n      {\n        \"amount\": 14510,\n        \"price\": 3629.5,\n      },\n      {\n        \"amount\": 8240,\n        \"price\": 3629,\n      },\n      {\n        \"amount\": 346251,\n        \"price\": 3628.5,\n      },\n      {\n        \"amount\": 22539,\n        \"price\": 3628,\n      },\n      {\n        \"amount\": 59534,\n        \"price\": 3627.5,\n      },\n      {\n        \"amount\": 10501,\n        \"price\": 3627,\n      },\n      {\n        \"amount\": 10092,\n        \"price\": 3626.5,\n      },\n      {\n        \"amount\": 90514,\n        \"price\": 3626,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 3625.5,\n      },\n      {\n        \"amount\": 196952,\n        \"price\": 3625,\n      },\n      {\n        \"amount\": 40815,\n        \"price\": 3624.5,\n      },\n      {\n        \"amount\": 39628,\n        \"price\": 3624,\n      },\n      {\n        \"amount\": 112930,\n        \"price\": 3623.5,\n      },\n      {\n        \"amount\": 170196,\n        \"price\": 3623,\n      },\n      {\n        \"amount\": 8300,\n        \"price\": 3622.5,\n      },\n      {\n        \"amount\": 98011,\n        \"price\": 3622,\n      },\n      {\n        \"amount\": 9150,\n        \"price\": 3621.5,\n      },\n      {\n        \"amount\": 23032,\n        \"price\": 3621,\n      },\n      {\n        \"amount\": 78745,\n        \"price\": 3620.5,\n      },\n      {\n        \"amount\": 287189,\n        \"price\": 3620,\n      },\n      {\n        \"amount\": 16121,\n        \"price\": 3619.5,\n      },\n      {\n        \"amount\": 4869,\n        \"price\": 3619,\n      },\n      {\n        \"amount\": 13000,\n        \"price\": 3618.5,\n      },\n      {\n        \"amount\": 16772,\n        \"price\": 3618,\n      },\n      {\n        \"amount\": 83665,\n        \"price\": 3617.5,\n      },\n      {\n        \"amount\": 53810,\n        \"price\": 3617,\n      },\n      {\n        \"amount\": 8050,\n        \"price\": 3616.5,\n      },\n      {\n        \"amount\": 37411,\n        \"price\": 3616,\n      },\n      {\n        \"amount\": 570,\n        \"price\": 3615.5,\n      },\n      {\n        \"amount\": 192721,\n        \"price\": 3615,\n      },\n      {\n        \"amount\": 92945,\n        \"price\": 3614.5,\n      },\n      {\n        \"amount\": 9014,\n        \"price\": 3614,\n      },\n      {\n        \"amount\": 12675,\n        \"price\": 3613.5,\n      },\n      {\n        \"amount\": 23242,\n        \"price\": 3613,\n      },\n      {\n        \"amount\": 110000,\n        \"price\": 3612.5,\n      },\n      {\n        \"amount\": 42308,\n        \"price\": 3612,\n      },\n      {\n        \"amount\": 20037,\n        \"price\": 3611.5,\n      },\n      {\n        \"amount\": 88794,\n        \"price\": 3611,\n      },\n      {\n        \"amount\": 14182,\n        \"price\": 3610.5,\n      },\n      {\n        \"amount\": 184643,\n        \"price\": 3610,\n      },\n      {\n        \"amount\": 41077,\n        \"price\": 3609.5,\n      },\n      {\n        \"amount\": 1034684,\n        \"price\": 3609,\n      },\n      {\n        \"amount\": 74697,\n        \"price\": 3608.5,\n      },\n      {\n        \"amount\": 384429,\n        \"price\": 3608,\n      },\n      {\n        \"amount\": 55400,\n        \"price\": 3607.5,\n      },\n      {\n        \"amount\": 18198,\n        \"price\": 3607,\n      },\n      {\n        \"amount\": 68046,\n        \"price\": 3606.5,\n      },\n      {\n        \"amount\": 187692,\n        \"price\": 3606,\n      },\n      {\n        \"amount\": 96860,\n        \"price\": 3605.5,\n      },\n      {\n        \"amount\": 47043,\n        \"price\": 3605,\n      },\n      {\n        \"amount\": 51500,\n        \"price\": 3604.5,\n      },\n      {\n        \"amount\": 153005,\n        \"price\": 3604,\n      },\n      {\n        \"amount\": 150890,\n        \"price\": 3603.5,\n      },\n      {\n        \"amount\": 154821,\n        \"price\": 3603,\n      },\n      {\n        \"amount\": 145387,\n        \"price\": 3602.5,\n      },\n      {\n        \"amount\": 111737,\n        \"price\": 3602,\n      },\n      {\n        \"amount\": 1872094,\n        \"price\": 3601.5,\n      },\n      {\n        \"amount\": 68678,\n        \"price\": 3601,\n      },\n      {\n        \"amount\": 53884,\n        \"price\": 3600.5,\n      },\n      {\n        \"amount\": 2704432,\n        \"price\": 3600,\n      },\n      {\n        \"amount\": 82585,\n        \"price\": 3599.5,\n      },\n      {\n        \"amount\": 2798,\n        \"price\": 3599,\n      },\n      {\n        \"amount\": 7246,\n        \"price\": 3598.5,\n      },\n      {\n        \"amount\": 23156,\n        \"price\": 3598,\n      },\n      {\n        \"amount\": 16660,\n        \"price\": 3597.5,\n      },\n      {\n        \"amount\": 211255,\n        \"price\": 3597,\n      },\n      {\n        \"amount\": 53650,\n        \"price\": 3596.5,\n      },\n      {\n        \"amount\": 118885,\n        \"price\": 3596,\n      },\n      {\n        \"amount\": 13259,\n        \"price\": 3595.5,\n      },\n      {\n        \"amount\": 71381,\n        \"price\": 3595,\n      },\n      {\n        \"amount\": 4056,\n        \"price\": 3594.5,\n      },\n      {\n        \"amount\": 100888,\n        \"price\": 3594,\n      },\n      {\n        \"amount\": 4820,\n        \"price\": 3593.5,\n      },\n      {\n        \"amount\": 115293,\n        \"price\": 3593,\n      },\n      {\n        \"amount\": 16650,\n        \"price\": 3592.5,\n      },\n      {\n        \"amount\": 285610,\n        \"price\": 3592,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 3591.5,\n      },\n      {\n        \"amount\": 128555,\n        \"price\": 3591,\n      },\n      {\n        \"amount\": 35215,\n        \"price\": 3590.5,\n      },\n      {\n        \"amount\": 2908102,\n        \"price\": 3590,\n      },\n      {\n        \"amount\": 32850,\n        \"price\": 3589.5,\n      },\n      {\n        \"amount\": 20963,\n        \"price\": 3589,\n      },\n      {\n        \"amount\": 92258,\n        \"price\": 3588.5,\n      },\n      {\n        \"amount\": 319388,\n        \"price\": 3588,\n      },\n      {\n        \"amount\": 23510,\n        \"price\": 3587.5,\n      },\n      {\n        \"amount\": 128435,\n        \"price\": 3587,\n      },\n      {\n        \"amount\": 186718,\n        \"price\": 3586.5,\n      },\n      {\n        \"amount\": 327959,\n        \"price\": 3586,\n      },\n      {\n        \"amount\": 39100,\n        \"price\": 3585.5,\n      },\n      {\n        \"amount\": 23612,\n        \"price\": 3585,\n      },\n      {\n        \"amount\": 6100,\n        \"price\": 3584.5,\n      },\n      {\n        \"amount\": 107029,\n        \"price\": 3584,\n      },\n      {\n        \"amount\": 234276,\n        \"price\": 3583.5,\n      },\n      {\n        \"amount\": 140694,\n        \"price\": 3583,\n      },\n      {\n        \"amount\": 16070,\n        \"price\": 3582.5,\n      },\n      {\n        \"amount\": 664826,\n        \"price\": 3582,\n      },\n      {\n        \"amount\": 10250,\n        \"price\": 3581.5,\n      },\n      {\n        \"amount\": 310456,\n        \"price\": 3581,\n      },\n      {\n        \"amount\": 7210,\n        \"price\": 3580.5,\n      },\n      {\n        \"amount\": 645486,\n        \"price\": 3580,\n      },\n      {\n        \"amount\": 22370,\n        \"price\": 3579.5,\n      },\n      {\n        \"amount\": 34924,\n        \"price\": 3579,\n      },\n      {\n        \"amount\": 1140,\n        \"price\": 3578.5,\n      },\n      {\n        \"amount\": 24397,\n        \"price\": 3578,\n      },\n      {\n        \"amount\": 6279,\n        \"price\": 3577.5,\n      },\n      {\n        \"amount\": 111040,\n        \"price\": 3577,\n      },\n      {\n        \"amount\": 1180,\n        \"price\": 3576.5,\n      },\n      {\n        \"amount\": 18898,\n        \"price\": 3576,\n      },\n      {\n        \"amount\": 34290,\n        \"price\": 3575.5,\n      },\n      {\n        \"amount\": 213140,\n        \"price\": 3575,\n      },\n      {\n        \"amount\": 49601,\n        \"price\": 3574.5,\n      },\n      {\n        \"amount\": 36994,\n        \"price\": 3574,\n      },\n      {\n        \"amount\": 11323,\n        \"price\": 3573.5,\n      },\n      {\n        \"amount\": 51851,\n        \"price\": 3573,\n      },\n      {\n        \"amount\": 13820,\n        \"price\": 3572.5,\n      },\n      {\n        \"amount\": 150661,\n        \"price\": 3572,\n      },\n      {\n        \"amount\": 52848,\n        \"price\": 3571.5,\n      },\n      {\n        \"amount\": 8389,\n        \"price\": 3571,\n      },\n      {\n        \"amount\": 73605,\n        \"price\": 3570.5,\n      },\n      {\n        \"amount\": 336445,\n        \"price\": 3570,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 3569.5,\n      },\n      {\n        \"amount\": 22370,\n        \"price\": 3569,\n      },\n      {\n        \"amount\": 42545,\n        \"price\": 3568.5,\n      },\n      {\n        \"amount\": 157664,\n        \"price\": 3568,\n      },\n      {\n        \"amount\": 206300,\n        \"price\": 3567.5,\n      },\n      {\n        \"amount\": 90718,\n        \"price\": 3567,\n      },\n      {\n        \"amount\": 26030,\n        \"price\": 3566.5,\n      },\n      {\n        \"amount\": 704664,\n        \"price\": 3566,\n      },\n      {\n        \"amount\": 53192,\n        \"price\": 3565.5,\n      },\n      {\n        \"amount\": 288064,\n        \"price\": 3565,\n      },\n      {\n        \"amount\": 21890,\n        \"price\": 3564.5,\n      },\n      {\n        \"amount\": 5304,\n        \"price\": 3564,\n      },\n      {\n        \"amount\": 10654,\n        \"price\": 3563.5,\n      },\n      {\n        \"amount\": 109261,\n        \"price\": 3563,\n      },\n      {\n        \"amount\": 946,\n        \"price\": 3562.5,\n      },\n      {\n        \"amount\": 417457,\n        \"price\": 3562,\n      },\n      {\n        \"amount\": 5634,\n        \"price\": 3561.5,\n      },\n      {\n        \"amount\": 216023,\n        \"price\": 3561,\n      },\n      {\n        \"amount\": 24900,\n        \"price\": 3560.5,\n      },\n      {\n        \"amount\": 606671,\n        \"price\": 3560,\n      },\n      {\n        \"amount\": 12300,\n        \"price\": 3559.5,\n      },\n      {\n        \"amount\": 4700,\n        \"price\": 3559,\n      },\n      {\n        \"amount\": 4627,\n        \"price\": 3558.5,\n      },\n      {\n        \"amount\": 418651,\n        \"price\": 3558,\n      },\n      {\n        \"amount\": 3100,\n        \"price\": 3557.5,\n      },\n      {\n        \"amount\": 198681,\n        \"price\": 3557,\n      },\n      {\n        \"amount\": 113505,\n        \"price\": 3556.5,\n      },\n      {\n        \"amount\": 136284,\n        \"price\": 3556,\n      },\n      {\n        \"amount\": 225396,\n        \"price\": 3555.5,\n      },\n      {\n        \"amount\": 329484,\n        \"price\": 3555,\n      },\n      {\n        \"amount\": 114710,\n        \"price\": 3554.5,\n      },\n      {\n        \"amount\": 393313,\n        \"price\": 3554,\n      },\n      {\n        \"amount\": 112887,\n        \"price\": 3553.5,\n      },\n      {\n        \"amount\": 142443,\n        \"price\": 3553,\n      },\n      {\n        \"amount\": 115050,\n        \"price\": 3552.5,\n      },\n      {\n        \"amount\": 324491,\n        \"price\": 3552,\n      },\n      {\n        \"amount\": 115030,\n        \"price\": 3551.5,\n      },\n      {\n        \"amount\": 138261,\n        \"price\": 3551,\n      },\n      {\n        \"amount\": 133970,\n        \"price\": 3550.5,\n      },\n      {\n        \"amount\": 1507309,\n        \"price\": 3550,\n      },\n      {\n        \"amount\": 51750,\n        \"price\": 3549.5,\n      },\n      {\n        \"amount\": 5995,\n        \"price\": 3549,\n      },\n      {\n        \"amount\": 3202,\n        \"price\": 3548.5,\n      },\n      {\n        \"amount\": 16262,\n        \"price\": 3548,\n      },\n      {\n        \"amount\": 13208,\n        \"price\": 3547.5,\n      },\n      {\n        \"amount\": 11057,\n        \"price\": 3547,\n      },\n      {\n        \"amount\": 5088,\n        \"price\": 3546.5,\n      },\n      {\n        \"amount\": 18550,\n        \"price\": 3546,\n      },\n      {\n        \"amount\": 10435,\n        \"price\": 3545.5,\n      },\n      {\n        \"amount\": 14275,\n        \"price\": 3545,\n      },\n      {\n        \"amount\": 1900,\n        \"price\": 3544.5,\n      },\n      {\n        \"amount\": 20314,\n        \"price\": 3544,\n      },\n      {\n        \"amount\": 6150,\n        \"price\": 3543.5,\n      },\n      {\n        \"amount\": 37540,\n        \"price\": 3543,\n      },\n      {\n        \"amount\": 6200,\n        \"price\": 3542.5,\n      },\n      {\n        \"amount\": 108478,\n        \"price\": 3542,\n      },\n      {\n        \"amount\": 1574,\n        \"price\": 3541.5,\n      },\n      {\n        \"amount\": 116751,\n        \"price\": 3541,\n      },\n      {\n        \"amount\": 78739,\n        \"price\": 3540.5,\n      },\n      {\n        \"amount\": 119547,\n        \"price\": 3540,\n      },\n      {\n        \"amount\": 5465,\n        \"price\": 3539.5,\n      },\n      {\n        \"amount\": 17954,\n        \"price\": 3539,\n      },\n      {\n        \"amount\": 3740,\n        \"price\": 3538.5,\n      },\n      {\n        \"amount\": 103018,\n        \"price\": 3538,\n      },\n      {\n        \"amount\": 132110,\n        \"price\": 3537.5,\n      },\n      {\n        \"amount\": 36773,\n        \"price\": 3537,\n      },\n      {\n        \"amount\": 8185,\n        \"price\": 3536.5,\n      },\n      {\n        \"amount\": 204605,\n        \"price\": 3536,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 3535.5,\n      },\n      {\n        \"amount\": 586325,\n        \"price\": 3535,\n      },\n      {\n        \"amount\": 3252,\n        \"price\": 3534.5,\n      },\n      {\n        \"amount\": 39891,\n        \"price\": 3534,\n      },\n      {\n        \"amount\": 10647,\n        \"price\": 3533.5,\n      },\n      {\n        \"amount\": 133502,\n        \"price\": 3533,\n      },\n      {\n        \"amount\": 23718,\n        \"price\": 3532.5,\n      },\n      {\n        \"amount\": 23921,\n        \"price\": 3532,\n      },\n      {\n        \"amount\": 121256,\n        \"price\": 3531.5,\n      },\n      {\n        \"amount\": 99170,\n        \"price\": 3531,\n      },\n      {\n        \"amount\": 69311,\n        \"price\": 3530.5,\n      },\n      {\n        \"amount\": 742193,\n        \"price\": 3530,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3529.5,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 3529,\n      },\n      {\n        \"amount\": 20600,\n        \"price\": 3528.5,\n      },\n      {\n        \"amount\": 26818,\n        \"price\": 3528,\n      },\n      {\n        \"amount\": 3850,\n        \"price\": 3527.5,\n      },\n      {\n        \"amount\": 66729,\n        \"price\": 3527,\n      },\n      {\n        \"amount\": 22000,\n        \"price\": 3526.5,\n      },\n      {\n        \"amount\": 140026,\n        \"price\": 3526,\n      },\n      {\n        \"amount\": 7558,\n        \"price\": 3525.5,\n      },\n      {\n        \"amount\": 94760,\n        \"price\": 3525,\n      },\n      {\n        \"amount\": 5857,\n        \"price\": 3524.5,\n      },\n      {\n        \"amount\": 22296,\n        \"price\": 3524,\n      },\n      {\n        \"amount\": 79490,\n        \"price\": 3523.5,\n      },\n      {\n        \"amount\": 37687,\n        \"price\": 3523,\n      },\n      {\n        \"amount\": 5134,\n        \"price\": 3522.5,\n      },\n      {\n        \"amount\": 223786,\n        \"price\": 3522,\n      },\n      {\n        \"amount\": 7526,\n        \"price\": 3521.5,\n      },\n      {\n        \"amount\": 158549,\n        \"price\": 3521,\n      },\n      {\n        \"amount\": 206710,\n        \"price\": 3520.5,\n      },\n      {\n        \"amount\": 156528,\n        \"price\": 3520,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3519.5,\n      },\n      {\n        \"amount\": 184,\n        \"price\": 3519,\n      },\n      {\n        \"amount\": 4600,\n        \"price\": 3518.5,\n      },\n      {\n        \"amount\": 659630,\n        \"price\": 3518,\n      },\n      {\n        \"amount\": 14632,\n        \"price\": 3517.5,\n      },\n      {\n        \"amount\": 1062472,\n        \"price\": 3517,\n      },\n      {\n        \"amount\": 3531,\n        \"price\": 3516.5,\n      },\n      {\n        \"amount\": 94830,\n        \"price\": 3516,\n      },\n      {\n        \"amount\": 25768,\n        \"price\": 3515.5,\n      },\n      {\n        \"amount\": 146580,\n        \"price\": 3515,\n      },\n      {\n        \"amount\": 11000,\n        \"price\": 3514.5,\n      },\n      {\n        \"amount\": 36777,\n        \"price\": 3514,\n      },\n      {\n        \"amount\": 101213,\n        \"price\": 3513.5,\n      },\n      {\n        \"amount\": 12862,\n        \"price\": 3513,\n      },\n      {\n        \"amount\": 2112,\n        \"price\": 3512.5,\n      },\n      {\n        \"amount\": 91156,\n        \"price\": 3512,\n      },\n      {\n        \"amount\": 60461,\n        \"price\": 3511.5,\n      },\n      {\n        \"amount\": 129582,\n        \"price\": 3511,\n      },\n      {\n        \"amount\": 10395,\n        \"price\": 3510.5,\n      },\n      {\n        \"amount\": 1643633,\n        \"price\": 3510,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 3509.5,\n      },\n      {\n        \"amount\": 34437,\n        \"price\": 3509,\n      },\n      {\n        \"amount\": 4972,\n        \"price\": 3508.5,\n      },\n      {\n        \"amount\": 16140,\n        \"price\": 3508,\n      },\n      {\n        \"amount\": 30599,\n        \"price\": 3507.5,\n      },\n      {\n        \"amount\": 97059,\n        \"price\": 3507,\n      },\n      {\n        \"amount\": 106328,\n        \"price\": 3506.5,\n      },\n      {\n        \"amount\": 118713,\n        \"price\": 3506,\n      },\n      {\n        \"amount\": 19175,\n        \"price\": 3505.5,\n      },\n      {\n        \"amount\": 62921,\n        \"price\": 3505,\n      },\n      {\n        \"amount\": 3175,\n        \"price\": 3504.5,\n      },\n      {\n        \"amount\": 8250,\n        \"price\": 3504,\n      },\n      {\n        \"amount\": 4770,\n        \"price\": 3503.5,\n      },\n      {\n        \"amount\": 27800,\n        \"price\": 3503,\n      },\n      {\n        \"amount\": 1120,\n        \"price\": 3502.5,\n      },\n      {\n        \"amount\": 235039,\n        \"price\": 3502,\n      },\n      {\n        \"amount\": 1010083,\n        \"price\": 3501.5,\n      },\n      {\n        \"amount\": 22809,\n        \"price\": 3501,\n      },\n      {\n        \"amount\": 45439,\n        \"price\": 3500.5,\n      },\n      {\n        \"amount\": 588783,\n        \"price\": 3500,\n      },\n      {\n        \"amount\": 5303,\n        \"price\": 3499.5,\n      },\n      {\n        \"amount\": 9063,\n        \"price\": 3499,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3498.5,\n      },\n      {\n        \"amount\": 26045,\n        \"price\": 3498,\n      },\n      {\n        \"amount\": 832,\n        \"price\": 3497.5,\n      },\n      {\n        \"amount\": 5548,\n        \"price\": 3497,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3496.5,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 3496,\n      },\n      {\n        \"amount\": 3550,\n        \"price\": 3495.5,\n      },\n      {\n        \"amount\": 27055,\n        \"price\": 3495,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 3494.5,\n      },\n      {\n        \"amount\": 5169,\n        \"price\": 3494,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3493.5,\n      },\n      {\n        \"amount\": 11326,\n        \"price\": 3493,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 3492.5,\n      },\n      {\n        \"amount\": 2822,\n        \"price\": 3492,\n      },\n      {\n        \"amount\": 2440,\n        \"price\": 3491.5,\n      },\n      {\n        \"amount\": 47450,\n        \"price\": 3491,\n      },\n      {\n        \"amount\": 6600,\n        \"price\": 3490.5,\n      },\n      {\n        \"amount\": 258146,\n        \"price\": 3490,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 3489.5,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 3489,\n      },\n      {\n        \"amount\": 2150,\n        \"price\": 3488.5,\n      },\n      {\n        \"amount\": 284174,\n        \"price\": 3488,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 3487.5,\n      },\n      {\n        \"amount\": 2129,\n        \"price\": 3487,\n      },\n      {\n        \"amount\": 625,\n        \"price\": 3486.5,\n      },\n      {\n        \"amount\": 11196,\n        \"price\": 3486,\n      },\n      {\n        \"amount\": 136213,\n        \"price\": 3485.5,\n      },\n      {\n        \"amount\": 18410,\n        \"price\": 3485,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3484.5,\n      },\n      {\n        \"amount\": 17200,\n        \"price\": 3484,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 3483.5,\n      },\n      {\n        \"amount\": 7490,\n        \"price\": 3483,\n      },\n      {\n        \"amount\": 5780,\n        \"price\": 3482,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 3481.5,\n      },\n      {\n        \"amount\": 22150,\n        \"price\": 3481,\n      },\n      {\n        \"amount\": 18484,\n        \"price\": 3480.5,\n      },\n      {\n        \"amount\": 423364,\n        \"price\": 3480,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3479.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3479,\n      },\n      {\n        \"amount\": 1840,\n        \"price\": 3478.5,\n      },\n      {\n        \"amount\": 10500,\n        \"price\": 3478,\n      },\n      {\n        \"amount\": 6395,\n        \"price\": 3477.5,\n      },\n      {\n        \"amount\": 33207,\n        \"price\": 3477,\n      },\n      {\n        \"amount\": 1750,\n        \"price\": 3476.5,\n      },\n      {\n        \"amount\": 3501,\n        \"price\": 3476,\n      },\n      {\n        \"amount\": 10266,\n        \"price\": 3475.5,\n      },\n      {\n        \"amount\": 17486,\n        \"price\": 3475,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3474.5,\n      },\n      {\n        \"amount\": 850,\n        \"price\": 3474,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3473.5,\n      },\n      {\n        \"amount\": 6170,\n        \"price\": 3473,\n      },\n      {\n        \"amount\": 1150,\n        \"price\": 3472.5,\n      },\n      {\n        \"amount\": 7412,\n        \"price\": 3472,\n      },\n      {\n        \"amount\": 5545,\n        \"price\": 3471.5,\n      },\n      {\n        \"amount\": 7792,\n        \"price\": 3471,\n      },\n      {\n        \"amount\": 3100,\n        \"price\": 3470.5,\n      },\n      {\n        \"amount\": 160372,\n        \"price\": 3470,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3469.5,\n      },\n      {\n        \"amount\": 480,\n        \"price\": 3469,\n      },\n      {\n        \"amount\": 34685,\n        \"price\": 3468.5,\n      },\n      {\n        \"amount\": 7700,\n        \"price\": 3468,\n      },\n      {\n        \"amount\": 3958,\n        \"price\": 3467.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3467,\n      },\n      {\n        \"amount\": 12228,\n        \"price\": 3466.5,\n      },\n      {\n        \"amount\": 9184,\n        \"price\": 3466,\n      },\n      {\n        \"amount\": 65,\n        \"price\": 3465.5,\n      },\n      {\n        \"amount\": 65404,\n        \"price\": 3465,\n      },\n      {\n        \"amount\": 4278,\n        \"price\": 3464,\n      },\n      {\n        \"amount\": 4637,\n        \"price\": 3463.5,\n      },\n      {\n        \"amount\": 23340,\n        \"price\": 3463,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3462.5,\n      },\n      {\n        \"amount\": 3290,\n        \"price\": 3462,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 3461.5,\n      },\n      {\n        \"amount\": 20080,\n        \"price\": 3461,\n      },\n      {\n        \"amount\": 16260,\n        \"price\": 3460.5,\n      },\n      {\n        \"amount\": 77587,\n        \"price\": 3460,\n      },\n      {\n        \"amount\": 1420,\n        \"price\": 3459.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 3459,\n      },\n      {\n        \"amount\": 2525,\n        \"price\": 3458.5,\n      },\n      {\n        \"amount\": 13502,\n        \"price\": 3458,\n      },\n      {\n        \"amount\": 5800,\n        \"price\": 3457.5,\n      },\n      {\n        \"amount\": 2380,\n        \"price\": 3457,\n      },\n      {\n        \"amount\": 2550,\n        \"price\": 3456.5,\n      },\n      {\n        \"amount\": 7393,\n        \"price\": 3456,\n      },\n      {\n        \"amount\": 24125,\n        \"price\": 3455.5,\n      },\n      {\n        \"amount\": 38349,\n        \"price\": 3455,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 3454.5,\n      },\n      {\n        \"amount\": 7520,\n        \"price\": 3454,\n      },\n      {\n        \"amount\": 1025,\n        \"price\": 3453.5,\n      },\n      {\n        \"amount\": 17615,\n        \"price\": 3453,\n      },\n      {\n        \"amount\": 510,\n        \"price\": 3452.5,\n      },\n      {\n        \"amount\": 16357,\n        \"price\": 3452,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 3451.5,\n      },\n      {\n        \"amount\": 12362,\n        \"price\": 3451,\n      },\n      {\n        \"amount\": 5321,\n        \"price\": 3450.5,\n      },\n      {\n        \"amount\": 195075,\n        \"price\": 3450,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3449.5,\n      },\n      {\n        \"amount\": 8525,\n        \"price\": 3449,\n      },\n      {\n        \"amount\": 59913,\n        \"price\": 3448,\n      },\n      {\n        \"amount\": 820,\n        \"price\": 3447.5,\n      },\n      {\n        \"amount\": 6091,\n        \"price\": 3447,\n      },\n      {\n        \"amount\": 77656,\n        \"price\": 3446.5,\n      },\n      {\n        \"amount\": 38919,\n        \"price\": 3446,\n      },\n      {\n        \"amount\": 20340,\n        \"price\": 3445.5,\n      },\n      {\n        \"amount\": 5680,\n        \"price\": 3445,\n      },\n      {\n        \"amount\": 41241,\n        \"price\": 3444.5,\n      },\n      {\n        \"amount\": 7233,\n        \"price\": 3444,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 3443.5,\n      },\n      {\n        \"amount\": 11709,\n        \"price\": 3443,\n      },\n      {\n        \"amount\": 49800,\n        \"price\": 3442,\n      },\n      {\n        \"amount\": 1233,\n        \"price\": 3441.5,\n      },\n      {\n        \"amount\": 7115,\n        \"price\": 3441,\n      },\n      {\n        \"amount\": 4175,\n        \"price\": 3440.5,\n      },\n      {\n        \"amount\": 40225,\n        \"price\": 3440,\n      },\n      {\n        \"amount\": 29,\n        \"price\": 3439,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 3438.5,\n      },\n      {\n        \"amount\": 55171,\n        \"price\": 3438,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3437.5,\n      },\n      {\n        \"amount\": 29258,\n        \"price\": 3437,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3436.5,\n      },\n      {\n        \"amount\": 2130,\n        \"price\": 3436,\n      },\n      {\n        \"amount\": 720,\n        \"price\": 3435.5,\n      },\n      {\n        \"amount\": 16255,\n        \"price\": 3435,\n      },\n      {\n        \"amount\": 28320,\n        \"price\": 3434,\n      },\n      {\n        \"amount\": 4753,\n        \"price\": 3433.5,\n      },\n      {\n        \"amount\": 12908,\n        \"price\": 3433,\n      },\n      {\n        \"amount\": 5807,\n        \"price\": 3432.5,\n      },\n      {\n        \"amount\": 52580,\n        \"price\": 3432,\n      },\n      {\n        \"amount\": 3012,\n        \"price\": 3431.5,\n      },\n      {\n        \"amount\": 17102,\n        \"price\": 3431,\n      },\n      {\n        \"amount\": 6175,\n        \"price\": 3430.5,\n      },\n      {\n        \"amount\": 21991,\n        \"price\": 3430,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 3429.5,\n      },\n      {\n        \"amount\": 357,\n        \"price\": 3429,\n      },\n      {\n        \"amount\": 650,\n        \"price\": 3428.5,\n      },\n      {\n        \"amount\": 4342,\n        \"price\": 3428,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3427.5,\n      },\n      {\n        \"amount\": 2159,\n        \"price\": 3427,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3426.5,\n      },\n      {\n        \"amount\": 13400,\n        \"price\": 3426,\n      },\n      {\n        \"amount\": 20050,\n        \"price\": 3425.5,\n      },\n      {\n        \"amount\": 11154,\n        \"price\": 3425,\n      },\n      {\n        \"amount\": 4628,\n        \"price\": 3424,\n      },\n      {\n        \"amount\": 35735,\n        \"price\": 3423.5,\n      },\n      {\n        \"amount\": 4859,\n        \"price\": 3423,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3422.5,\n      },\n      {\n        \"amount\": 20514,\n        \"price\": 3422,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3421.5,\n      },\n      {\n        \"amount\": 14418,\n        \"price\": 3421,\n      },\n      {\n        \"amount\": 6550,\n        \"price\": 3420.5,\n      },\n      {\n        \"amount\": 51715,\n        \"price\": 3420,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3419.5,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 3419,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 3418.5,\n      },\n      {\n        \"amount\": 5616,\n        \"price\": 3418,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3417.5,\n      },\n      {\n        \"amount\": 1014,\n        \"price\": 3417,\n      },\n      {\n        \"amount\": 5925,\n        \"price\": 3416.5,\n      },\n      {\n        \"amount\": 6151,\n        \"price\": 3416,\n      },\n      {\n        \"amount\": 4435,\n        \"price\": 3415.5,\n      },\n      {\n        \"amount\": 2510,\n        \"price\": 3415,\n      },\n      {\n        \"amount\": 89,\n        \"price\": 3414.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3414,\n      },\n      {\n        \"amount\": 1520,\n        \"price\": 3413,\n      },\n      {\n        \"amount\": 525,\n        \"price\": 3412.5,\n      },\n      {\n        \"amount\": 16699,\n        \"price\": 3412,\n      },\n      {\n        \"amount\": 250297,\n        \"price\": 3411.5,\n      },\n      {\n        \"amount\": 44871,\n        \"price\": 3411,\n      },\n      {\n        \"amount\": 13750,\n        \"price\": 3410.5,\n      },\n      {\n        \"amount\": 31925,\n        \"price\": 3410,\n      },\n      {\n        \"amount\": 28700,\n        \"price\": 3409,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 3408.5,\n      },\n      {\n        \"amount\": 6806,\n        \"price\": 3408,\n      },\n      {\n        \"amount\": 5263,\n        \"price\": 3407.5,\n      },\n      {\n        \"amount\": 7549,\n        \"price\": 3407,\n      },\n      {\n        \"amount\": 18200,\n        \"price\": 3406.5,\n      },\n      {\n        \"amount\": 25120,\n        \"price\": 3406,\n      },\n      {\n        \"amount\": 26475,\n        \"price\": 3405.5,\n      },\n      {\n        \"amount\": 40845,\n        \"price\": 3405,\n      },\n      {\n        \"amount\": 3741,\n        \"price\": 3404.5,\n      },\n      {\n        \"amount\": 22650,\n        \"price\": 3404,\n      },\n      {\n        \"amount\": 1108,\n        \"price\": 3403.5,\n      },\n      {\n        \"amount\": 11609,\n        \"price\": 3403,\n      },\n      {\n        \"amount\": 13749,\n        \"price\": 3402.5,\n      },\n      {\n        \"amount\": 1002958,\n        \"price\": 3401.5,\n      },\n      {\n        \"amount\": 47655,\n        \"price\": 3401,\n      },\n      {\n        \"amount\": 68543,\n        \"price\": 3400.5,\n      },\n      {\n        \"amount\": 323202,\n        \"price\": 3400,\n      },\n      {\n        \"amount\": 5929,\n        \"price\": 3399,\n      },\n      {\n        \"amount\": 1541,\n        \"price\": 3398.5,\n      },\n      {\n        \"amount\": 4550,\n        \"price\": 3398,\n      },\n      {\n        \"amount\": 12010,\n        \"price\": 3397,\n      },\n      {\n        \"amount\": 2012,\n        \"price\": 3396.5,\n      },\n      {\n        \"amount\": 859,\n        \"price\": 3396,\n      },\n      {\n        \"amount\": 5210,\n        \"price\": 3395.5,\n      },\n      {\n        \"amount\": 3246,\n        \"price\": 3395,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 3394.5,\n      },\n      {\n        \"amount\": 3013,\n        \"price\": 3394,\n      },\n      {\n        \"amount\": 3340,\n        \"price\": 3393.5,\n      },\n      {\n        \"amount\": 4903,\n        \"price\": 3393,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 3392.5,\n      },\n      {\n        \"amount\": 1046,\n        \"price\": 3392,\n      },\n      {\n        \"amount\": 90,\n        \"price\": 3391,\n      },\n      {\n        \"amount\": 3609,\n        \"price\": 3390.5,\n      },\n      {\n        \"amount\": 48122,\n        \"price\": 3390,\n      },\n      {\n        \"amount\": 1512,\n        \"price\": 3389.5,\n      },\n      {\n        \"amount\": 2019,\n        \"price\": 3389,\n      },\n      {\n        \"amount\": 3800,\n        \"price\": 3388.5,\n      },\n      {\n        \"amount\": 113218,\n        \"price\": 3388,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 3387.5,\n      },\n      {\n        \"amount\": 4175,\n        \"price\": 3387,\n      },\n      {\n        \"amount\": 6662,\n        \"price\": 3386.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3386,\n      },\n      {\n        \"amount\": 296,\n        \"price\": 3385.5,\n      },\n      {\n        \"amount\": 4128,\n        \"price\": 3385,\n      },\n      {\n        \"amount\": 4472,\n        \"price\": 3384.5,\n      },\n      {\n        \"amount\": 7580,\n        \"price\": 3384,\n      },\n      {\n        \"amount\": 595,\n        \"price\": 3383.5,\n      },\n      {\n        \"amount\": 5372,\n        \"price\": 3383,\n      },\n      {\n        \"amount\": 1025,\n        \"price\": 3382.5,\n      },\n      {\n        \"amount\": 321,\n        \"price\": 3382,\n      },\n      {\n        \"amount\": 4316,\n        \"price\": 3381,\n      },\n      {\n        \"amount\": 433273,\n        \"price\": 3380.5,\n      },\n      {\n        \"amount\": 85519,\n        \"price\": 3380,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3379.5,\n      },\n      {\n        \"amount\": 5055,\n        \"price\": 3379,\n      },\n      {\n        \"amount\": 565,\n        \"price\": 3378.5,\n      },\n      {\n        \"amount\": 7400,\n        \"price\": 3378,\n      },\n      {\n        \"amount\": 12816,\n        \"price\": 3377.5,\n      },\n      {\n        \"amount\": 6407,\n        \"price\": 3377,\n      },\n      {\n        \"amount\": 20225,\n        \"price\": 3376.5,\n      },\n      {\n        \"amount\": 3125,\n        \"price\": 3375.5,\n      },\n      {\n        \"amount\": 21507,\n        \"price\": 3375,\n      },\n      {\n        \"amount\": 586,\n        \"price\": 3374.5,\n      },\n      {\n        \"amount\": 645,\n        \"price\": 3374,\n      },\n      {\n        \"amount\": 945,\n        \"price\": 3373.5,\n      },\n      {\n        \"amount\": 12890,\n        \"price\": 3373,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 3372.5,\n      },\n      {\n        \"amount\": 113,\n        \"price\": 3372,\n      },\n      {\n        \"amount\": 25043,\n        \"price\": 3371.5,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 3371,\n      },\n      {\n        \"amount\": 988,\n        \"price\": 3370.5,\n      },\n      {\n        \"amount\": 7607,\n        \"price\": 3370,\n      },\n      {\n        \"amount\": 2661,\n        \"price\": 3369,\n      },\n      {\n        \"amount\": 38768,\n        \"price\": 3368.5,\n      },\n      {\n        \"amount\": 47200,\n        \"price\": 3368,\n      },\n      {\n        \"amount\": 5803,\n        \"price\": 3367.5,\n      },\n      {\n        \"amount\": 33691,\n        \"price\": 3367,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 3366.5,\n      },\n      {\n        \"amount\": 9276,\n        \"price\": 3366,\n      },\n      {\n        \"amount\": 3995,\n        \"price\": 3365.5,\n      },\n      {\n        \"amount\": 4637,\n        \"price\": 3365,\n      },\n      {\n        \"amount\": 2750,\n        \"price\": 3364.5,\n      },\n      {\n        \"amount\": 55,\n        \"price\": 3364,\n      },\n      {\n        \"amount\": 2240,\n        \"price\": 3363.5,\n      },\n      {\n        \"amount\": 4850,\n        \"price\": 3363,\n      },\n      {\n        \"amount\": 1180,\n        \"price\": 3362.5,\n      },\n      {\n        \"amount\": 2034,\n        \"price\": 3362,\n      },\n      {\n        \"amount\": 285,\n        \"price\": 3361.5,\n      },\n      {\n        \"amount\": 1865,\n        \"price\": 3361,\n      },\n      {\n        \"amount\": 22300,\n        \"price\": 3360,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3359.5,\n      },\n      {\n        \"amount\": 529,\n        \"price\": 3359,\n      },\n      {\n        \"amount\": 1350,\n        \"price\": 3358.5,\n      },\n      {\n        \"amount\": 120658,\n        \"price\": 3358,\n      },\n      {\n        \"amount\": 91462,\n        \"price\": 3357.5,\n      },\n      {\n        \"amount\": 8438,\n        \"price\": 3357,\n      },\n      {\n        \"amount\": 86642,\n        \"price\": 3356.5,\n      },\n      {\n        \"amount\": 1810,\n        \"price\": 3356,\n      },\n      {\n        \"amount\": 51220,\n        \"price\": 3355.5,\n      },\n      {\n        \"amount\": 9810,\n        \"price\": 3355,\n      },\n      {\n        \"amount\": 920,\n        \"price\": 3354.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3354,\n      },\n      {\n        \"amount\": 4833,\n        \"price\": 3353.5,\n      },\n      {\n        \"amount\": 23228,\n        \"price\": 3353,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3352.5,\n      },\n      {\n        \"amount\": 31089,\n        \"price\": 3352,\n      },\n      {\n        \"amount\": 10010,\n        \"price\": 3351.5,\n      },\n      {\n        \"amount\": 36313,\n        \"price\": 3351,\n      },\n      {\n        \"amount\": 3547,\n        \"price\": 3350.5,\n      },\n      {\n        \"amount\": 181911,\n        \"price\": 3350,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 3349,\n      },\n      {\n        \"amount\": 24550,\n        \"price\": 3348,\n      },\n      {\n        \"amount\": 1564,\n        \"price\": 3347.5,\n      },\n      {\n        \"amount\": 1824,\n        \"price\": 3347,\n      },\n      {\n        \"amount\": 850,\n        \"price\": 3346,\n      },\n      {\n        \"amount\": 8049,\n        \"price\": 3345.5,\n      },\n      {\n        \"amount\": 3800,\n        \"price\": 3345,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 3344.5,\n      },\n      {\n        \"amount\": 154,\n        \"price\": 3344,\n      },\n      {\n        \"amount\": 1339,\n        \"price\": 3343,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 3342.5,\n      },\n      {\n        \"amount\": 530,\n        \"price\": 3342,\n      },\n      {\n        \"amount\": 10050,\n        \"price\": 3341,\n      },\n      {\n        \"amount\": 524,\n        \"price\": 3340.5,\n      },\n      {\n        \"amount\": 7635,\n        \"price\": 3340,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3339.5,\n      },\n      {\n        \"amount\": 195,\n        \"price\": 3339,\n      },\n      {\n        \"amount\": 1561,\n        \"price\": 3338.5,\n      },\n      {\n        \"amount\": 5809,\n        \"price\": 3338,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3337.5,\n      },\n      {\n        \"amount\": 13183,\n        \"price\": 3337,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 3336.5,\n      },\n      {\n        \"amount\": 621,\n        \"price\": 3336,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3335.5,\n      },\n      {\n        \"amount\": 8275,\n        \"price\": 3335,\n      },\n      {\n        \"amount\": 4943,\n        \"price\": 3334.5,\n      },\n      {\n        \"amount\": 10182,\n        \"price\": 3334,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 3333.5,\n      },\n      {\n        \"amount\": 150708,\n        \"price\": 3333,\n      },\n      {\n        \"amount\": 11240,\n        \"price\": 3332.5,\n      },\n      {\n        \"amount\": 45,\n        \"price\": 3332,\n      },\n      {\n        \"amount\": 9303,\n        \"price\": 3331.5,\n      },\n      {\n        \"amount\": 20533,\n        \"price\": 3331,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3330.5,\n      },\n      {\n        \"amount\": 104325,\n        \"price\": 3330,\n      },\n      {\n        \"amount\": 5063,\n        \"price\": 3329.5,\n      },\n      {\n        \"amount\": 3020,\n        \"price\": 3329,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 3328.5,\n      },\n      {\n        \"amount\": 21972,\n        \"price\": 3328,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3327.5,\n      },\n      {\n        \"amount\": 10338,\n        \"price\": 3327,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 3326.5,\n      },\n      {\n        \"amount\": 4190,\n        \"price\": 3326,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 3325.5,\n      },\n      {\n        \"amount\": 7979,\n        \"price\": 3325,\n      },\n      {\n        \"amount\": 79,\n        \"price\": 3324.5,\n      },\n      {\n        \"amount\": 20111,\n        \"price\": 3324,\n      },\n      {\n        \"amount\": 33235,\n        \"price\": 3323.5,\n      },\n      {\n        \"amount\": 31860,\n        \"price\": 3323,\n      },\n      {\n        \"amount\": 2827,\n        \"price\": 3322.5,\n      },\n      {\n        \"amount\": 3817,\n        \"price\": 3322,\n      },\n      {\n        \"amount\": 10240,\n        \"price\": 3321.5,\n      },\n      {\n        \"amount\": 14400,\n        \"price\": 3321,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 3320.5,\n      },\n      {\n        \"amount\": 38875,\n        \"price\": 3320,\n      },\n      {\n        \"amount\": 105510,\n        \"price\": 3319.5,\n      },\n      {\n        \"amount\": 14000,\n        \"price\": 3318.5,\n      },\n      {\n        \"amount\": 5515,\n        \"price\": 3318,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3317.5,\n      },\n      {\n        \"amount\": 340,\n        \"price\": 3317,\n      },\n      {\n        \"amount\": 4300,\n        \"price\": 3316.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3316,\n      },\n      {\n        \"amount\": 2829,\n        \"price\": 3315.5,\n      },\n      {\n        \"amount\": 64985,\n        \"price\": 3315,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 3314,\n      },\n      {\n        \"amount\": 32676,\n        \"price\": 3313,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 3312.5,\n      },\n      {\n        \"amount\": 1660,\n        \"price\": 3312,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 3311.5,\n      },\n      {\n        \"amount\": 15740,\n        \"price\": 3311,\n      },\n      {\n        \"amount\": 20711,\n        \"price\": 3310,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 3309.5,\n      },\n      {\n        \"amount\": 1918,\n        \"price\": 3309,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 3308.5,\n      },\n      {\n        \"amount\": 7062,\n        \"price\": 3308,\n      },\n      {\n        \"amount\": 1607,\n        \"price\": 3307.5,\n      },\n      {\n        \"amount\": 3288,\n        \"price\": 3307,\n      },\n      {\n        \"amount\": 3850,\n        \"price\": 3306,\n      },\n      {\n        \"amount\": 8055,\n        \"price\": 3305.5,\n      },\n      {\n        \"amount\": 4520,\n        \"price\": 3305,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3304.5,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 3303.5,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 3303,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3302.5,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 3302,\n      },\n      {\n        \"amount\": 1230,\n        \"price\": 3301.5,\n      },\n      {\n        \"amount\": 11663,\n        \"price\": 3301,\n      },\n      {\n        \"amount\": 31580,\n        \"price\": 3300.5,\n      },\n      {\n        \"amount\": 156287,\n        \"price\": 3300,\n      },\n      {\n        \"amount\": 5794,\n        \"price\": 3299,\n      },\n      {\n        \"amount\": 6050,\n        \"price\": 3298.5,\n      },\n      {\n        \"amount\": 38500,\n        \"price\": 3298,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 3296.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3296,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 3295.5,\n      },\n      {\n        \"amount\": 1963,\n        \"price\": 3295,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3294,\n      },\n      {\n        \"amount\": 1236,\n        \"price\": 3293,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3292.5,\n      },\n      {\n        \"amount\": 453,\n        \"price\": 3292,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3291.5,\n      },\n      {\n        \"amount\": 4700,\n        \"price\": 3291,\n      },\n      {\n        \"amount\": 7591,\n        \"price\": 3290.5,\n      },\n      {\n        \"amount\": 31295,\n        \"price\": 3290,\n      },\n      {\n        \"amount\": 3020,\n        \"price\": 3289.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 3289,\n      },\n      {\n        \"amount\": 13476,\n        \"price\": 3288,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3287.5,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 3286,\n      },\n      {\n        \"amount\": 1020,\n        \"price\": 3285.5,\n      },\n      {\n        \"amount\": 13715,\n        \"price\": 3285,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3284,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3283.5,\n      },\n      {\n        \"amount\": 2820,\n        \"price\": 3283,\n      },\n      {\n        \"amount\": 9050,\n        \"price\": 3282.5,\n      },\n      {\n        \"amount\": 32600,\n        \"price\": 3282,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3281.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3281,\n      },\n      {\n        \"amount\": 3280,\n        \"price\": 3280.5,\n      },\n      {\n        \"amount\": 19575,\n        \"price\": 3280,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3279.5,\n      },\n      {\n        \"amount\": 6669,\n        \"price\": 3279,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3278.5,\n      },\n      {\n        \"amount\": 1513,\n        \"price\": 3278,\n      },\n      {\n        \"amount\": 298,\n        \"price\": 3277,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 3276,\n      },\n      {\n        \"amount\": 50997,\n        \"price\": 3275.5,\n      },\n      {\n        \"amount\": 20957,\n        \"price\": 3275,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3274.5,\n      },\n      {\n        \"amount\": 10418,\n        \"price\": 3274,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3273.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3273,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3272.5,\n      },\n      {\n        \"amount\": 1638,\n        \"price\": 3272,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3271.5,\n      },\n      {\n        \"amount\": 2550,\n        \"price\": 3271,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 3270.5,\n      },\n      {\n        \"amount\": 10361,\n        \"price\": 3270,\n      },\n      {\n        \"amount\": 1393,\n        \"price\": 3269,\n      },\n      {\n        \"amount\": 32685,\n        \"price\": 3268.5,\n      },\n      {\n        \"amount\": 2985,\n        \"price\": 3268,\n      },\n      {\n        \"amount\": 3012,\n        \"price\": 3267.5,\n      },\n      {\n        \"amount\": 352,\n        \"price\": 3267,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3266.5,\n      },\n      {\n        \"amount\": 1455,\n        \"price\": 3266,\n      },\n      {\n        \"amount\": 3433,\n        \"price\": 3265.5,\n      },\n      {\n        \"amount\": 4555,\n        \"price\": 3265,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3264.5,\n      },\n      {\n        \"amount\": 7833,\n        \"price\": 3264,\n      },\n      {\n        \"amount\": 2994,\n        \"price\": 3263,\n      },\n      {\n        \"amount\": 6740,\n        \"price\": 3262.5,\n      },\n      {\n        \"amount\": 38998,\n        \"price\": 3262,\n      },\n      {\n        \"amount\": 410,\n        \"price\": 3261.5,\n      },\n      {\n        \"amount\": 2872,\n        \"price\": 3261,\n      },\n      {\n        \"amount\": 3187,\n        \"price\": 3260.5,\n      },\n      {\n        \"amount\": 50465,\n        \"price\": 3260,\n      },\n      {\n        \"amount\": 460,\n        \"price\": 3259,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 3258.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3258,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 3257.5,\n      },\n      {\n        \"amount\": 3007,\n        \"price\": 3257,\n      },\n      {\n        \"amount\": 12676,\n        \"price\": 3256,\n      },\n      {\n        \"amount\": 6620,\n        \"price\": 3255.5,\n      },\n      {\n        \"amount\": 7484,\n        \"price\": 3255,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3254.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3254,\n      },\n      {\n        \"amount\": 7100,\n        \"price\": 3253,\n      },\n      {\n        \"amount\": 1783,\n        \"price\": 3252,\n      },\n      {\n        \"amount\": 20063,\n        \"price\": 3251.5,\n      },\n      {\n        \"amount\": 3170,\n        \"price\": 3251,\n      },\n      {\n        \"amount\": 14550,\n        \"price\": 3250.5,\n      },\n      {\n        \"amount\": 141893,\n        \"price\": 3250,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3249,\n      },\n      {\n        \"amount\": 1666,\n        \"price\": 3248.5,\n      },\n      {\n        \"amount\": 25255,\n        \"price\": 3248,\n      },\n      {\n        \"amount\": 1069,\n        \"price\": 3247,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3246.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3246,\n      },\n      {\n        \"amount\": 36875,\n        \"price\": 3245,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3244.5,\n      },\n      {\n        \"amount\": 11394,\n        \"price\": 3244,\n      },\n      {\n        \"amount\": 645,\n        \"price\": 3243,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 3242.5,\n      },\n      {\n        \"amount\": 345,\n        \"price\": 3242,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3241.5,\n      },\n      {\n        \"amount\": 3657,\n        \"price\": 3240.5,\n      },\n      {\n        \"amount\": 75735,\n        \"price\": 3240,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 3239.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3239,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 3238.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3238,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 3237.5,\n      },\n      {\n        \"amount\": 386,\n        \"price\": 3237,\n      },\n      {\n        \"amount\": 13100,\n        \"price\": 3236,\n      },\n      {\n        \"amount\": 753,\n        \"price\": 3235.5,\n      },\n      {\n        \"amount\": 7823,\n        \"price\": 3235,\n      },\n      {\n        \"amount\": 12617,\n        \"price\": 3234,\n      },\n      {\n        \"amount\": 1583,\n        \"price\": 3233,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 3232.5,\n      },\n      {\n        \"amount\": 1153,\n        \"price\": 3232,\n      },\n      {\n        \"amount\": 5817,\n        \"price\": 3231,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 3230.5,\n      },\n      {\n        \"amount\": 25860,\n        \"price\": 3230,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3229,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 3228.5,\n      },\n      {\n        \"amount\": 2470,\n        \"price\": 3228,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 3227.5,\n      },\n      {\n        \"amount\": 670,\n        \"price\": 3227,\n      },\n      {\n        \"amount\": 27524,\n        \"price\": 3226.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3226,\n      },\n      {\n        \"amount\": 2080,\n        \"price\": 3225.5,\n      },\n      {\n        \"amount\": 775,\n        \"price\": 3225,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 3224,\n      },\n      {\n        \"amount\": 20805,\n        \"price\": 3223,\n      },\n      {\n        \"amount\": 12400,\n        \"price\": 3222.5,\n      },\n      {\n        \"amount\": 81162,\n        \"price\": 3222,\n      },\n      {\n        \"amount\": 23000,\n        \"price\": 3221.5,\n      },\n      {\n        \"amount\": 1120,\n        \"price\": 3221,\n      },\n      {\n        \"amount\": 7525,\n        \"price\": 3220.5,\n      },\n      {\n        \"amount\": 32661,\n        \"price\": 3220,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3219,\n      },\n      {\n        \"amount\": 3770,\n        \"price\": 3218.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3218,\n      },\n      {\n        \"amount\": 325,\n        \"price\": 3217,\n      },\n      {\n        \"amount\": 385,\n        \"price\": 3216,\n      },\n      {\n        \"amount\": 4120,\n        \"price\": 3215,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 3214.5,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 3214,\n      },\n      {\n        \"amount\": 7520,\n        \"price\": 3213,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3212.5,\n      },\n      {\n        \"amount\": 6266,\n        \"price\": 3212,\n      },\n      {\n        \"amount\": 280,\n        \"price\": 3211.5,\n      },\n      {\n        \"amount\": 23342,\n        \"price\": 3211,\n      },\n      {\n        \"amount\": 3550,\n        \"price\": 3210.5,\n      },\n      {\n        \"amount\": 28076,\n        \"price\": 3210,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 3209.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3209,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3208.5,\n      },\n      {\n        \"amount\": 25300,\n        \"price\": 3208,\n      },\n      {\n        \"amount\": 189465,\n        \"price\": 3207.5,\n      },\n      {\n        \"amount\": 11300,\n        \"price\": 3207,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 3206.5,\n      },\n      {\n        \"amount\": 251,\n        \"price\": 3206,\n      },\n      {\n        \"amount\": 1650,\n        \"price\": 3205.5,\n      },\n      {\n        \"amount\": 15371,\n        \"price\": 3205,\n      },\n      {\n        \"amount\": 357000,\n        \"price\": 3204.5,\n      },\n      {\n        \"amount\": 420,\n        \"price\": 3204,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 3203.5,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 3203,\n      },\n      {\n        \"amount\": 22700,\n        \"price\": 3202.5,\n      },\n      {\n        \"amount\": 73,\n        \"price\": 3202,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3201.5,\n      },\n      {\n        \"amount\": 5211,\n        \"price\": 3201,\n      },\n      {\n        \"amount\": 34962,\n        \"price\": 3200.5,\n      },\n      {\n        \"amount\": 336169,\n        \"price\": 3200,\n      },\n      {\n        \"amount\": 100230,\n        \"price\": 3199.5,\n      },\n      {\n        \"amount\": 708,\n        \"price\": 3199,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 3198.5,\n      },\n      {\n        \"amount\": 25200,\n        \"price\": 3198,\n      },\n      {\n        \"amount\": 460,\n        \"price\": 3197,\n      },\n      {\n        \"amount\": 92,\n        \"price\": 3196,\n      },\n      {\n        \"amount\": 163,\n        \"price\": 3195.5,\n      },\n      {\n        \"amount\": 5675,\n        \"price\": 3195,\n      },\n      {\n        \"amount\": 1250,\n        \"price\": 3194,\n      },\n      {\n        \"amount\": 303,\n        \"price\": 3193,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 3192,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 3191.5,\n      },\n      {\n        \"amount\": 5160,\n        \"price\": 3191,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 3190.5,\n      },\n      {\n        \"amount\": 4226,\n        \"price\": 3190,\n      },\n      {\n        \"amount\": 272,\n        \"price\": 3189.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3189,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3188.5,\n      },\n      {\n        \"amount\": 52848,\n        \"price\": 3188,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3187.5,\n      },\n      {\n        \"amount\": 11550,\n        \"price\": 3187,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3186.5,\n      },\n      {\n        \"amount\": 62,\n        \"price\": 3186,\n      },\n      {\n        \"amount\": 212,\n        \"price\": 3185.5,\n      },\n      {\n        \"amount\": 1650,\n        \"price\": 3185,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 3184,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3183.5,\n      },\n      {\n        \"amount\": 35115,\n        \"price\": 3183,\n      },\n      {\n        \"amount\": 22080,\n        \"price\": 3182.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3182,\n      },\n      {\n        \"amount\": 21000,\n        \"price\": 3181.5,\n      },\n      {\n        \"amount\": 4670,\n        \"price\": 3181,\n      },\n      {\n        \"amount\": 1800,\n        \"price\": 3180.5,\n      },\n      {\n        \"amount\": 33929,\n        \"price\": 3180,\n      },\n      {\n        \"amount\": 1640,\n        \"price\": 3179,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3178.5,\n      },\n      {\n        \"amount\": 14930,\n        \"price\": 3178,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3177.5,\n      },\n      {\n        \"amount\": 2097,\n        \"price\": 3177,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3176,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 3175.5,\n      },\n      {\n        \"amount\": 12035,\n        \"price\": 3175,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3173.5,\n      },\n      {\n        \"amount\": 5613,\n        \"price\": 3173,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3172,\n      },\n      {\n        \"amount\": 16387,\n        \"price\": 3171.5,\n      },\n      {\n        \"amount\": 1580,\n        \"price\": 3171,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3170.5,\n      },\n      {\n        \"amount\": 11987,\n        \"price\": 3170,\n      },\n      {\n        \"amount\": 175,\n        \"price\": 3169.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3169,\n      },\n      {\n        \"amount\": 4684,\n        \"price\": 3168,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3167.5,\n      },\n      {\n        \"amount\": 10800,\n        \"price\": 3167,\n      },\n      {\n        \"amount\": 3326,\n        \"price\": 3166,\n      },\n      {\n        \"amount\": 1485,\n        \"price\": 3165,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3164.5,\n      },\n      {\n        \"amount\": 34000,\n        \"price\": 3164,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3163.5,\n      },\n      {\n        \"amount\": 1220,\n        \"price\": 3163,\n      },\n      {\n        \"amount\": 6240,\n        \"price\": 3162,\n      },\n      {\n        \"amount\": 3230,\n        \"price\": 3161.5,\n      },\n      {\n        \"amount\": 490,\n        \"price\": 3161,\n      },\n      {\n        \"amount\": 7775,\n        \"price\": 3160,\n      },\n      {\n        \"amount\": 3900,\n        \"price\": 3159.5,\n      },\n      {\n        \"amount\": 474,\n        \"price\": 3159,\n      },\n      {\n        \"amount\": 6200,\n        \"price\": 3158,\n      },\n      {\n        \"amount\": 2250,\n        \"price\": 3157.5,\n      },\n      {\n        \"amount\": 15885,\n        \"price\": 3157,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3156.5,\n      },\n      {\n        \"amount\": 13138,\n        \"price\": 3156,\n      },\n      {\n        \"amount\": 21268,\n        \"price\": 3155,\n      },\n      {\n        \"amount\": 122,\n        \"price\": 3154.5,\n      },\n      {\n        \"amount\": 1082,\n        \"price\": 3154,\n      },\n      {\n        \"amount\": 4050,\n        \"price\": 3153.5,\n      },\n      {\n        \"amount\": 825,\n        \"price\": 3153,\n      },\n      {\n        \"amount\": 232,\n        \"price\": 3152,\n      },\n      {\n        \"amount\": 22022,\n        \"price\": 3151,\n      },\n      {\n        \"amount\": 1600,\n        \"price\": 3150.5,\n      },\n      {\n        \"amount\": 83852,\n        \"price\": 3150,\n      },\n      {\n        \"amount\": 72,\n        \"price\": 3149,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3148.5,\n      },\n      {\n        \"amount\": 21547,\n        \"price\": 3148,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3147.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3147,\n      },\n      {\n        \"amount\": 144,\n        \"price\": 3146.5,\n      },\n      {\n        \"amount\": 72,\n        \"price\": 3146,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 3145.5,\n      },\n      {\n        \"amount\": 775,\n        \"price\": 3145,\n      },\n      {\n        \"amount\": 62,\n        \"price\": 3144.5,\n      },\n      {\n        \"amount\": 7166,\n        \"price\": 3144,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 3143.5,\n      },\n      {\n        \"amount\": 7644,\n        \"price\": 3143,\n      },\n      {\n        \"amount\": 72,\n        \"price\": 3142.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3141.5,\n      },\n      {\n        \"amount\": 8696,\n        \"price\": 3141,\n      },\n      {\n        \"amount\": 144,\n        \"price\": 3140.5,\n      },\n      {\n        \"amount\": 368,\n        \"price\": 3140,\n      },\n      {\n        \"amount\": 72,\n        \"price\": 3139.5,\n      },\n      {\n        \"amount\": 847,\n        \"price\": 3139,\n      },\n      {\n        \"amount\": 80050,\n        \"price\": 3138.5,\n      },\n      {\n        \"amount\": 211080,\n        \"price\": 3138,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3137.5,\n      },\n      {\n        \"amount\": 4837,\n        \"price\": 3137,\n      },\n      {\n        \"amount\": 33700,\n        \"price\": 3136.5,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3136,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3135.5,\n      },\n      {\n        \"amount\": 8637,\n        \"price\": 3135,\n      },\n      {\n        \"amount\": 272,\n        \"price\": 3134,\n      },\n      {\n        \"amount\": 85,\n        \"price\": 3133.5,\n      },\n      {\n        \"amount\": 2061,\n        \"price\": 3133,\n      },\n      {\n        \"amount\": 132,\n        \"price\": 3132,\n      },\n      {\n        \"amount\": 10144,\n        \"price\": 3131.5,\n      },\n      {\n        \"amount\": 3550,\n        \"price\": 3131,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3130.5,\n      },\n      {\n        \"amount\": 30549,\n        \"price\": 3130,\n      },\n      {\n        \"amount\": 6537,\n        \"price\": 3129.5,\n      },\n      {\n        \"amount\": 4100,\n        \"price\": 3129,\n      },\n      {\n        \"amount\": 2322,\n        \"price\": 3128,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3127.5,\n      },\n      {\n        \"amount\": 72,\n        \"price\": 3127,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3126.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3126,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 3125.5,\n      },\n      {\n        \"amount\": 14275,\n        \"price\": 3125,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3124.5,\n      },\n      {\n        \"amount\": 7050,\n        \"price\": 3124,\n      },\n      {\n        \"amount\": 17200,\n        \"price\": 3123,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3122.5,\n      },\n      {\n        \"amount\": 2722,\n        \"price\": 3122,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 3121.5,\n      },\n      {\n        \"amount\": 9000,\n        \"price\": 3121,\n      },\n      {\n        \"amount\": 215,\n        \"price\": 3120.5,\n      },\n      {\n        \"amount\": 12566,\n        \"price\": 3120,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3119.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3119,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3118.5,\n      },\n      {\n        \"amount\": 145,\n        \"price\": 3118,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3117.5,\n      },\n      {\n        \"amount\": 388,\n        \"price\": 3117,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3116.5,\n      },\n      {\n        \"amount\": 1650,\n        \"price\": 3116,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3115.5,\n      },\n      {\n        \"amount\": 15594,\n        \"price\": 3115,\n      },\n      {\n        \"amount\": 47,\n        \"price\": 3114.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3113.5,\n      },\n      {\n        \"amount\": 5840,\n        \"price\": 3113,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3112.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3112,\n      },\n      {\n        \"amount\": 730,\n        \"price\": 3111.5,\n      },\n      {\n        \"amount\": 38226,\n        \"price\": 3111,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3110.5,\n      },\n      {\n        \"amount\": 13107,\n        \"price\": 3110,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 3109.5,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3109,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 3108.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3108,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3107.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 3106.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 3105.5,\n      },\n      {\n        \"amount\": 14608,\n        \"price\": 3105,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3104.5,\n      },\n      {\n        \"amount\": 5832,\n        \"price\": 3104,\n      },\n      {\n        \"amount\": 706,\n        \"price\": 3103.5,\n      },\n      {\n        \"amount\": 155,\n        \"price\": 3103,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3102.5,\n      },\n      {\n        \"amount\": 3010,\n        \"price\": 3102,\n      },\n      {\n        \"amount\": 11500,\n        \"price\": 3101.5,\n      },\n      {\n        \"amount\": 2790,\n        \"price\": 3101,\n      },\n      {\n        \"amount\": 4280,\n        \"price\": 3100.5,\n      },\n      {\n        \"amount\": 169343,\n        \"price\": 3100,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 3099,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3098.5,\n      },\n      {\n        \"amount\": 39,\n        \"price\": 3098,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3096.5,\n      },\n      {\n        \"amount\": 10238,\n        \"price\": 3096,\n      },\n      {\n        \"amount\": 30049,\n        \"price\": 3095.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 3095,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 3094.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 3094,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3093.5,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 3093,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3092,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3091.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3091,\n      },\n      {\n        \"amount\": 225,\n        \"price\": 3090.5,\n      },\n      {\n        \"amount\": 13727,\n        \"price\": 3090,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3089,\n      },\n      {\n        \"amount\": 5128,\n        \"price\": 3088.5,\n      },\n      {\n        \"amount\": 5125,\n        \"price\": 3088,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 3087.5,\n      },\n      {\n        \"amount\": 51649,\n        \"price\": 3086,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3085,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3084,\n      },\n      {\n        \"amount\": 1110,\n        \"price\": 3083,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3082,\n      },\n      {\n        \"amount\": 1372,\n        \"price\": 3081.5,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 3081,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3080.5,\n      },\n      {\n        \"amount\": 6947,\n        \"price\": 3080,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3079.5,\n      },\n      {\n        \"amount\": 2288,\n        \"price\": 3079,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3078,\n      },\n      {\n        \"amount\": 404,\n        \"price\": 3077,\n      },\n      {\n        \"amount\": 975,\n        \"price\": 3076,\n      },\n      {\n        \"amount\": 9793,\n        \"price\": 3075,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 3074,\n      },\n      {\n        \"amount\": 360,\n        \"price\": 3073.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 3073,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 3072.5,\n      },\n      {\n        \"amount\": 63,\n        \"price\": 3072,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3071,\n      },\n      {\n        \"amount\": 6110,\n        \"price\": 3070,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3069.5,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 3068.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3068,\n      },\n      {\n        \"amount\": 4051,\n        \"price\": 3067.5,\n      },\n      {\n        \"amount\": 1725,\n        \"price\": 3067,\n      },\n      {\n        \"amount\": 466,\n        \"price\": 3066,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3064.5,\n      },\n      {\n        \"amount\": 4030,\n        \"price\": 3064,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3063.5,\n      },\n      {\n        \"amount\": 1064,\n        \"price\": 3063,\n      },\n      {\n        \"amount\": 4320,\n        \"price\": 3062,\n      },\n      {\n        \"amount\": 579,\n        \"price\": 3061.5,\n      },\n      {\n        \"amount\": 3053,\n        \"price\": 3061,\n      },\n      {\n        \"amount\": 5930,\n        \"price\": 3060,\n      },\n      {\n        \"amount\": 1041,\n        \"price\": 3059.5,\n      },\n      {\n        \"amount\": 730,\n        \"price\": 3059,\n      },\n      {\n        \"amount\": 51,\n        \"price\": 3058,\n      },\n      {\n        \"amount\": 1600,\n        \"price\": 3057.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 3057,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 3055.5,\n      },\n      {\n        \"amount\": 4800,\n        \"price\": 3055,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 3054.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3054,\n      },\n      {\n        \"amount\": 120450,\n        \"price\": 3052.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 3052,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 3051.5,\n      },\n      {\n        \"amount\": 11000,\n        \"price\": 3050.5,\n      },\n      {\n        \"amount\": 147301,\n        \"price\": 3050,\n      },\n      {\n        \"amount\": 2316,\n        \"price\": 3049,\n      },\n      {\n        \"amount\": 51,\n        \"price\": 3048.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3048,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3047.5,\n      },\n      {\n        \"amount\": 50150,\n        \"price\": 3047,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 3046.5,\n      },\n      {\n        \"amount\": 8537,\n        \"price\": 3046,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3045,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 3044.5,\n      },\n      {\n        \"amount\": 27711,\n        \"price\": 3044,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 3043.5,\n      },\n      {\n        \"amount\": 2650,\n        \"price\": 3043,\n      },\n      {\n        \"amount\": 1738,\n        \"price\": 3041,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3040.5,\n      },\n      {\n        \"amount\": 11400,\n        \"price\": 3040,\n      },\n      {\n        \"amount\": 37,\n        \"price\": 3039.5,\n      },\n      {\n        \"amount\": 403,\n        \"price\": 3039,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 3038.5,\n      },\n      {\n        \"amount\": 25175,\n        \"price\": 3038,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 3037.5,\n      },\n      {\n        \"amount\": 3421,\n        \"price\": 3037,\n      },\n      {\n        \"amount\": 14200,\n        \"price\": 3036,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 3035.5,\n      },\n      {\n        \"amount\": 3435,\n        \"price\": 3035,\n      },\n      {\n        \"amount\": 1251500,\n        \"price\": 3034,\n      },\n      {\n        \"amount\": 12097,\n        \"price\": 3033.5,\n      },\n      {\n        \"amount\": 933,\n        \"price\": 3033,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3031.5,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 3031,\n      },\n      {\n        \"amount\": 310,\n        \"price\": 3030.5,\n      },\n      {\n        \"amount\": 16810,\n        \"price\": 3030,\n      },\n      {\n        \"amount\": 52,\n        \"price\": 3029.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3029,\n      },\n      {\n        \"amount\": 35,\n        \"price\": 3028.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 3028,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 3027,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3026.5,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 3026,\n      },\n      {\n        \"amount\": 3107,\n        \"price\": 3025.5,\n      },\n      {\n        \"amount\": 128883,\n        \"price\": 3025,\n      },\n      {\n        \"amount\": 1000200,\n        \"price\": 3024.5,\n      },\n      {\n        \"amount\": 910,\n        \"price\": 3024,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 3023,\n      },\n      {\n        \"amount\": 412,\n        \"price\": 3022.5,\n      },\n      {\n        \"amount\": 2466,\n        \"price\": 3022,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 3021.5,\n      },\n      {\n        \"amount\": 21854,\n        \"price\": 3021,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 3020.5,\n      },\n      {\n        \"amount\": 10229,\n        \"price\": 3020,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 3019.5,\n      },\n      {\n        \"amount\": 8800,\n        \"price\": 3019,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 3017.5,\n      },\n      {\n        \"amount\": 100200,\n        \"price\": 3017,\n      },\n      {\n        \"amount\": 1650,\n        \"price\": 3016,\n      },\n      {\n        \"amount\": 1390,\n        \"price\": 3015.5,\n      },\n      {\n        \"amount\": 13988,\n        \"price\": 3015,\n      },\n      {\n        \"amount\": 180,\n        \"price\": 3014,\n      },\n      {\n        \"amount\": 327,\n        \"price\": 3013,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 3012.5,\n      },\n      {\n        \"amount\": 430,\n        \"price\": 3012,\n      },\n      {\n        \"amount\": 460,\n        \"price\": 3011.5,\n      },\n      {\n        \"amount\": 3646,\n        \"price\": 3011,\n      },\n      {\n        \"amount\": 9604,\n        \"price\": 3010.5,\n      },\n      {\n        \"amount\": 9701,\n        \"price\": 3010,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 3009.5,\n      },\n      {\n        \"amount\": 51600,\n        \"price\": 3009,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 3008.5,\n      },\n      {\n        \"amount\": 5155,\n        \"price\": 3008,\n      },\n      {\n        \"amount\": 3200,\n        \"price\": 3007.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 3007,\n      },\n      {\n        \"amount\": 130,\n        \"price\": 3006.5,\n      },\n      {\n        \"amount\": 24630,\n        \"price\": 3006,\n      },\n      {\n        \"amount\": 2101,\n        \"price\": 3005.5,\n      },\n      {\n        \"amount\": 19074,\n        \"price\": 3005,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 3004.5,\n      },\n      {\n        \"amount\": 2520,\n        \"price\": 3003.5,\n      },\n      {\n        \"amount\": 1088,\n        \"price\": 3003,\n      },\n      {\n        \"amount\": 30482,\n        \"price\": 3002,\n      },\n      {\n        \"amount\": 16073,\n        \"price\": 3001.5,\n      },\n      {\n        \"amount\": 5175,\n        \"price\": 3001,\n      },\n      {\n        \"amount\": 201,\n        \"price\": 3000.5,\n      },\n      {\n        \"amount\": 623793,\n        \"price\": 3000,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2999.5,\n      },\n      {\n        \"amount\": 2499,\n        \"price\": 2999,\n      },\n      {\n        \"amount\": 3263,\n        \"price\": 2998,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2997.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2996.5,\n      },\n      {\n        \"amount\": 108775,\n        \"price\": 2995,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2994,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2993.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2993,\n      },\n      {\n        \"amount\": 55,\n        \"price\": 2992,\n      },\n      {\n        \"amount\": 610,\n        \"price\": 2991,\n      },\n      {\n        \"amount\": 8456,\n        \"price\": 2990,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 2988.5,\n      },\n      {\n        \"amount\": 1000910,\n        \"price\": 2988,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2987.5,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 2987,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 2986.5,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 2986,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 2985,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2984,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2983,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 2982.5,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2982,\n      },\n      {\n        \"amount\": 2212,\n        \"price\": 2981.5,\n      },\n      {\n        \"amount\": 2358,\n        \"price\": 2981,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2980.5,\n      },\n      {\n        \"amount\": 38421,\n        \"price\": 2980,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2979,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2978,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2977.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2976.5,\n      },\n      {\n        \"amount\": 1550,\n        \"price\": 2975,\n      },\n      {\n        \"amount\": 5555,\n        \"price\": 2974.5,\n      },\n      {\n        \"amount\": 956,\n        \"price\": 2974,\n      },\n      {\n        \"amount\": 56,\n        \"price\": 2973,\n      },\n      {\n        \"amount\": 378,\n        \"price\": 2972.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2972,\n      },\n      {\n        \"amount\": 13572,\n        \"price\": 2970,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2969,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2968.5,\n      },\n      {\n        \"amount\": 975,\n        \"price\": 2968,\n      },\n      {\n        \"amount\": 6300,\n        \"price\": 2967,\n      },\n      {\n        \"amount\": 116,\n        \"price\": 2966.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2966,\n      },\n      {\n        \"amount\": 888,\n        \"price\": 2965,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 2964,\n      },\n      {\n        \"amount\": 58,\n        \"price\": 2963.5,\n      },\n      {\n        \"amount\": 2560,\n        \"price\": 2963,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2962.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2962,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2961.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2961,\n      },\n      {\n        \"amount\": 27570,\n        \"price\": 2960,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 2958.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2956,\n      },\n      {\n        \"amount\": 1452,\n        \"price\": 2955,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2954.5,\n      },\n      {\n        \"amount\": 1057,\n        \"price\": 2954,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2953.5,\n      },\n      {\n        \"amount\": 7263,\n        \"price\": 2953,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 2952.5,\n      },\n      {\n        \"amount\": 17000,\n        \"price\": 2951.5,\n      },\n      {\n        \"amount\": 1087,\n        \"price\": 2951,\n      },\n      {\n        \"amount\": 2018,\n        \"price\": 2950.5,\n      },\n      {\n        \"amount\": 86270,\n        \"price\": 2950,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 2949.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2949,\n      },\n      {\n        \"amount\": 113,\n        \"price\": 2948,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 2947,\n      },\n      {\n        \"amount\": 59,\n        \"price\": 2944.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2944,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2943,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 2942.5,\n      },\n      {\n        \"amount\": 10700,\n        \"price\": 2942,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2940.5,\n      },\n      {\n        \"amount\": 20539,\n        \"price\": 2940,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 2939.5,\n      },\n      {\n        \"amount\": 4301,\n        \"price\": 2939,\n      },\n      {\n        \"amount\": 310,\n        \"price\": 2938,\n      },\n      {\n        \"amount\": 1010,\n        \"price\": 2937,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2936,\n      },\n      {\n        \"amount\": 59,\n        \"price\": 2935.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2935,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2934,\n      },\n      {\n        \"amount\": 1900,\n        \"price\": 2933,\n      },\n      {\n        \"amount\": 402,\n        \"price\": 2931,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2930.5,\n      },\n      {\n        \"amount\": 8530,\n        \"price\": 2930,\n      },\n      {\n        \"amount\": 300725,\n        \"price\": 2929,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2927,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2926,\n      },\n      {\n        \"amount\": 3125,\n        \"price\": 2925,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2924,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2922.5,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 2922,\n      },\n      {\n        \"amount\": 1567,\n        \"price\": 2921,\n      },\n      {\n        \"amount\": 12157,\n        \"price\": 2920,\n      },\n      {\n        \"amount\": 553,\n        \"price\": 2918,\n      },\n      {\n        \"amount\": 2190,\n        \"price\": 2917,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2916.5,\n      },\n      {\n        \"amount\": 2100,\n        \"price\": 2916,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 2915.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2915,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 2913,\n      },\n      {\n        \"amount\": 1300,\n        \"price\": 2911,\n      },\n      {\n        \"amount\": 13705,\n        \"price\": 2910,\n      },\n      {\n        \"amount\": 4242,\n        \"price\": 2908,\n      },\n      {\n        \"amount\": 5050,\n        \"price\": 2907.5,\n      },\n      {\n        \"amount\": 101,\n        \"price\": 2907,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2905.5,\n      },\n      {\n        \"amount\": 860,\n        \"price\": 2905,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2904.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2904,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2903.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2902,\n      },\n      {\n        \"amount\": 23019,\n        \"price\": 2901.5,\n      },\n      {\n        \"amount\": 14525,\n        \"price\": 2901,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2900.5,\n      },\n      {\n        \"amount\": 49709,\n        \"price\": 2900,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2899.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2899,\n      },\n      {\n        \"amount\": 312,\n        \"price\": 2897.5,\n      },\n      {\n        \"amount\": 23000,\n        \"price\": 2896.5,\n      },\n      {\n        \"amount\": 330,\n        \"price\": 2895,\n      },\n      {\n        \"amount\": 710,\n        \"price\": 2894.5,\n      },\n      {\n        \"amount\": 13533,\n        \"price\": 2892,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2890.5,\n      },\n      {\n        \"amount\": 19965,\n        \"price\": 2890,\n      },\n      {\n        \"amount\": 375,\n        \"price\": 2889,\n      },\n      {\n        \"amount\": 52677,\n        \"price\": 2888,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2887.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2887,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2886.5,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2885.5,\n      },\n      {\n        \"amount\": 3100,\n        \"price\": 2885,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2883.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2881.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2881,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2880.5,\n      },\n      {\n        \"amount\": 22479,\n        \"price\": 2880,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2879.5,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2879,\n      },\n      {\n        \"amount\": 63,\n        \"price\": 2878.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2877.5,\n      },\n      {\n        \"amount\": 5855,\n        \"price\": 2877,\n      },\n      {\n        \"amount\": 1000000,\n        \"price\": 2876.5,\n      },\n      {\n        \"amount\": 2150,\n        \"price\": 2875,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2874.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2873,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2871.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2871,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2870.5,\n      },\n      {\n        \"amount\": 8220,\n        \"price\": 2870,\n      },\n      {\n        \"amount\": 63,\n        \"price\": 2869,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 2868,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2866.5,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 2866,\n      },\n      {\n        \"amount\": 4600,\n        \"price\": 2865,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 2863.5,\n      },\n      {\n        \"amount\": 4967,\n        \"price\": 2863,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 2861,\n      },\n      {\n        \"amount\": 4834,\n        \"price\": 2860,\n      },\n      {\n        \"amount\": 1547,\n        \"price\": 2859,\n      },\n      {\n        \"amount\": 50012,\n        \"price\": 2858.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2858,\n      },\n      {\n        \"amount\": 7500,\n        \"price\": 2857.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2856,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2855.5,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 2855,\n      },\n      {\n        \"amount\": 2674,\n        \"price\": 2854.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2853.5,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 2853,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 2852.5,\n      },\n      {\n        \"amount\": 750,\n        \"price\": 2852,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2851.5,\n      },\n      {\n        \"amount\": 9788,\n        \"price\": 2851,\n      },\n      {\n        \"amount\": 3065,\n        \"price\": 2850.5,\n      },\n      {\n        \"amount\": 48028,\n        \"price\": 2850,\n      },\n      {\n        \"amount\": 1999,\n        \"price\": 2845,\n      },\n      {\n        \"amount\": 34444,\n        \"price\": 2844.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2844,\n      },\n      {\n        \"amount\": 9500,\n        \"price\": 2843,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2842,\n      },\n      {\n        \"amount\": 100365,\n        \"price\": 2841,\n      },\n      {\n        \"amount\": 5250,\n        \"price\": 2840,\n      },\n      {\n        \"amount\": 1599,\n        \"price\": 2839,\n      },\n      {\n        \"amount\": 280,\n        \"price\": 2838,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2837.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2836.5,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 2836,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 2835,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2834,\n      },\n      {\n        \"amount\": 125,\n        \"price\": 2833,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2832,\n      },\n      {\n        \"amount\": 396,\n        \"price\": 2831.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2831,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 2830.5,\n      },\n      {\n        \"amount\": 1300,\n        \"price\": 2830,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2827,\n      },\n      {\n        \"amount\": 1060,\n        \"price\": 2826,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 2825.5,\n      },\n      {\n        \"amount\": 3900,\n        \"price\": 2825,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2824.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2824,\n      },\n      {\n        \"amount\": 7420,\n        \"price\": 2823,\n      },\n      {\n        \"amount\": 21822,\n        \"price\": 2822,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2821,\n      },\n      {\n        \"amount\": 32760,\n        \"price\": 2820,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2819,\n      },\n      {\n        \"amount\": 224,\n        \"price\": 2818,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2816.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2816,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2815,\n      },\n      {\n        \"amount\": 818,\n        \"price\": 2813,\n      },\n      {\n        \"amount\": 22926,\n        \"price\": 2812.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2812,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2811.5,\n      },\n      {\n        \"amount\": 22284,\n        \"price\": 2811,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2810.5,\n      },\n      {\n        \"amount\": 1095,\n        \"price\": 2810,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 2808,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 2807,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2806.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2806,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2805.5,\n      },\n      {\n        \"amount\": 1450,\n        \"price\": 2805,\n      },\n      {\n        \"amount\": 68,\n        \"price\": 2803,\n      },\n      {\n        \"amount\": 269,\n        \"price\": 2802,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2801.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2801,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2800.5,\n      },\n      {\n        \"amount\": 87284,\n        \"price\": 2800,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 2798,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2797.5,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2795.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2794,\n      },\n      {\n        \"amount\": 218,\n        \"price\": 2793.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2792,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2791.5,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 2791,\n      },\n      {\n        \"amount\": 7340,\n        \"price\": 2790,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 2788.5,\n      },\n      {\n        \"amount\": 805,\n        \"price\": 2788,\n      },\n      {\n        \"amount\": 2300,\n        \"price\": 2787,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2786,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2785,\n      },\n      {\n        \"amount\": 69,\n        \"price\": 2784.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2783,\n      },\n      {\n        \"amount\": 1989,\n        \"price\": 2780,\n      },\n      {\n        \"amount\": 333,\n        \"price\": 2779.5,\n      },\n      {\n        \"amount\": 77,\n        \"price\": 2778,\n      },\n      {\n        \"amount\": 512,\n        \"price\": 2777.5,\n      },\n      {\n        \"amount\": 22,\n        \"price\": 2777,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2776,\n      },\n      {\n        \"amount\": 22358,\n        \"price\": 2775,\n      },\n      {\n        \"amount\": 383,\n        \"price\": 2774.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2772,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 2771,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2770,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2769,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2768.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2768,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2767.5,\n      },\n      {\n        \"amount\": 7650,\n        \"price\": 2767,\n      },\n      {\n        \"amount\": 158,\n        \"price\": 2765.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2765,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2764,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 2763,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2762.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2761.5,\n      },\n      {\n        \"amount\": 22000,\n        \"price\": 2760,\n      },\n      {\n        \"amount\": 2950,\n        \"price\": 2759.5,\n      },\n      {\n        \"amount\": 303600,\n        \"price\": 2757.5,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 2756,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2754.5,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2754,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2753,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 2751.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2751,\n      },\n      {\n        \"amount\": 39686,\n        \"price\": 2750,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2749.5,\n      },\n      {\n        \"amount\": 540,\n        \"price\": 2749,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 2747.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2745,\n      },\n      {\n        \"amount\": 34444,\n        \"price\": 2744.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2744,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 2741,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2740,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2738,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2737,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2736.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2736,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2734,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2733,\n      },\n      {\n        \"amount\": 5900,\n        \"price\": 2731.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2730.5,\n      },\n      {\n        \"amount\": 1020000,\n        \"price\": 2730,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 2729,\n      },\n      {\n        \"amount\": 225,\n        \"price\": 2728.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2727,\n      },\n      {\n        \"amount\": 2080,\n        \"price\": 2726,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2725.5,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 2725,\n      },\n      {\n        \"amount\": 7320,\n        \"price\": 2723,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 2722.5,\n      },\n      {\n        \"amount\": 1650,\n        \"price\": 2720,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2719,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2717,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2715,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2713,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2712.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2711,\n      },\n      {\n        \"amount\": 10016,\n        \"price\": 2710,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2708,\n      },\n      {\n        \"amount\": 333,\n        \"price\": 2706.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2706,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2705.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2705,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2704,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2703.5,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 2703,\n      },\n      {\n        \"amount\": 160,\n        \"price\": 2702,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 2701.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2700.5,\n      },\n      {\n        \"amount\": 121849,\n        \"price\": 2700,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2699.5,\n      },\n      {\n        \"amount\": 671,\n        \"price\": 2699,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2698.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2697,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2695.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2692.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2691,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2689,\n      },\n      {\n        \"amount\": 5555,\n        \"price\": 2685.5,\n      },\n      {\n        \"amount\": 150000,\n        \"price\": 2682,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2680,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2679,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2678.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2678,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2677,\n      },\n      {\n        \"amount\": 32400,\n        \"price\": 2675,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2672.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2672,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2671.5,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2670.5,\n      },\n      {\n        \"amount\": 10002,\n        \"price\": 2670,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 2667,\n      },\n      {\n        \"amount\": 41176,\n        \"price\": 2666,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2664.5,\n      },\n      {\n        \"amount\": 6700,\n        \"price\": 2663,\n      },\n      {\n        \"amount\": 12222,\n        \"price\": 2662,\n      },\n      {\n        \"amount\": 167255,\n        \"price\": 2661,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2660.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2660,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 2655.5,\n      },\n      {\n        \"amount\": 177,\n        \"price\": 2655,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2654.5,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2654,\n      },\n      {\n        \"amount\": 350,\n        \"price\": 2653,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2651.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2651,\n      },\n      {\n        \"amount\": 760,\n        \"price\": 2650,\n      },\n      {\n        \"amount\": 2388,\n        \"price\": 2646.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2645,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2644,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2643,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2642,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2641.5,\n      },\n      {\n        \"amount\": 166667,\n        \"price\": 2641,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 2640,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2639.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2639,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 2637.5,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 2637,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2635,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2633.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2633,\n      },\n      {\n        \"amount\": 1001000,\n        \"price\": 2632,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2630.5,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2629,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 2628.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2627.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2627,\n      },\n      {\n        \"amount\": 2900,\n        \"price\": 2625,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2624.5,\n      },\n      {\n        \"amount\": 7288,\n        \"price\": 2623,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 2621,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 2620,\n      },\n      {\n        \"amount\": 640,\n        \"price\": 2618,\n      },\n      {\n        \"amount\": 964,\n        \"price\": 2617,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 2616,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2614,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2613.5,\n      },\n      {\n        \"amount\": 333,\n        \"price\": 2613,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2611.5,\n      },\n      {\n        \"amount\": 3097,\n        \"price\": 2610,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2608,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2607,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2605.5,\n      },\n      {\n        \"amount\": 6786,\n        \"price\": 2605,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2602,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2601.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2601,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2600.5,\n      },\n      {\n        \"amount\": 73685,\n        \"price\": 2600,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2598,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2596.5,\n      },\n      {\n        \"amount\": 7,\n        \"price\": 2592,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2591.5,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 2590,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 2589,\n      },\n      {\n        \"amount\": 7650,\n        \"price\": 2588,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2587,\n      },\n      {\n        \"amount\": 1388,\n        \"price\": 2585,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2582.5,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 2581.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2580,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2579.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2579,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2578,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2577,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 2575.5,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 2575,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2574.5,\n      },\n      {\n        \"amount\": 7500,\n        \"price\": 2574,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2573,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2572.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 2572,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2571,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2570,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2568,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2566,\n      },\n      {\n        \"amount\": 333,\n        \"price\": 2565.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2564,\n      },\n      {\n        \"amount\": 5555,\n        \"price\": 2561.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2560,\n      },\n      {\n        \"amount\": 11700,\n        \"price\": 2555,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 2554,\n      },\n      {\n        \"amount\": 650,\n        \"price\": 2553,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 2552,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2551.5,\n      },\n      {\n        \"amount\": 560,\n        \"price\": 2551,\n      },\n      {\n        \"amount\": 103565,\n        \"price\": 2550,\n      },\n      {\n        \"amount\": 7500,\n        \"price\": 2549,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 2547.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2547,\n      },\n      {\n        \"amount\": 2250,\n        \"price\": 2546,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2545.5,\n      },\n      {\n        \"amount\": 2255,\n        \"price\": 2543,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2540,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2535,\n      },\n      {\n        \"amount\": 824,\n        \"price\": 2532,\n      },\n      {\n        \"amount\": 4421,\n        \"price\": 2531,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2530.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2530,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 2525,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2523,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 2522.5,\n      },\n      {\n        \"amount\": 70,\n        \"price\": 2521,\n      },\n      {\n        \"amount\": 10470,\n        \"price\": 2520,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2517.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2517,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2516.5,\n      },\n      {\n        \"amount\": 513,\n        \"price\": 2515,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2514.5,\n      },\n      {\n        \"amount\": 4377,\n        \"price\": 2511,\n      },\n      {\n        \"amount\": 118,\n        \"price\": 2510,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2509,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2505.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2505,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2503.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2502.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2501.5,\n      },\n      {\n        \"amount\": 1700,\n        \"price\": 2501,\n      },\n      {\n        \"amount\": 3300,\n        \"price\": 2500.5,\n      },\n      {\n        \"amount\": 253178,\n        \"price\": 2500,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2499,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2497.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2491.5,\n      },\n      {\n        \"amount\": 212,\n        \"price\": 2491,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 2490,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2487.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 2484,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2481,\n      },\n      {\n        \"amount\": 7004,\n        \"price\": 2480.5,\n      },\n      {\n        \"amount\": 11040,\n        \"price\": 2480,\n      },\n      {\n        \"amount\": 5350,\n        \"price\": 2475,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 2471.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2471,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2470,\n      },\n      {\n        \"amount\": 240,\n        \"price\": 2469.5,\n      },\n      {\n        \"amount\": 360,\n        \"price\": 2468.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 2468,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2465.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2463,\n      },\n      {\n        \"amount\": 1557,\n        \"price\": 2462,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2461,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2460.5,\n      },\n      {\n        \"amount\": 20001,\n        \"price\": 2460,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 2459,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2457,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2456.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2456,\n      },\n      {\n        \"amount\": 187,\n        \"price\": 2455.5,\n      },\n      {\n        \"amount\": 4600,\n        \"price\": 2455,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2454.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2453.5,\n      },\n      {\n        \"amount\": 3012,\n        \"price\": 2450.5,\n      },\n      {\n        \"amount\": 1472,\n        \"price\": 2450,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2445.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2445,\n      },\n      {\n        \"amount\": 44444,\n        \"price\": 2444.5,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 2444,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 2443.5,\n      },\n      {\n        \"amount\": 35,\n        \"price\": 2443,\n      },\n      {\n        \"amount\": 1020,\n        \"price\": 2440,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 2435,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2434,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2433,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2432.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2432,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 2430.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2430,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2428.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2427,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2425.5,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 2425,\n      },\n      {\n        \"amount\": 420,\n        \"price\": 2422,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2420.5,\n      },\n      {\n        \"amount\": 3787,\n        \"price\": 2420,\n      },\n      {\n        \"amount\": 117200,\n        \"price\": 2418,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2417,\n      },\n      {\n        \"amount\": 4100,\n        \"price\": 2415.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2415,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2414,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2413,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2412,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 2411,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 2410,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2409.5,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 2409,\n      },\n      {\n        \"amount\": 2200,\n        \"price\": 2405.5,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2405,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2403,\n      },\n      {\n        \"amount\": 31572,\n        \"price\": 2400,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2397,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2396.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2395,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2393.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2392.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2392,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2391.5,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 2391,\n      },\n      {\n        \"amount\": 1900,\n        \"price\": 2388.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 2387,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2383,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2382,\n      },\n      {\n        \"amount\": 30860,\n        \"price\": 2380,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2378.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2376,\n      },\n      {\n        \"amount\": 5071,\n        \"price\": 2375,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2373.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2373,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2371.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2369,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2368.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2367,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2365.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2364,\n      },\n      {\n        \"amount\": 12020,\n        \"price\": 2360,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2359.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2357,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2356.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2355,\n      },\n      {\n        \"amount\": 44444,\n        \"price\": 2354.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2354,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2353,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 2350.5,\n      },\n      {\n        \"amount\": 10030,\n        \"price\": 2350,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2346.5,\n      },\n      {\n        \"amount\": 31,\n        \"price\": 2345,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2337,\n      },\n      {\n        \"amount\": 5037,\n        \"price\": 2336.5,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 2335,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 2333,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2332,\n      },\n      {\n        \"amount\": 52,\n        \"price\": 2331,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2330.5,\n      },\n      {\n        \"amount\": 513,\n        \"price\": 2329.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2328,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2327.5,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 2325,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2322.5,\n      },\n      {\n        \"amount\": 464,\n        \"price\": 2322,\n      },\n      {\n        \"amount\": 470,\n        \"price\": 2320,\n      },\n      {\n        \"amount\": 588,\n        \"price\": 2319,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2313.5,\n      },\n      {\n        \"amount\": 54,\n        \"price\": 2313,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2310,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2309.5,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 2306.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2305.5,\n      },\n      {\n        \"amount\": 276,\n        \"price\": 2305,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2303.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2301,\n      },\n      {\n        \"amount\": 13960,\n        \"price\": 2300,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2296.5,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2295,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2288.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2287,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 2285,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2284,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2283,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2282,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2281,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2280,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2275,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2270,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2269.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2269,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2267.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2265,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 2263.5,\n      },\n      {\n        \"amount\": 3250,\n        \"price\": 2263,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2259,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2258,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2255.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2255,\n      },\n      {\n        \"amount\": 1537,\n        \"price\": 2253,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 2252,\n      },\n      {\n        \"amount\": 2050,\n        \"price\": 2251,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2250.5,\n      },\n      {\n        \"amount\": 118755,\n        \"price\": 2250,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2247,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2246,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 2243,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2242,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2241.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2240.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2240,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 2234.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 2234,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2229,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2227.5,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 2227,\n      },\n      {\n        \"amount\": 7650,\n        \"price\": 2226,\n      },\n      {\n        \"amount\": 5200,\n        \"price\": 2225,\n      },\n      {\n        \"amount\": 222,\n        \"price\": 2222.5,\n      },\n      {\n        \"amount\": 143598,\n        \"price\": 2222,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2216.5,\n      },\n      {\n        \"amount\": 17,\n        \"price\": 2216,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2212,\n      },\n      {\n        \"amount\": 3537,\n        \"price\": 2211.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2211,\n      },\n      {\n        \"amount\": 40080,\n        \"price\": 2210,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2208,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2207,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2206,\n      },\n      {\n        \"amount\": 112,\n        \"price\": 2205.5,\n      },\n      {\n        \"amount\": 662,\n        \"price\": 2205,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2204,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2203,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2200.5,\n      },\n      {\n        \"amount\": 33584,\n        \"price\": 2200,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2197,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2196,\n      },\n      {\n        \"amount\": 10333,\n        \"price\": 2193.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2193,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 2190,\n      },\n      {\n        \"amount\": 9,\n        \"price\": 2189,\n      },\n      {\n        \"amount\": 2400,\n        \"price\": 2188,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 2185,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2184,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 2180,\n      },\n      {\n        \"amount\": 11009,\n        \"price\": 2175,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2172.5,\n      },\n      {\n        \"amount\": 4295,\n        \"price\": 2170,\n      },\n      {\n        \"amount\": 1737,\n        \"price\": 2169.5,\n      },\n      {\n        \"amount\": 1120,\n        \"price\": 2167,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2166,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 2165,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2164.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2160,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2158.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 2157,\n      },\n      {\n        \"amount\": 2030,\n        \"price\": 2155,\n      },\n      {\n        \"amount\": 33000,\n        \"price\": 2152,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2150.5,\n      },\n      {\n        \"amount\": 6580,\n        \"price\": 2150,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2146,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 2145,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2144,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2142.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2141.5,\n      },\n      {\n        \"amount\": 163650,\n        \"price\": 2140,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2136.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2136,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 2135,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 2134,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 2133.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2132,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2130,\n      },\n      {\n        \"amount\": 1825,\n        \"price\": 2128,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2127,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 2126,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2125,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2123.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2123,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2118,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2117.5,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 2114,\n      },\n      {\n        \"amount\": 219346,\n        \"price\": 2111.5,\n      },\n      {\n        \"amount\": 505643,\n        \"price\": 2111,\n      },\n      {\n        \"amount\": 1998,\n        \"price\": 2110,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 2105,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 2104,\n      },\n      {\n        \"amount\": 29626,\n        \"price\": 2100,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2099,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2096.5,\n      },\n      {\n        \"amount\": 388,\n        \"price\": 2090,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2085.5,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2084,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 2083,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 2082.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 2082,\n      },\n      {\n        \"amount\": 7650,\n        \"price\": 2081,\n      },\n      {\n        \"amount\": 7777,\n        \"price\": 2077,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2075,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2073.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2063.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2060,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2058.5,\n      },\n      {\n        \"amount\": 981,\n        \"price\": 2055,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 2053,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2052,\n      },\n      {\n        \"amount\": 230,\n        \"price\": 2050,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 2048,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2043.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 2042,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2040.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2037.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 2030.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2030,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 2025,\n      },\n      {\n        \"amount\": 1100,\n        \"price\": 2023,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 2022,\n      },\n      {\n        \"amount\": 4060,\n        \"price\": 2021,\n      },\n      {\n        \"amount\": 2013,\n        \"price\": 2020.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 2020,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2017.5,\n      },\n      {\n        \"amount\": 581,\n        \"price\": 2015,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 2014,\n      },\n      {\n        \"amount\": 501,\n        \"price\": 2013.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 2011.5,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 2010,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 2009,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2007.5,\n      },\n      {\n        \"amount\": 1450,\n        \"price\": 2005,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 2003.5,\n      },\n      {\n        \"amount\": 10491,\n        \"price\": 2002,\n      },\n      {\n        \"amount\": 4624,\n        \"price\": 2001,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 2000.5,\n      },\n      {\n        \"amount\": 49692,\n        \"price\": 2000,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 1999,\n      },\n      {\n        \"amount\": 130,\n        \"price\": 1990,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1987,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1984.5,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 1980,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1977,\n      },\n      {\n        \"amount\": 1788,\n        \"price\": 1976,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1975,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 1970.5,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 1965.5,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 1960.5,\n      },\n      {\n        \"amount\": 1243,\n        \"price\": 1960,\n      },\n      {\n        \"amount\": 2060,\n        \"price\": 1959.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1958.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1955,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1954.5,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 1954,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 1951.5,\n      },\n      {\n        \"amount\": 550,\n        \"price\": 1950,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1945.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1944,\n      },\n      {\n        \"amount\": 9,\n        \"price\": 1941.5,\n      },\n      {\n        \"amount\": 288,\n        \"price\": 1938,\n      },\n      {\n        \"amount\": 8650,\n        \"price\": 1936,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1934.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1934,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1933.5,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 1932,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 1930,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 1929.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1925,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1922,\n      },\n      {\n        \"amount\": 2276,\n        \"price\": 1920,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1919.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1919,\n      },\n      {\n        \"amount\": 100100,\n        \"price\": 1912,\n      },\n      {\n        \"amount\": 7000,\n        \"price\": 1910,\n      },\n      {\n        \"amount\": 260,\n        \"price\": 1905,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1902,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1900.5,\n      },\n      {\n        \"amount\": 2168,\n        \"price\": 1900,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1898.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1897.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1896.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1894.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1894,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1890.5,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 1890,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 1888.5,\n      },\n      {\n        \"amount\": 325,\n        \"price\": 1887.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1881,\n      },\n      {\n        \"amount\": 1531,\n        \"price\": 1880,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 1879,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1878.5,\n      },\n      {\n        \"amount\": 632,\n        \"price\": 1878,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1875,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1872.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 1867.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1866,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1865,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 1863.5,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 1862,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1861,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1860,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1859.5,\n      },\n      {\n        \"amount\": 43,\n        \"price\": 1857.5,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1855,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1851,\n      },\n      {\n        \"amount\": 8150,\n        \"price\": 1850,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1843,\n      },\n      {\n        \"amount\": 231,\n        \"price\": 1840,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1838.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1838,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1837.5,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1836.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1835.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1834.5,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 1831.5,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 1831,\n      },\n      {\n        \"amount\": 10002,\n        \"price\": 1830,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1829.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1825,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1824.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1821.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1821,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 1818,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1817,\n      },\n      {\n        \"amount\": 1900,\n        \"price\": 1816.5,\n      },\n      {\n        \"amount\": 4500,\n        \"price\": 1815,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1812.5,\n      },\n      {\n        \"amount\": 375,\n        \"price\": 1810.5,\n      },\n      {\n        \"amount\": 6600,\n        \"price\": 1810,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 1808,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 1805,\n      },\n      {\n        \"amount\": 573,\n        \"price\": 1804.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 1803,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 1801,\n      },\n      {\n        \"amount\": 16690,\n        \"price\": 1800,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1798,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1797,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1796.5,\n      },\n      {\n        \"amount\": 59,\n        \"price\": 1784.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1780,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1778,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1775,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1774.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1773.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1773,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 1767,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 1766,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1756.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1756,\n      },\n      {\n        \"amount\": 1460,\n        \"price\": 1750,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1749,\n      },\n      {\n        \"amount\": 16500,\n        \"price\": 1742.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1733,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1729,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1725,\n      },\n      {\n        \"amount\": 4200,\n        \"price\": 1719,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1715,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1712.5,\n      },\n      {\n        \"amount\": 135,\n        \"price\": 1712,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1711,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1708,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1705.5,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 1701,\n      },\n      {\n        \"amount\": 3039,\n        \"price\": 1700,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 1693,\n      },\n      {\n        \"amount\": 63,\n        \"price\": 1692,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 1687,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1677,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1675,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1674.5,\n      },\n      {\n        \"amount\": 2012,\n        \"price\": 1674,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 1667,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 1662,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1650.5,\n      },\n      {\n        \"amount\": 2258,\n        \"price\": 1650,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1649,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1644,\n      },\n      {\n        \"amount\": 92,\n        \"price\": 1639.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1633.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1630.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1625,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1611,\n      },\n      {\n        \"amount\": 100000,\n        \"price\": 1610,\n      },\n      {\n        \"amount\": 1830,\n        \"price\": 1600,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1592.5,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1589,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1588,\n      },\n      {\n        \"amount\": 2013,\n        \"price\": 1587,\n      },\n      {\n        \"amount\": 6000,\n        \"price\": 1575,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1567.5,\n      },\n      {\n        \"amount\": 108,\n        \"price\": 1566.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1560,\n      },\n      {\n        \"amount\": 201,\n        \"price\": 1559,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1558,\n      },\n      {\n        \"amount\": 555,\n        \"price\": 1555,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1552,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1551.5,\n      },\n      {\n        \"amount\": 1871,\n        \"price\": 1551,\n      },\n      {\n        \"amount\": 1060,\n        \"price\": 1550,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1544,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1537,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1536,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 1531,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1530.5,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 1530,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1527,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1526,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1525.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1525,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1521,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1518,\n      },\n      {\n        \"amount\": 758,\n        \"price\": 1516,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1515,\n      },\n      {\n        \"amount\": 3024,\n        \"price\": 1511,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1510,\n      },\n      {\n        \"amount\": 96940,\n        \"price\": 1500,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1496.5,\n      },\n      {\n        \"amount\": 125,\n        \"price\": 1494,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 1487.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1487,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 1483.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1470,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 1466,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1465.5,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1465,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1464,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1463.5,\n      },\n      {\n        \"amount\": 801,\n        \"price\": 1458,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1451.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1450,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 1440.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1437.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1433.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1429,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 1423,\n      },\n      {\n        \"amount\": 141,\n        \"price\": 1421.5,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1420,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1412,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1403,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1402.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1401.5,\n      },\n      {\n        \"amount\": 425,\n        \"price\": 1401,\n      },\n      {\n        \"amount\": 8840,\n        \"price\": 1400,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1396,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1391.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1388.5,\n      },\n      {\n        \"amount\": 12,\n        \"price\": 1388,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1382.5,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 1378,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1370,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 1351,\n      },\n      {\n        \"amount\": 53960,\n        \"price\": 1350,\n      },\n      {\n        \"amount\": 157,\n        \"price\": 1348.5,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 1347.5,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1341,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1340.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1340,\n      },\n      {\n        \"amount\": 12001,\n        \"price\": 1337,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1335,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1329,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1323,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 1316.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1314.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1313.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 1307,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1305.5,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 1301,\n      },\n      {\n        \"amount\": 12050,\n        \"price\": 1300,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 1299,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 1297.5,\n      },\n      {\n        \"amount\": 800,\n        \"price\": 1290,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 1288,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1282.5,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 1282,\n      },\n      {\n        \"amount\": 2800,\n        \"price\": 1280,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1279,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1278.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1278,\n      },\n      {\n        \"amount\": 175,\n        \"price\": 1276,\n      },\n      {\n        \"amount\": 101000,\n        \"price\": 1270,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1264,\n      },\n      {\n        \"amount\": 750,\n        \"price\": 1263.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1260,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1258,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1256.5,\n      },\n      {\n        \"amount\": 450,\n        \"price\": 1251,\n      },\n      {\n        \"amount\": 13610,\n        \"price\": 1250,\n      },\n      {\n        \"amount\": 2004,\n        \"price\": 1240,\n      },\n      {\n        \"amount\": 1020,\n        \"price\": 1236,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1234,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 1233,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1230.5,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 1230,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1229,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 1227,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 1220,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1217.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1216.5,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1216,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1213,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 1210,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1209,\n      },\n      {\n        \"amount\": 400,\n        \"price\": 1201,\n      },\n      {\n        \"amount\": 34700,\n        \"price\": 1200,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 1190,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 1167.5,\n      },\n      {\n        \"amount\": 5830,\n        \"price\": 1165,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1155.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1155,\n      },\n      {\n        \"amount\": 813,\n        \"price\": 1154,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1151,\n      },\n      {\n        \"amount\": 13210,\n        \"price\": 1150,\n      },\n      {\n        \"amount\": 964,\n        \"price\": 1149.5,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1144,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 1133,\n      },\n      {\n        \"amount\": 8,\n        \"price\": 1130,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 1120,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 1118,\n      },\n      {\n        \"amount\": 4700,\n        \"price\": 1117,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 1116,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1113.5,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 1112,\n      },\n      {\n        \"amount\": 28000,\n        \"price\": 1111,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1105,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1101,\n      },\n      {\n        \"amount\": 17310,\n        \"price\": 1100,\n      },\n      {\n        \"amount\": 87,\n        \"price\": 1093.5,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 1093,\n      },\n      {\n        \"amount\": 13,\n        \"price\": 1092.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 1090,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 1077,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 1075,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 1070,\n      },\n      {\n        \"amount\": 25000,\n        \"price\": 1068,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 1067.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1060,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 1058,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1051,\n      },\n      {\n        \"amount\": 405810,\n        \"price\": 1050,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1043,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 1040,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1037.5,\n      },\n      {\n        \"amount\": 1510,\n        \"price\": 1030,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 1026,\n      },\n      {\n        \"amount\": 2700,\n        \"price\": 1025,\n      },\n      {\n        \"amount\": 1050,\n        \"price\": 1021,\n      },\n      {\n        \"amount\": 1010,\n        \"price\": 1020,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1017.5,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 1011,\n      },\n      {\n        \"amount\": 12310,\n        \"price\": 1010,\n      },\n      {\n        \"amount\": 200,\n        \"price\": 1008,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1007.5,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 1005,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 1004,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 1003.5,\n      },\n      {\n        \"amount\": 17000,\n        \"price\": 1001,\n      },\n      {\n        \"amount\": 102294,\n        \"price\": 1000,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 992,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 990,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 980,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 972,\n      },\n      {\n        \"amount\": 310,\n        \"price\": 970,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 960,\n      },\n      {\n        \"amount\": 3000,\n        \"price\": 951,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 950,\n      },\n      {\n        \"amount\": 300,\n        \"price\": 948,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 928,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 904,\n      },\n      {\n        \"amount\": 8580,\n        \"price\": 900,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 879,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 820,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 818,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 814,\n      },\n      {\n        \"amount\": 5810,\n        \"price\": 800,\n      },\n      {\n        \"amount\": 1400,\n        \"price\": 788,\n      },\n      {\n        \"amount\": 8000,\n        \"price\": 777,\n      },\n      {\n        \"amount\": 150,\n        \"price\": 775,\n      },\n      {\n        \"amount\": 425,\n        \"price\": 755,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 732,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 700.5,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 667.5,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 659,\n      },\n      {\n        \"amount\": 900,\n        \"price\": 614,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 600,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 593,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 592.5,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 590,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 534,\n      },\n      {\n        \"amount\": 20820,\n        \"price\": 500,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 480,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 447,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 432,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 406.5,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 400,\n      },\n      {\n        \"amount\": 1500,\n        \"price\": 394,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 390,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 389,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 383,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 372,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 350,\n      },\n      {\n        \"amount\": 1000,\n        \"price\": 306.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 277.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 218,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 200,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 199.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 183.5,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 167.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 166,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 155.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 146.5,\n      },\n      {\n        \"amount\": 2000,\n        \"price\": 138.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 138,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 125.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 101.5,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 101,\n      },\n      {\n        \"amount\": 3105,\n        \"price\": 100,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 90.5,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 81,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 80,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 67.5,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 50,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 40,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 39,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 38,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 37,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 36,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 35,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 34,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 33,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 32,\n      },\n      {\n        \"amount\": 34,\n        \"price\": 31,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 26.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 13.5,\n      },\n      {\n        \"amount\": 62,\n        \"price\": 12,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 10.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 8.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 6,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 5.5,\n      },\n      {\n        \"amount\": 47,\n        \"price\": 5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 4,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 3.5,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 3,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 1.5,\n      },\n      {\n        \"amount\": 46,\n        \"price\": 1,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 0.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-04-01T00:00:02.680358Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:02.680358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1710008,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249329,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 826929,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 517741,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 754535,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 447952,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 661233,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 287094,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85019,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260468,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 415181,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338371,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341068,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362442,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:02.680358Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:02.680358Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1710008,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249329,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 287094,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85019,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260468,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:02.680358Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:02.680358Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1710008,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249329,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 287094,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85019,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:02.680358Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:02.680358Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3340081,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1829388,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 606779,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 315917,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.021262Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.021262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 602031,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 566779,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.023400Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.023400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 299949,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 501792,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 358780,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 216579,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.428358Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.428358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 697225,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.629763Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.629763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3330081,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.631022Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.631022Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 388907,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 821415,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 744060,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 239394,\n        \"price\": 4053.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.639860Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.639860Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 961956,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1842118,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 598087,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 626920,\n        \"price\": 4063,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.642196Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.642196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842118,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249329,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 287094,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85019,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260468,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:04.642196Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.642196Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64388,\n        \"price\": 4143.5,\n      },\n      {\n        \"amount\": 139465,\n        \"price\": 4141.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1908366,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 722794,\n        \"price\": 4023,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.644219Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.644219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 287084,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.656414Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.656414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842118,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249329,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 287084,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85019,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260468,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:04.656414Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.656414Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 308626,\n        \"price\": 4069,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.667127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.667127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 286770,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85333,\n        \"price\": 4090.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.675788Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.675788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842118,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249329,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 286770,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85333,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260468,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:04.675788Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.675788Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 286709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 260527,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.677851Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.677851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842118,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249329,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 286709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:04.677851Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.677851Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.677878Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.677878Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1828888,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.709130Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.709130Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842118,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249329,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 286709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:04.709130Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 296709,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.744809Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.744809Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842118,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249329,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 296709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:04.744809Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.744809Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 249318,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 1842129,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.748772Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.748772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842129,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249318,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 296709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:04.748772Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.748772Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 375838,\n        \"price\": 4166,\n      },\n      {\n        \"amount\": 196988,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 215771,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 389377,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 395107,\n        \"price\": 3986,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.766645Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.766645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 382424,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.769660Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.769660Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 410492,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 848582,\n        \"price\": 4115.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.773194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.773194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 1842157,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.776994Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.776994Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842157,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 296709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:04.776994Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.776994Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389561,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3330265,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1829072,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 827297,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 321169,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.786189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.786189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189709,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.815407Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.815407Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842157,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 189709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:04.815407Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.815407Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842157,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 296709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:04.815407Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 410514,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 848560,\n        \"price\": 4115.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.817712Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.817712Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 489563,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 228492,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 157082,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 86434,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 154911,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 167038,\n        \"price\": 4041.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.837116Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.837116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389652,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3330356,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1829163,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 827479,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.841697Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.841697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749535,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.861441Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.861441Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193617,\n        \"price\": 4167,\n      },\n      {\n        \"amount\": 216788,\n        \"price\": 4166.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 133616,\n        \"price\": 4056.5,\n      },\n      {\n        \"amount\": 471035,\n        \"price\": 4056,\n      },\n      {\n        \"amount\": 331303,\n        \"price\": 3946,\n      },\n      {\n        \"amount\": 84106,\n        \"price\": 3945.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.863237Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.863237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1002800,\n        \"price\": 4145,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.865040Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.865040Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189707,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.878794Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.878794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842157,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 189707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:04.878794Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.878794Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 297185,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.880594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.880594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 468444,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 462823,\n        \"price\": 4012,\n      },\n      {\n        \"amount\": 1323087,\n        \"price\": 4011,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.883794Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.883794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.903336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.903336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842157,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 269656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:04.903336Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.903336Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842157,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 189707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:04.903336Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 173619,\n        \"price\": 5000,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.908754Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.908754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 508141,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.955053Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.955053Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 500141,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.955085Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.955085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741535,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.958210Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.958210Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.961928Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.961928Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1842157,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 260527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:04.961928Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.961928Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1818157,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.965859Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.965859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1818157,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:04.965859Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.965859Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 716535,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:04.980223Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.980223Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1816919,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.011983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.011983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1818157,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 827479,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 500141,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 716535,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 382424,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 661233,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 415181,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362442,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:05.011983Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1816919,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.011983Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.011983Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1818157,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65864,\n        \"price\": 4090,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:05.011983Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 432263,\n        \"price\": 4066,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.022437Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.022437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.025635Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.025635Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1816919,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.025635Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.025635Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 819415,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 617552,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.025668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.025668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 247047,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.115820Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.115820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1816919,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 247047,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.115820Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.115820Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1816919,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 249290,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:05.115820Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 626033,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.211719Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.211719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1816919,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 247047,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:05.211719Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 291955,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.212932Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.212932Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 302603,\n        \"price\": 4058,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.314015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.314015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1833327,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.338502Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.338502Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1833327,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 247047,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.338502Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.338502Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1079690,\n        \"price\": 4035.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.339441Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.339441Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 12,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.361411Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.361411Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 13,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.361445Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.361445Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 182707,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.395056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.395056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1833327,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 247047,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 182707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.395056Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.395056Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 827469,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.421569Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.421569Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1833327,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 247047,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 182707,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:05.421569Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 716533,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 500143,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.427759Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.427759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 182207,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.437027Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.437027Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1833327,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 247047,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 182207,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.437027Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.437027Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 172207,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.443749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.443749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1833327,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 247047,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172207,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.443749Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.443749Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10831,\n        \"price\": 4419,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.446961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.446961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 515100,\n        \"price\": 4040.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.451335Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.451335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1857818,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.457006Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.457006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1857818,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 247047,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172207,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.457006Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.457006Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.461535Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.461535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1857818,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172207,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.461535Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.461535Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 562031,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 526779,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.478680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.478680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1789163,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 454326,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.484761Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.484761Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1928818,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.493532Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.493532Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1928818,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172207,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.493532Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.493532Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 204428,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.516831Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.516831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1928818,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172207,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:05.516831Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 172232,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.532849Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.532849Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1928818,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172232,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.532849Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.532849Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1953328,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.548016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.548016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1953328,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172232,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.548016Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.548016Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10,\n        \"price\": 6136,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.585244Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.585244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 172255,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.587861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.587861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1953328,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172255,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.587861Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.587861Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 172275,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.597226Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.597226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1953328,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172275,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.597226Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.597226Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180179,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 255081,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.609743Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.609743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1953328,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172275,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:05.609743Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1200,\n        \"price\": 4317.5,\n      },\n      {\n        \"amount\": 245247,\n        \"price\": 4279,\n      },\n      {\n        \"amount\": 82978,\n        \"price\": 4247,\n      },\n      {\n        \"amount\": 1264596,\n        \"price\": 4220,\n      },\n      {\n        \"amount\": 165447,\n        \"price\": 4198,\n      },\n      {\n        \"amount\": 323427,\n        \"price\": 4179.5,\n      },\n      {\n        \"amount\": 186983,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 447666,\n        \"price\": 4151,\n      },\n      {\n        \"amount\": 1300719,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 291068,\n        \"price\": 4131.5,\n      },\n      {\n        \"amount\": 329802,\n        \"price\": 4124,\n      },\n      {\n        \"amount\": 529678,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 96822,\n        \"price\": 4112.5,\n      },\n      {\n        \"amount\": 629578,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 138096,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 237533,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 362327,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 666982,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 454115,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 251489,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 191958,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 609328,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 87302,\n        \"price\": 4059.5,\n      },\n      {\n        \"amount\": 99912,\n        \"price\": 4051.5,\n      },\n      {\n        \"amount\": 495196,\n        \"price\": 4042,\n      },\n      {\n        \"amount\": 446509,\n        \"price\": 4030.5,\n      },\n      {\n        \"amount\": 640503,\n        \"price\": 4016.5,\n      },\n      {\n        \"amount\": 152343,\n        \"price\": 3999.5,\n      },\n      {\n        \"amount\": 17189,\n        \"price\": 3979.5,\n      },\n      {\n        \"amount\": 123461,\n        \"price\": 3955.5,\n      },\n      {\n        \"amount\": 104641,\n        \"price\": 3926.5,\n      },\n      {\n        \"amount\": 195214,\n        \"price\": 3892,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.635102Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.635102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 419740,\n        \"price\": 4020.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.642364Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.642364Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1788763,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 382824,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.642386Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.642386Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1956214,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.652994Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.652994Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1956214,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172275,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.652994Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.652994Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 172029,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.672276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.672276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1956214,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172029,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.672276Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.672276Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.683326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.683326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 560531,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.692907Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.692907Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 227992,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 633779,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.697235Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.697235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 489313,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 338780,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.703816Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.703816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1956214,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242505,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 176529,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172029,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:05.703816Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 338614,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 71872,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.703839Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.703839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 242005,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 666482,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 228492,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.707010Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707010Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1956214,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242005,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259256,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247914,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172029,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.707010Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707010Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 665982,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 228992,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.708297Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.708297Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 228492,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 155460,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.710416Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.710416Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1956214,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242005,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172029,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.710416Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.710416Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 338448,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 72038,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.710436Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.710436Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 362202,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 206565,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.713213Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.713213Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 1955964,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 338198,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 72288,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.715069Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.715069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1955964,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172029,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 236527,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.715069Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.715069Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 665482,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 228992,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.717201Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.717201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 715533,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 501143,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.717247Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.717247Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.917930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.917930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1955964,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 579148,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.917930Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.917930Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1955964,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172029,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 85348,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65660,\n        \"price\": 4090,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:05.917930Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.917967Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.917967Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1955964,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.917967Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.917967Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 337948,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 665732,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.917973Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.917973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 952648,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.936807Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.936807Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 952648,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.936807Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.936807Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 941911,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.939340Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.939340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 941911,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.939340Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.939340Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 932419,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.944320Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.944320Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 932419,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.944320Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.944320Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 933217,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.944354Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.944354Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 933217,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.944354Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.944354Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 507687,\n        \"price\": 3975,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.944365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.944365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 8182.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.948776Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.948776Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 655233,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 83434,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.950931Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.950931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1056719,\n        \"price\": 4041,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.953170Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.953170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 921910,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.955166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.955166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 921910,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.955166Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.955166Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 913517,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.956738Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.956738Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 913517,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.956738Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.956738Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 901752,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.959137Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.959137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 901752,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.959137Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.959137Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 889887,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.962753Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.962753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 889887,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341398,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.962753Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.962753Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389473,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3330177,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1788584,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 827111,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 340750,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.968571Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.968571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 889887,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340750,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.968571Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.968571Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 878247,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.968599Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.968599Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 878247,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 248414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137205,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340750,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.968599Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.968599Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112440,\n        \"price\": 4199.5,\n      },\n      {\n        \"amount\": 146232,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 20955,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 13119,\n        \"price\": 4193.5,\n      },\n      {\n        \"amount\": 21003,\n        \"price\": 4191.5,\n      },\n      {\n        \"amount\": 623833,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 558331,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 380624,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 246214,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 877647,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 177552,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 279968,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 570691,\n        \"price\": 3987,\n      },\n      {\n        \"amount\": 1650206,\n        \"price\": 3985,\n      },\n      {\n        \"amount\": 681591,\n        \"price\": 3983,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.973779Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.973779Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 877647,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 246214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340750,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.973779Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.973779Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 100,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.973810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.973810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 877647,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 246214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 100,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.973810Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.973810Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 13,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.975194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.975194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 14,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.976766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.976766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 112,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.978231Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.978231Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 877647,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 246214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 112,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:05.978231Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.978231Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 847788,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 380402,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 813376,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 960020,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 295506,\n        \"price\": 3957,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.984416Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.984416Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 123,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.020562Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.020562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 877647,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 246214,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 827111,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 501143,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 715533,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 380624,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 655233,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 112,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340750,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362202,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 206565,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 489313,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 337948,\n        \"price\": 4085,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:06.020562Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 877647,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 246214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 123,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.020562Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.020562Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 877647,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 112,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:06.020562Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 628578,\n        \"price\": 4108,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 191458,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 586906,\n        \"price\": 4052,\n      },\n      {\n        \"amount\": 423964,\n        \"price\": 4032,\n      },\n      {\n        \"amount\": 462323,\n        \"price\": 4012,\n      },\n      {\n        \"amount\": 421273,\n        \"price\": 3992,\n      },\n      {\n        \"amount\": 389673,\n        \"price\": 3972,\n      },\n      {\n        \"amount\": 353826,\n        \"price\": 3952,\n      },\n      {\n        \"amount\": 581159,\n        \"price\": 3932,\n      },\n      {\n        \"amount\": 129487,\n        \"price\": 3912,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.046087Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.046087Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 446030,\n        \"price\": 4144.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.048713Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.048713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145061,\n        \"price\": 3998.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.050650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.050650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 246537,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.061697Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.061697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899390,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.065203Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.065203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899390,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 246214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 123,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.065203Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.065203Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.071267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.071267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899390,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 246214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.071267Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.071267Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.073803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.073803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899390,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 258756,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.073803Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.073803Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 717533,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.083037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.083037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 720433,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.832608Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.832608Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899390,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:06.832608Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 504043,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.832647Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.832647Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 506943,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.835785Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.835785Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 785953,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.841476Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.841476Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1500993,\n        \"price\": 4070,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.843266Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.843266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.845316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.845316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899390,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.845316Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.845316Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100,\n        \"price\": 7364,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.860045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.860045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 527279,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.868924Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.868924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102295,\n        \"price\": 1000,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.870566Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.870566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 358202,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.873454Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.873454Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899390,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.873454Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.873454Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525843,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.877530Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.877530Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1083180,\n        \"price\": 4035.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.883738Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.883738Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874899,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.889701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.889701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874899,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 177029,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.889701Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.889701Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.894832Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.894832Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874899,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.894832Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.894832Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 358074,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.908044Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.908044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874899,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:06.908044Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899390,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.914922Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.914922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899390,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160827,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.914922Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.914922Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 160527,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.925585Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.925585Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899390,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.925585Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.925585Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.925626Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.925626Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 160527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.925626Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.925626Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 785963,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.930200Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.930200Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.938102Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.938102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.938102Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.938102Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4091,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:06.952680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.952680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340750,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:06.952680Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.952680Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.037301Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.037301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 827111,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 525843,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 785963,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 380624,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 655233,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340750,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358074,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 206565,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 489313,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 337948,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 72288,\n        \"price\": 4084.5,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:07.037301Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 241214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.037301Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.037301Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:07.037301Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 535741,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.052365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.052365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16248,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.060053Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.060053Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16248,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 874880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.060053Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.060053Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 864880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 26248,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.061363Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.061363Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 26248,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 864880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.061363Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.061363Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.062748Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.062748Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 864880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.062748Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.062748Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 348956,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 827611,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.064854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.064854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 854880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 76249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.066563Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.066563Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 854880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.066563Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.066563Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 853880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.068601Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.068601Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 853880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.068601Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.068601Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 86249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.071031Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.071031Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 86249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 853880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.071031Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.071031Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 848880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 91249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.074570Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.074570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 848880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.074570Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.074570Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.077611Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.077611Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 848880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 338369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.077611Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.077611Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59402,\n        \"price\": 3783,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.080759Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.080759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.080788Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.080788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 848880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.080788Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.080788Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 340756,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.080794Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.080794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.084163Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.084163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 848880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.084163Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.084163Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 838880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.086720Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.086720Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 838880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.086720Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.086720Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 828880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 121249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.086742Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.086742Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 121249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 828880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.086742Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.086742Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 818880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 131249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.089725Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.089725Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 818880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.089725Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.089725Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 808880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.094743Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.094743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 808880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.094743Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.094743Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.097575Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.097575Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 808880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.097575Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.097575Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 798880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 191249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.107818Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.107818Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 191249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 798880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.107818Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.107818Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 808880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:07.107818Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241249,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.107828Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.107828Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 798880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.107828Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.107828Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 796880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.107865Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.107865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241249,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 796880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.107865Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.107865Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 254749,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.123714Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.123714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 254749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 796880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.123714Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.123714Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 264749,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.130323Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.130323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 264749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 796880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.130323Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.130323Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 289259,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.133349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.133349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 289259,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 796880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.133349Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.133349Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 340369,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.135175Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.135175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 299259,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.141144Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.141144Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 299259,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 796880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.141144Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.141144Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 309259,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.145148Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.145148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 309259,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 796880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.145148Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.145148Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 786880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.151397Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.151397Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 309259,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 786880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418681,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.151397Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.151397Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 336756,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 341948,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.153171Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.153171Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 418381,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.156070Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.156070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 309259,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 786880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 261656,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418381,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.156070Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.156070Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.159849Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.159849Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 309259,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 786880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418381,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.159849Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.159849Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.164864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.164864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 309259,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 776880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418381,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.164864Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.164864Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.166034Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.166034Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 776880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 4000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418381,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.166034Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.166034Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6400,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.168732Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.168732Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 776880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 6400,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418381,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.168732Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.168732Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.173760Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.173760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 776880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 6400,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418381,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.173760Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.173760Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23200,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 9600,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.177036Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.177036Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 23200,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 776880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 9600,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418381,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.177036Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.177036Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 240214,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.178634Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.178634Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.180751Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.180751Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 23200,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 776880,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418381,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.180751Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.180751Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 621537,\n        \"price\": 4028,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.185863Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.185863Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 771870,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.187273Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.187273Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 23200,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771870,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418381,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.187273Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.187273Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 240114,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.189185Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.189185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23300,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 418481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 340469,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.191242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.191242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 23300,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771870,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.191242Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.191242Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 771760,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 23410,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.194676Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.194676Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 23410,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771760,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 154527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.194676Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.194676Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 337414,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.198085Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.198085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24410,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 155527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 341468,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.205477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.205477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 24410,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771760,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 155527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.205477Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.205477Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 23410,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771760,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:07.205477Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 25710,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.205482Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.205482Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 25710,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771760,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 155527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.205482Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.205482Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 28110,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.209724Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.209724Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 28110,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771760,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 155527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.209724Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.209724Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.209758Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.209758Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 28110,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 155527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.209758Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.209758Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29110,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 342467,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.212111Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.212111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 29110,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.212111Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.212111Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 4404,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.217093Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.217093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 29110,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.217093Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.217093Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239114,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.217661Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.217661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 79007,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 879440,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.233518Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.233518Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 879440,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 79007,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.233518Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.233518Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 337056,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.235119Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.235119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 341056,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 333414,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.235142Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.235142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 161788,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 962222,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.241930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.241930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 962222,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 161788,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242255,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181572,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.241930Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.241930Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 261556,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 181472,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 242155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 161688,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.245753Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.245753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 962222,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 161688,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 242155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181472,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.245753Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.245753Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 204427,\n        \"price\": 4050.5,\n      },\n      {\n        \"amount\": 1844012,\n        \"price\": 4050,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.245792Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.245792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 260555,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 180471,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 241155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 160688,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.248675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.248675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 962222,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 160688,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 241155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 180471,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.248675Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.248675Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181039,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 982574,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.251123Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.251123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 982574,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 181039,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 241155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 180471,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.251123Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.251123Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202429,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.253310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.253310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 982574,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 202429,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 241155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 180471,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.253310Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.253310Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 162000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.260150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.260150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 982574,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 202429,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 241155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 180471,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 162000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.260150Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.260150Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 292480,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1072626,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.260195Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.260195Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1072626,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 292480,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 771891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 241155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 180471,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 162000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.260195Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.260195Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.260857Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.260857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1072626,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 292480,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 241155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 180471,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4404,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 162000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.260857Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.260857Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.262952Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.262952Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1072626,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 292480,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 241155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 180471,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 162000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.262952Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.262952Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 294880,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.266693Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.266693Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1072626,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 294880,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 241155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 180471,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 162000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.266693Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.266693Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 373709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1151456,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.269876Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.269876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1151456,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 373709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 241155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 180471,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 162000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.269876Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.269876Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.271167Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.271167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1151456,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 373709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 241155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 180471,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.271167Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.271167Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 259554,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 372709,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.273443Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.273443Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1151456,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 372709,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.273443Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.273443Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 407649,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1195193,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.274791Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.274791Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1195193,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 407649,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.274791Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.274791Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 429042,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.278238Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.278238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1195193,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 429042,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.278238Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.278238Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 514162,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.280092Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.280092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1195193,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 514162,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.280092Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.280092Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 535557,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.281103Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.281103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1195193,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 535557,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.281103Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.281103Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625624,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1285261,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.283642Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.283642Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1285261,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 625624,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.283642Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.283642Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 647016,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.287237Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.287237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1285261,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 647016,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.287237Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.287237Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 730814,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1375325,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.289594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.289594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1375325,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 730814,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.289594Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.289594Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 752205,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.293851Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.293851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1375325,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 752205,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.293851Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.293851Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 755205,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.293872Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.293872Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1375325,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 755205,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.293872Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.293872Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776599,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.295287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.295287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1375325,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 776599,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.295287Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.295287Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 866670,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1465397,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.302348Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.302348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1465397,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 866670,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.302348Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.302348Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1375325,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 776599,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:07.302348Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 956745,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1555473,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.306544Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.306544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1555473,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 956745,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.306544Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.306544Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 958045,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.308778Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.308778Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1555473,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 958045,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.308778Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.308778Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21602,\n        \"price\": 4317,\n      },\n      {\n        \"amount\": 26112,\n        \"price\": 4278.5,\n      },\n      {\n        \"amount\": 32059,\n        \"price\": 4246.5,\n      },\n      {\n        \"amount\": 44355,\n        \"price\": 4219.5,\n      },\n      {\n        \"amount\": 150281,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 293634,\n        \"price\": 4179,\n      },\n      {\n        \"amount\": 93164,\n        \"price\": 4163.5,\n      },\n      {\n        \"amount\": 104354,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 308257,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 266690,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 590036,\n        \"price\": 4123.5,\n      },\n      {\n        \"amount\": 1091905,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 380676,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 511197,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 250452,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 180279,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 206680,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 229147,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 527490,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 536030,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 234062,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 432816,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 124718,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 236748,\n        \"price\": 4051,\n      },\n      {\n        \"amount\": 168529,\n        \"price\": 4041.5,\n      },\n      {\n        \"amount\": 2150400,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 406294,\n        \"price\": 4016,\n      },\n      {\n        \"amount\": 1314229,\n        \"price\": 3999,\n      },\n      {\n        \"amount\": 325168,\n        \"price\": 3979,\n      },\n      {\n        \"amount\": 1354715,\n        \"price\": 3955,\n      },\n      {\n        \"amount\": 234903,\n        \"price\": 3926,\n      },\n      {\n        \"amount\": 21183,\n        \"price\": 3891.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.318174Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.318174Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 960445,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.319588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.319588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1555473,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 960445,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.319588Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.319588Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1021617,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1616646,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.322737Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.322737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1616646,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1021617,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765891,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.322737Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.322737Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 1021683,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.323146Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.323146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1616646,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1021683,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.323146Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.323146Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1038817,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1633781,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.326766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.326766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1633781,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1038817,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 12000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.326766Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.326766Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.328063Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.328063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1633781,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1038817,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.328063Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.328063Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1041817,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.329782Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.329782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1633781,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1041817,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.329782Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.329782Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1044066,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1712647,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.335045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.335045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1712647,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1044066,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.335045Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.335045Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 347056,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.336780Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.336780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1009126,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1747587,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.346950Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.346950Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1747587,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1009126,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.346950Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.346950Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1099213,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1837675,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.350550Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.350550Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1837675,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1099213,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.350550Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.350550Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.352690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.352690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1837675,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1099213,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.352690Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.352690Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1015415,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1921473,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.356697Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.356697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1921473,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1015415,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.356697Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.356697Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1032469,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1938528,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.360590Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.360590Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1938528,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1032469,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.360590Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.360590Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1034236,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.362003Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.362003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1938528,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1034236,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.362003Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.362003Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1094657,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2028536,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.368146Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.368146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2028536,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1094657,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.368146Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.368146Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1015871,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2107322,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.401415Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2107322,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1015871,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.401415Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401415Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2028536,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1094657,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:07.401415Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 965974,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2157219,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.401420Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401420Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2157219,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 965974,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 765825,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.401420Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401420Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770835,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.401424Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401424Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2157219,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 965974,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 770835,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.401424Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401424Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 875942,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2247251,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.401428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2247251,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 875942,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 770835,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.401428Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401428Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 341056,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.401441Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401441Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 873650,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2249543,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.401463Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401463Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2249543,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 873650,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 770835,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.401463Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.401463Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 649350,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 2371028,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.409814Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.409814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2371028,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 873650,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 649350,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.409814Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.409814Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 890748,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2388127,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.417011Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.417011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2388127,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 890748,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 649350,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.417011Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.417011Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 800692,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2478183,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.425015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.425015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2478183,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 800692,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 649350,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.425015Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.425015Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 816959,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.430268Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.430268Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2478183,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 816959,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 649350,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 240155,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.430268Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.430268Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 649516,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.431517Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.431517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2478183,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 816959,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 649516,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.431517Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.431517Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 634279,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 154960,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.433038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.433038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72538,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 665482,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.434386Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.434386Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 834081,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2495306,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.447147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.447147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2495306,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 834081,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 649516,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.447147Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.447147Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 773610,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2555777,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.459805Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.459805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2555777,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 773610,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 649516,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.459805Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.459805Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.465811Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.465811Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2555777,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 773610,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.465811Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.465811Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 342767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.477112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.477112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 790756,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2572924,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.483620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.483620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2572924,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 790756,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.483620Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.483620Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 807826,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2589995,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.516532Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.516532Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2589995,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 807826,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.516532Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.516532Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2572924,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 790756,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:07.516532Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 809126,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.517841Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.517841Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2589995,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 809126,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.517841Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.517841Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.520972Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.520972Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 826220,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2607090,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.534626Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.534626Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2607090,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 826220,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.534626Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.534626Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 843338,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2624209,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.561155Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.561155Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2624209,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 843338,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.561155Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.561155Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 860412,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2641284,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.573037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.573037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2641284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 860412,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.573037Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.573037Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 137082,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 325318,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.573077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.573077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 861712,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.608915Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.608915Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2641284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 861712,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.608915Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.608915Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2641284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 860412,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:07.608915Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 878854,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2658427,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.608961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.608961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2658427,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 878854,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.608961Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.608961Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 880154,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.611349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.611349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2658427,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 880154,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 627773,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 179470,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.611349Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.611349Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.615651Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.615651Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2658427,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 880154,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.615651Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.615651Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 897220,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2675494,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.621239Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.621239Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2675494,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 897220,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.621239Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.621239Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 372420,\n        \"price\": 4141,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.626045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.626045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 910720,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.630080Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.630080Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2675494,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 910720,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.630080Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.630080Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 927810,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2692585,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.638393Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.638393Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2692585,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 927810,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.638393Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.638393Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 927318,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2709700,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.664428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.664428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2709700,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 927318,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.664428Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.664428Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 910179,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2726839,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.686463Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.686463Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2726839,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 910179,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.686463Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.686463Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 911479,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.694131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.694131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2726839,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 911479,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.694131Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.694131Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 894416,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2743902,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.706174Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.706174Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2743902,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 894416,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.706174Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.706174Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2726839,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 911479,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:07.706174Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 877329,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2760989,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.763274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.763274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2760989,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 877329,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.763274Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.763274Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 860218,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2778100,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.766525Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.766525Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2778100,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 860218,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.766525Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.766525Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 861518,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.775092Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.775092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2778100,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 861518,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.775092Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.775092Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 844383,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2795235,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.788098Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.788098Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2795235,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 844383,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.788098Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.788098Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 827324,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2812294,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.804236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.804236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2812294,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 827324,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.804236Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.804236Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2795235,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 844383,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:07.804236Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 834158,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2819128,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.819826Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.819826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2819128,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 834158,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.819826Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.819826Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 817075,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2836211,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.829560Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.829560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2836211,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 817075,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.829560Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.829560Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 818375,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.838623Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.838623Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2836211,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 818375,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.838623Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.838623Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 801268,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2853318,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.853607Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.853607Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2853318,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 801268,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.853607Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.853607Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 784137,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2870449,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.876736Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.876736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2870449,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 784137,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.876736Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.876736Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 818341,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2904653,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.879067Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.879067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2904653,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 818341,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.879067Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.879067Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 801286,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2921708,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.899895Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.899895Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2921708,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 801286,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.899895Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.899895Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 950968,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.927823Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.927823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2921708,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 801286,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:07.927823Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 784207,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2938787,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.944459Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.944459Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2938787,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 784207,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.944459Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.944459Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 785507,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.944490Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.944490Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2938787,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 785507,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.944490Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.944490Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 768840,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.971571Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.971571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 768840,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 32000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.971571Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.971571Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.997288Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.997288Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 768840,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:07.997288Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.997288Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770140,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.071846Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:08.071846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 768840,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259554,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 239114,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 827611,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 525843,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 785963,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341056,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358074,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 206680,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 489313,\n        \"price\": 4085.5,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:08.071846Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:08.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 770140,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:08.071846Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:08.071846Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 768840,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:08.071846Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:08.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 508457,\n        \"price\": 3975,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:08.141428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:08.141428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 770140,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:08.141428Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:08.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 8612,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8d5b9e20-3f2a-a962-d586-b7992a6cb633\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"286e5cec-357a-e7ce-d1cc-1352e04882ce\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"413e9e01-544e-4cfe-5983-150e53771026\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"032082a4-b6f3-caae-aaf5-a6ad0f84affb\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"29a2bb0c-1507-adf6-1a21-23841276816d\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b7da73c4-9d83-f080-224b-4151c6ea652c\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3338,\n    \"exchange\": \"bitmex\",\n    \"id\": \"82964333-1bd5-86cf-c623-e09a688cf0fa\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 92,\n    \"exchange\": \"bitmex\",\n    \"id\": \"535acd43-8012-a3ac-cfe0-1aa5c4df0cb9\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fec20e03-d5a0-2189-1eb6-42d08c496cd8\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 29,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c575c6f9-c3bf-4b4c-485f-a9072bab5b5f\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9b59a550-7391-7719-8cfe-4d8fb2fbf224\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"89991898-f1b5-aff6-7beb-92f3686a0992\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2df1177f-49c9-d062-0d1f-01cf597926af\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"574a5bab-8426-20db-ab35-c94004920d1e\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1123,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fdc7e1c7-2ad5-3c9c-0d50-5c459cccde8a\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 123,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bcae2efc-f23a-339d-9ec7-2cb890a5b9a2\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d353c535-6911-9839-d63d-ad3da8db72bc\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7ba58c8d-c494-b938-b342-baa3ccf249e7\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"11ba4c49-ff0d-a452-cb4c-9d4e488503bd\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 14000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"976b9362-cb0d-ea88-fdee-95ffd9e058f1\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"73db440d-b143-0939-96c9-2d7c7715a15e\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8e7615a6-45e6-fe23-1ff4-de00ee025c4f\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1315,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6d41394d-de40-25e9-580b-bc9b51ada023\",\n    \"localTimestamp\": 2019-04-01T00:00:08.739787Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c86f82e0-17c7-9035-e39f-b5769e3f749e\",\n    \"localTimestamp\": 2019-04-01T00:00:08.977938Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.859Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1238,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e4fba7b7-9327-2f64-1fd5-e0ee8e1e6332\",\n    \"localTimestamp\": 2019-04-01T00:00:08.998921Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.987Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 246,\n    \"exchange\": \"bitmex\",\n    \"id\": \"05b14b74-a4be-c529-de9b-6733bc9dcf1c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.469130Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.653Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 1238,\n    \"close\": 4091.5,\n    \"closeTimestamp\": 2019-04-01T00:00:04.987Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4091.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:09.469130Z,\n    \"low\": 4091,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4091,\n    \"openTimestamp\": 2019-04-01T00:00:04.778Z,\n    \"sellVolume\": 107002,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.000Z,\n    \"trades\": 25,\n    \"type\": \"trade_bar\",\n    \"volume\": 108240,\n    \"vwap\": 4091.0057187730968,\n  },\n  {\n    \"amount\": 1437,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f7fc7d98-2f9d-7168-2a3e-5ebc4c14785d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 24,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d3307a40-83f9-c446-58d8-c36a07f0e6a1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9b278f03-5d04-fb40-f1d5-f5d882c224f1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"628f26a2-0cd0-9d69-2173-ddfc74393842\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dfcb9c37-77bf-57b4-2e97-0d07f606109a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 25000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"669a8a34-c925-8283-38ef-f52de01bacf3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 98,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b43778cb-e8a7-ac7d-ccf7-53bedd65ef06\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1f8764b3-aacf-edd7-3c86-6645c993a450\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ae496a7a-f7c2-f702-6c8b-5d6c4c4fd1c3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0bb6d91d-37fb-77bc-2fbd-a54daf3dfd12\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a6549245-d1e8-98b3-8ffe-9650a1e6d5d2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 44,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3a5ed276-788d-1053-611f-97542b7bcad0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0e489172-347a-4003-0a7c-e195b0a01e0b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1179dac3-72a7-affa-e0a0-41b0fdb31268\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3f99cf32-1f4f-9c81-c75d-a505ebcdca69\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3667,\n    \"exchange\": \"bitmex\",\n    \"id\": \"31b50907-de3d-5e2e-243b-86e83e641dd9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9e570fe0-e8b0-a0d0-90d0-041096bd5447\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"287c7d8a-92f0-8145-b93b-0860e3817d0a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"57b971d3-dcd8-434f-a71f-c1a9c0c9df5c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40001,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b19439e7-b914-c41a-a738-d3bce163a431\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 61,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dfcbc806-1ecb-0964-5ee5-841b299992c1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cf516794-c154-703b-c858-a7b4c785062a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 900,\n    \"exchange\": \"bitmex\",\n    \"id\": \"92505e02-5e3e-43f0-8147-d03c71afd878\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 18,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f3cce632-1fae-8184-fa1b-9f05f349f608\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 48,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9f951210-ff4f-70bc-c8e2-005378a44c75\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c973fe0a-fc51-59a4-8da6-b47e94b08994\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2750,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fed3aa43-dfe3-84b4-e969-4f70660d3be6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30001,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f7308ddd-deda-b4b0-d226-ce36bdc92cbe\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b9c3f6de-38f7-2c3e-41c7-d2bd364e341e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9a6b680e-9bd1-b279-fdff-2212a16698d4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9f5e92bc-e027-ceef-fdcf-dda50338ebde\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"108cf3fb-6234-6a84-1851-9a7de3f5dc6e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"35ff167f-1882-8fbe-987d-57e03bf32d5f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ee4602d8-2e81-82ee-db05-2b6debd92e7d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0b5d7375-4a51-c822-aebc-4906b3a090b7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c25d9b4d-c384-1f6c-b0e8-7ef476fbab64\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c8180e04-91b3-88c2-1eca-114cb18eb530\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d33426f5-215b-0f08-d28e-7148a726e54a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 70,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6ae5cab0-bdb7-194d-1258-fb1217a47124\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"60a90e8d-115b-4ccf-d549-bd15936975af\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 75,\n    \"exchange\": \"bitmex\",\n    \"id\": \"374440d3-2f78-3908-6c7b-8ce6c23a0f54\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"868a346c-03fe-bfd0-fb58-604b34b62160\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b0400e28-0b89-f883-34e7-50b7e39d417a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"70a8111c-5d6e-f057-5319-452140bae8a6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 192,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f4baec07-6757-f35d-89ad-233dd1c85af8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f916669f-f87a-ee4c-cf43-89c776ec9612\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7f3b1570-a292-19d3-f72e-7ae4765f1ecd\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c6253082-180c-65d9-e061-dd4352d947a0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"817067d3-00aa-a8ff-e63e-28d391ba9fab\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9604544b-1ea6-4486-a21e-627c400cef6f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 25,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6a5c319f-7de0-3d1a-716e-d26cf8a6efd0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d51b695f-6c1e-eda7-6511-0766eb159927\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"37204f87-3521-bd05-69e7-d9f6ee0f3d52\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 25,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ef4d4496-10b9-4810-674a-4c82049d5b3a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 23,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af3dd368-d04b-76cf-f1a1-87b22296669e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1a638bbc-5c3d-5dde-f86f-80ee5adeef4f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e03691bf-12a3-904f-b2f0-200e691002f8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 31,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ec18c9e0-4256-57ce-7807-7c10313d42f7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 31,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5d875e93-decb-08dd-8d8e-697b0e52c02a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"879f5ece-b9da-ab9c-a01b-8ce6139ecca7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"869fb914-4aa9-89ee-f04e-e1f17f79d74b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 750,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5ec7a193-be22-d147-2206-00582b408340\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1fd15f57-4fe5-5b6a-1f7c-9c00ab82fb3b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"87b94bca-1308-984a-e5ea-758ac70711c4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b4181349-63f2-6517-b8d7-a69112fc482a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dfecb129-eb44-73c1-7f0c-af1f9eb4e7db\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 39,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cea89e33-fb45-da87-cdae-887548c16a01\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8246c776-b6c9-6ba8-3de0-e38676f81c62\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"76269349-1e8d-a314-f057-5c50c24160c1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c7b0b47d-3fba-e93b-3d9e-7ae93754d584\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a68611cf-018f-e7c8-4b1b-8dcbb730293e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af4aa401-113e-550f-d31f-ca1afcb480a5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 60000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7d7f9cf0-c536-57cd-941e-69b04b15e6de\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d631d92f-b91c-be2d-809d-ecbde33f99bf\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 1238,\n    \"close\": 4090.5,\n    \"closeTimestamp\": 2019-04-01T00:00:05.707Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4091.5,\n    \"interval\": 100,\n    \"kind\": \"tick\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"low\": 4090.5,\n    \"name\": \"trade_bar_100ticks\",\n    \"open\": 4091,\n    \"openTimestamp\": 2019-04-01T00:00:04.778Z,\n    \"sellVolume\": 355992,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"trades\": 100,\n    \"type\": \"trade_bar\",\n    \"volume\": 357230,\n    \"vwap\": 4090.8944755479665,\n  },\n  {\n    \"amount\": 160,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3234e310-2c0d-3009-1634-37ce7e4ebd89\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ae09d842-efaf-4b38-5857-786cd28bf91c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9d35512f-77d5-9108-e94d-2a2e71490f94\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b6ee3144-0b71-9edb-0097-451a0c4f3012\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"39258284-864d-9483-19e8-73821a73647b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"df539a25-4d4f-c551-19ed-036f97035b66\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 45,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4faaf269-acd3-ffcd-865c-5a2903c81e0a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 33,\n    \"exchange\": \"bitmex\",\n    \"id\": \"596ca21d-bf68-274d-7213-b6a5655c2b83\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 750,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e7821d5a-902b-e38f-f420-f0e637109a09\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 255,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3d247012-8405-5b95-34db-b97cc3b9218c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 192,\n    \"exchange\": \"bitmex\",\n    \"id\": \"249be44f-4586-9053-2cfe-2173a09aacf7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 48,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cf577d96-2835-fb94-9ea4-d79ff9b339d3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 14,\n    \"exchange\": \"bitmex\",\n    \"id\": \"06818b0c-4e27-2acc-d0bf-4d64cbdbc0e6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1e6654dd-be59-9e89-6c1b-a8ce66328990\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 244,\n    \"exchange\": \"bitmex\",\n    \"id\": \"68abc4cc-570e-ec8d-4474-4e6930f10d61\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 135,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ee9ebc59-9e00-dbc4-0791-71205b3c654d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 45,\n    \"exchange\": \"bitmex\",\n    \"id\": \"45e6baa0-23e4-f2b7-2e1c-ecec09a18f54\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 45,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8dd04da4-4ae6-48e3-676c-361570495c93\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c6b0b33c-0b76-8be8-fd15-40b37c2d6d08\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ca24d329-9ec7-4cdc-7a9f-c332f36840fe\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 450,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bd69e264-e3d5-1e10-fa05-37b5df74a64c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 205,\n    \"exchange\": \"bitmex\",\n    \"id\": \"54814f36-5982-a4e1-5535-e6ea5d0c9e37\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b6595034-45d0-3094-330c-32e524fb1975\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 13,\n    \"exchange\": \"bitmex\",\n    \"id\": \"99568b98-ca2a-1103-e9b2-062890aa31cc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 102,\n    \"exchange\": \"bitmex\",\n    \"id\": \"23deac66-c82b-bb4f-839b-9e1df676c832\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"969bbd64-8cc3-2abe-7b8e-0dd8255e9a58\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 63,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b2b00a71-7bfd-152f-f708-615fcf9c58c9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 32,\n    \"exchange\": \"bitmex\",\n    \"id\": \"269de54a-f1aa-81f9-797c-2810c32a27ad\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1350,\n    \"exchange\": \"bitmex\",\n    \"id\": \"20d11cfe-be25-285b-d0f8-c0725dab2c44\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 18,\n    \"exchange\": \"bitmex\",\n    \"id\": \"663fc7f6-f1e2-134e-b9e2-004124ae0bd5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12,\n    \"exchange\": \"bitmex\",\n    \"id\": \"85812db6-6407-a280-d3ca-3649f715b6af\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e59ef29a-984b-6010-245b-c80e03684599\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 75,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f86ba3b5-11aa-5086-f7e8-467de5857a0d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 32,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8cb5b56d-8628-d7d6-bd7f-114c31a42a3c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 314,\n    \"exchange\": \"bitmex\",\n    \"id\": \"65d82378-a86a-4b18-ef7f-886afb717c3f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9363f405-3e6f-e4d4-b9d2-df945d8e8ef7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f02438bd-1a52-9da7-45ce-227a1c6a7f96\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 31,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6709fc6e-5537-419a-258b-4413c2a8e87d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 31,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d7ee062f-899b-7cf0-6952-627d88a1da14\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"22c12574-fdd2-f07e-1b52-f4516344af24\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7d8702aa-d897-83ef-b6a8-a14c94a62585\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 750,\n    \"exchange\": \"bitmex\",\n    \"id\": \"96b46797-a0a0-5a54-9923-528eee2137af\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"27b8d71d-813f-0690-e450-4b83b1b0015b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"87b3792d-b734-f7e9-7fb4-f5ff2a30774f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b3ba3218-2a57-5639-67ec-ecf12022231a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eeaad3f0-bf87-4985-a2d4-ca42e8e30a50\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 169,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e6e2c799-780a-c52f-d253-8cbe80a05e02\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"053f0b44-a53b-d919-dfd2-63d011f02f37\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3ae5d487-0fc0-1515-a55d-3cc250968076\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b8f21108-c852-d221-2ad1-af03dcefdb05\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 205,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3256e798-81dd-0caa-fc95-2cd59603f88e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"124cf89b-9cb2-5ec9-a48d-89cf4e4cc8a0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"47531ae7-2585-5cc4-6fd0-19cc41a10535\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8f632f02-fa62-3073-7865-eb3fafa05da8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8e2c3382-82ec-e475-dc80-f6e3b5ad6622\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f4e96efc-f503-857c-d27a-f270b6ce80b9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 7000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9b7e3655-362b-cabb-a667-ebd5bed35157\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d73be5d8-58b7-2ef7-ef6b-37bc0b47fead\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 160,\n    \"exchange\": \"bitmex\",\n    \"id\": \"15535aa7-13c8-10a6-c1ce-f77a4399fcbc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b96fb988-e8a9-7c8e-2fa7-fc7d5a47bcbc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0b162d70-09f9-ecbc-dd4e-137c76575dfe\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"89ae22ea-d518-6eb7-8030-31a0d22e92ab\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f21a3fd9-7ca4-9feb-2656-c38e0d7de5c2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b9b97510-28c2-eefd-82cf-e60ff3999474\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 14,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eec6ac19-a868-4f89-23db-e2cfae2926b1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"90d6da7d-7278-58a2-8e0a-165d75419ae9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7675aca4-da0a-52ce-6320-861ceb335987\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"558498a3-d2a6-b1e5-f8b1-e121519bdbf6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 24,\n    \"exchange\": \"bitmex\",\n    \"id\": \"31e0ef82-f89f-47af-130b-fb1de0d3d3de\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 154,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0a797425-51c9-461a-8e30-d73bab37018a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1272,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c6342a4c-2ab1-132b-9ee7-c28508c6de14\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1d5282ba-74cd-17ab-cd02-a4857e26c770\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 464,\n    \"exchange\": \"bitmex\",\n    \"id\": \"257c027d-22f4-70a5-b8b8-74218d4ce755\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ccac9e3e-c6dc-43bf-5551-cd4533e5f95c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"46a88159-d3f8-5b7a-27a2-d091879a5513\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b9601e10-41fa-3687-e014-3ddebc0a4ac3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 225,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7cc8b736-b291-39cf-b06a-3e2d049f53e3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 230,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8de69006-bcc5-4c31-1272-e0fbefc7ae6a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"04f4732f-2990-5962-d585-45812838c70c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"42a18b76-0c80-38d6-0a78-d69f4b629d67\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 808,\n    \"exchange\": \"bitmex\",\n    \"id\": \"685a8f29-7fcb-1ab6-846a-1b682499cc49\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"81d0663f-5f98-778a-f4d0-92de192efdb7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 320,\n    \"exchange\": \"bitmex\",\n    \"id\": \"34775244-e984-6c8d-8d5f-d6e7918e8cc6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8e4d33b2-8837-eb36-cd9f-e91a500d8c38\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e4349a00-e8e2-10ff-0667-e69d321437b3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ec17a1ca-4c07-2111-5216-d708a167d999\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 334,\n    \"exchange\": \"bitmex\",\n    \"id\": \"716efd2e-c685-8eec-3510-bf004eb3c843\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 328,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d360744d-2f25-d02a-4893-01bbb6c08f5b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 588,\n    \"exchange\": \"bitmex\",\n    \"id\": \"53252467-de90-6ac1-a003-a82eca090310\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1f4c8d5b-6046-dde5-e852-49cbd46b9bf2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 70,\n    \"exchange\": \"bitmex\",\n    \"id\": \"05c13f24-2dcd-b2d6-13a1-74434ac0b063\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5d7f3d09-e06f-4152-fb58-df512a8fdd32\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9051d45a-5204-a59d-07dc-e9ab5fad7eeb\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 244,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1e64a7d7-feac-56e8-df9e-ec2433cfdc67\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"92dd106e-8862-265f-5b37-aca480493880\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3407dc73-708c-908d-fa84-6b51b210bee4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2608dbdf-76f4-db81-1cab-1af1e463eacc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 8000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3fbefb33-1fc9-8bf5-f087-55033d5260b8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"668641a1-76fa-aa1b-c9ad-b1539a8934f3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"db4b892f-3bbc-6218-4509-033b43f7fcf1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4090,\n    \"closeTimestamp\": 2019-04-01T00:00:05.707Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4090.5,\n    \"interval\": 100,\n    \"kind\": \"tick\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"low\": 4090,\n    \"name\": \"trade_bar_100ticks\",\n    \"open\": 4090.5,\n    \"openTimestamp\": 2019-04-01T00:00:05.707Z,\n    \"sellVolume\": 68359,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"trades\": 100,\n    \"type\": \"trade_bar\",\n    \"volume\": 68359,\n    \"vwap\": 4090.0643733817055,\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7b99a521-59dc-2e25-f75b-d932b583faff\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1800,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d2bf38ba-cc81-5d71-6f8c-313856600cdc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 18,\n    \"exchange\": \"bitmex\",\n    \"id\": \"72c59e20-15fa-efbc-ca1a-6d00d0df49e7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5bd82eed-e8bb-55aa-ec63-a8325cf5fea6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"31f0c17a-b3b8-5c47-e8eb-fb493a5b34b0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 19,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eb9e0faf-7e04-8ca0-0607-2cfc1cd79c88\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 75,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ade23c56-245f-ac6b-82d1-311ac11ed68a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"db9b8c60-e29e-bda7-6e9d-fb5203729297\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2d9eb179-60db-19cf-71f9-e64590152980\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"83613fc8-dc50-22da-8887-e708b5a0cc11\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c9dbb211-f3d0-0c6c-4dfa-e71a737fb235\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 160,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af8a2f35-b153-915e-67b3-79772c51f945\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"06978606-2bec-6f34-eab8-35f5fd055080\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"da3f222b-c591-5419-197d-c9bbd915ba23\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2c4c38b1-c0db-1f44-eb40-afc4cbc73442\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"440347d6-20d4-77f8-e50a-ae51d33f87ec\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eea67221-e74f-2f5d-0950-25bbc28ebdc6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9bbe163d-a519-22de-ea55-675e2bdc8d25\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"08a716ec-f89e-344a-60ab-8134a9f9c542\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e1696b50-e2e0-8d51-b42f-32f0045e82d2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5a86d0fe-f2b1-0ffa-86ec-e48fbfbe93d1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a61676f6-44ac-9eec-7873-d577d014d77b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b780c8fe-e748-e345-8a15-d4e9268b604f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cae54712-5731-e69b-4d74-a55b9d739ebe\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"012f8042-1116-07b2-3998-621adf2d9f56\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 340,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7f791906-49be-1ec1-2e8e-be18a336de72\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fdcb030b-11fc-0775-56a3-15f61bd4a000\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4cd771cc-014a-b36a-72a1-bee6f3b31ec0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"47da772e-9cd1-2f6b-b364-7d8082a3bb3f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"48c02e9c-68f3-d112-4fb5-d39f8a852848\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eca89072-6d76-c425-75fe-04fe16a3f184\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c34023a6-bbbb-591f-39de-39495f3b102a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b9c4de69-1e20-c863-6873-c0a85289096f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5275e2f9-573b-54dc-6975-692b1c775b5a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ff00d057-672a-4837-766a-115e85942844\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cde478a9-dab6-aa28-f7fe-53ad6869fbdd\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"87a6b89d-2311-b0ad-ad1a-2896c5a86278\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e3a2e6d4-4a27-3ef6-ddaf-8657da6dded0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 7000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6d206dbc-3c0e-870e-a8e3-aa4f6818ec54\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"074fbcc1-e4a2-0366-f454-84f4fd70afc3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6594b53c-981c-a024-42a8-df277aa820df\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"56309d9a-26cd-4238-268d-4a8a38b81678\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"440808ef-d95f-05ce-154c-e3d6e39e5247\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d5cddad9-33bc-a522-78fa-91803049045f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cb432a81-8ac5-d3cf-be89-6736a1357bb5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"25ee23be-4a98-ba12-8814-8cb954c4fce4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e3570614-dcbe-a217-e3e4-bedc5bcd4277\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4d4d9786-776e-3567-6b24-a970c7c1897f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3002be9e-3904-df43-6ae8-03a0489e8477\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5566679f-0964-aa94-ebd4-a5f3e9e68912\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4a19a233-8c62-e757-b21a-df1ab11e0da7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a5047de3-fe99-80fc-a694-d3102b02fb24\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"44987164-d82d-35d7-528d-654d37a2d307\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"00e23411-8dcc-be52-22b8-a2d9ce0e1e92\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2228,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f3261249-01a2-cf6a-02f1-1f681e09f760\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"924f0bf0-21cc-35db-2ae6-254030a1d59a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 284,\n    \"exchange\": \"bitmex\",\n    \"id\": \"37be8c75-75a7-c34d-ce86-4ad75ea23719\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 13,\n    \"exchange\": \"bitmex\",\n    \"id\": \"669601c1-7810-a2c7-cf1e-516e363fd63f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"568d01cd-3cc0-6bc9-91a1-87401c58fed8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"205d9404-33f2-1c9b-83bb-116175ad78b7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1066f9f6-a474-9fc3-4867-8837891622b5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2e9d458a-90b8-7aec-2b38-09ec21821665\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bdbf2c5b-cdbc-125e-b942-d0e8aba360b2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c3f9b4ac-e38b-737a-890d-974a3cd702cd\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 7000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"77aee55f-4d4a-9298-fb75-fae9d8949aed\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e7b32698-118b-9e4d-b94c-a20b02b63b11\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b281c347-9d65-b328-afd2-e68998cc4b06\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1534,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5db98d12-4193-62ef-39fd-a85941e0f1cc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 716,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dc1f6cd1-585a-e718-4054-e29cd0ecbe86\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1347,\n    \"exchange\": \"bitmex\",\n    \"id\": \"23f86d7c-fa5d-b7a4-47fe-3fc5fff9c1b3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"861f6db9-8ac2-1bc3-c88f-ac9eeed39b42\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3223,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dd7515db-457d-2fd1-ef23-dcb718b73c9f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5ed15377-a953-defa-5194-5d084a96a94b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dc5b091d-0706-5f23-6be5-580217f50c8a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"32203e60-f1fe-4da7-279a-df24351cd7ed\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e778fb91-eff9-1d96-e495-3e34e5731ca2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 14,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bbfef45a-44dc-86e9-36b3-445b5f019f32\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e998b366-307f-f9eb-ff08-0f139fac44c6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 47,\n    \"exchange\": \"bitmex\",\n    \"id\": \"286ea49c-e98b-1bef-118d-6f9abde1684e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2044,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ce5fc6ff-6082-7074-5018-3852cf9ca77a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5da1e06c-2106-10ed-a21c-fa784f4044c4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8dba2204-b9eb-a940-0c73-a6977e7c8fb7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f97a320f-01a6-0ec3-1648-50e978b8d71f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4c89cc82-6ae2-a277-d5e2-3a7bbf5e466e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1309,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fd1339e0-1687-9545-5d40-99d82ab0010e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 25,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cd9a98c8-729e-3ece-24da-95e8c42e74a9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2a71c743-f8e5-361c-94cc-621869a51c30\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 750,\n    \"exchange\": \"bitmex\",\n    \"id\": \"009f3d89-6edd-28b5-0b72-d21a41e25386\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 64872,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a2992cd7-c48c-d14c-72bf-1a8b4926ffd8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 494,\n    \"exchange\": \"bitmex\",\n    \"id\": \"65210ebf-1418-26b7-6c07-5cea5de00c47\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 450,\n    \"exchange\": \"bitmex\",\n    \"id\": \"198d2068-6f2b-34dd-7113-10353e055840\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b79c0702-a004-2be9-0b5d-c7d3b5162650\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1eb00db7-9c43-8b91-1ff9-45494166672f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 4,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bcfe948a-d51e-7131-8726-8525a8fc714f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 755,\n    \"exchange\": \"bitmex\",\n    \"id\": \"14ef833a-a473-8bdc-ea3c-04c6e3240cf4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aba99f48-91d1-e2c2-e951-a9375f884052\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 21,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2faea6db-246e-7ba5-1773-5a8b705f4325\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20304,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9c921747-f692-742d-2459-ae0c9ddb022d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 18,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8ba7f99c-c199-848b-5400-b0d17b3ce34f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 75,\n    \"exchange\": \"bitmex\",\n    \"id\": \"878864ea-cca4-1490-3f6d-6cdcf38a9279\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4089.5,\n    \"closeTimestamp\": 2019-04-01T00:00:05.707Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4090,\n    \"interval\": 100,\n    \"kind\": \"tick\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"low\": 4089.5,\n    \"name\": \"trade_bar_100ticks\",\n    \"open\": 4090,\n    \"openTimestamp\": 2019-04-01T00:00:05.707Z,\n    \"sellVolume\": 238683,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"trades\": 100,\n    \"type\": \"trade_bar\",\n    \"volume\": 238683,\n    \"vwap\": 4089.51280359305,\n  },\n  {\n    \"amount\": 3896,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f1fb3979-79c7-f50c-02b1-df646913c6d6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6ef71cb0-b46b-a374-3524-33ea25ecb600\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 59,\n    \"exchange\": \"bitmex\",\n    \"id\": \"81f3c32e-2b9f-62de-51c2-9270070b54c9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 101,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8f91f412-b799-a677-2a3b-c77d58231dca\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c02bd87c-b535-9b26-9452-004c0055c741\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 160,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aea67e15-b8c1-c9d5-4707-90cb65e5a8f6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8f4fbc1d-b135-407d-2a43-0670df871d99\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2282165c-f11b-657b-0ec5-5fa00c70927c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"df815992-76ae-c65c-8bec-c4bf5a1db91b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 59,\n    \"exchange\": \"bitmex\",\n    \"id\": \"18090edb-906f-61c8-7f3f-5a3b54b0f368\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b02326dd-6e77-c94f-2d70-3146dd7c1b87\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"df91abc1-fbb1-59eb-8068-c004e2d88377\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"53af69b7-81b7-7b8d-77ce-e99e9641608d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"95bb0456-936e-64d7-75f3-89c8ee30b1c9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3ea1b8ba-d064-3e87-498d-c2c18038dce4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 46,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cece880b-e403-e2bb-0dc8-33362113e754\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"423752e1-e155-86ba-7d6b-1060a6dcc8cf\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 195,\n    \"exchange\": \"bitmex\",\n    \"id\": \"657538ef-2a8a-2d13-5ec9-67b452c710f9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eeec538d-1e55-8a33-730e-5313510d1eba\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"48533441-28ba-5167-5f33-0115d13ab167\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6c957223-e749-40e4-3a6b-3eb26c722f7c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3367d3c3-5d51-9847-68f7-cf4bd8d64ab0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"73771d19-f200-5700-6f98-da21f2fc9b82\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 28,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7d61abd4-89ea-cfb3-96db-dea74ae37c1f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 467,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6f7f8e08-1d6b-0174-108a-3c296ba20ceb\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5b292e3f-0cfb-754e-1bc7-a12163df4b87\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2553,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9f17bbc0-0b19-0489-eddb-5cdff08e06aa\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6787759a-72a1-e689-d0c4-7746578d9924\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 103,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3e2b813a-329e-8ea3-8027-3e167383b15b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 101,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c9902538-ea58-e60a-e4ec-02f8ab77f7de\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 795,\n    \"exchange\": \"bitmex\",\n    \"id\": \"806835ef-dec8-836a-1396-abe61b4f3808\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 600,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a8431761-3a2a-12c7-b520-26fd29c2e1a4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 14,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cbeb16bf-c366-081d-b3af-13d429f62bbc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 600,\n    \"exchange\": \"bitmex\",\n    \"id\": \"115344d5-ecde-0923-9048-ffe63a4a5a42\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0e223859-c38c-663d-4a58-2ac1c9f9dcfc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 118,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0f1d32e3-4b73-25de-6b91-566d1ad396b5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 423,\n    \"exchange\": \"bitmex\",\n    \"id\": \"103c3318-fb5e-5a03-ef60-910dc6be5d22\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7fdccc6f-15d6-0eae-1fe1-ce827c0eade8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"95acbe08-8ab0-2ff9-8616-35a95dde4dc3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3ff108ca-c2da-73cb-e2aa-2294b56eb654\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1260,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7f453672-1890-ef67-96aa-7451737a35e3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 800,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cae4af2e-c1dc-f215-2601-983a82fcb994\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f074ee30-5a70-8345-3ed8-554e3ba61318\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d44ffbbb-e817-8757-6dfe-6940a05671ac\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e117ae6e-1b14-a4a6-ffb0-b3d7350f6b86\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 761,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2d6f90cb-3d10-e3c9-99df-eff045bae9b3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 495,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f9507a62-f996-8769-0d5a-ec6f87db53e3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 8,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eb9c2d2c-bb87-b1ee-89b7-848f17f6c9a3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 34,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9863668e-17f3-3a24-8a5c-1ecce4e9bdac\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 441,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aa88a99c-5d71-c2b2-9900-f1c9f324afc8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1afeb131-458e-ce62-5a99-868233afb220\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0edca3d2-7ec8-4c27-d057-fe54118859d2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6e437286-bf4b-6abb-35f8-51ca5d23f1f4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 999,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3cbff978-7634-4d38-66dd-d3ab48224d49\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4fa382c1-1aac-aba7-fa10-4b6265d958df\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"39928a52-8583-97f8-b99f-7e14efa3e9d3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8ec02006-662d-aafa-c348-2e73681b44ab\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7c14ddbf-4756-4162-d065-e448b2c8f15c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"967ff7d7-ff19-bcb8-bbfc-effe93233c68\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5a956b10-e551-b026-955e-73e70e63fdb3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5ae254a5-5473-fc74-6b40-9f181d8335cb\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c1f8a036-52a6-41da-f2a9-79334e75bfa7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0d2b605a-4822-0070-5372-fb225a7521c8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"866744b9-1b1e-c8ad-dfe6-8a2ff427a281\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a9734366-c965-9bea-94e4-42a33402699a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"082729c1-1b63-eba0-2865-599db8a747f4\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"48d5e179-9084-1517-9407-5e8ca9fa937f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e48c7952-18a4-982b-32fe-de8fb148a5fa\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2163d4ee-4714-57c2-6adb-682cb1924924\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9379fe0a-3a58-a676-848f-49107b09df00\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 80,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dbbfa7d4-0ad9-fc28-d1c3-5107ec9258a7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"88a73827-dab2-5ef4-23ae-ad300f2eced0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 611,\n    \"exchange\": \"bitmex\",\n    \"id\": \"84aef39f-e6ad-74c0-ce6b-ce8923340ed2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 195,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8cfa7a55-11a2-8825-2090-001583f62cb2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8502e4df-456b-0579-4164-59f1c637c551\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 488,\n    \"exchange\": \"bitmex\",\n    \"id\": \"69adf2e1-21f6-62fa-f01f-a6519ade546a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e5b4830a-b362-b63b-9ffb-94e3cb3662b9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8ce692a9-cc62-7515-12e7-a5fcc23cc77b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"17482343-e0e1-2e7f-cce9-bd2fc915432c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"070569f2-2c82-0896-21b7-069210641899\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4cd7379d-3b2b-ebc1-92df-12127fd5c6f6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 18,\n    \"exchange\": \"bitmex\",\n    \"id\": \"17af67a1-d33b-73ae-0794-37989e3cf7c0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"084e2c6b-26a3-e621-4e75-cb832f296251\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 105,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e8d88acb-cf43-8249-4306-23b99059d2c8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 4000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b85e91e6-1902-c192-d497-3943d36a2af5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 105378,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a33d2554-47f2-79dd-1d31-18169b89c70c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.581682Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.707Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 344513,\n    \"exchange\": \"bitmex\",\n    \"id\": \"913c1d3b-299d-56ac-7263-9e30ca6a0532\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"70b67a6f-54c0-4175-5b44-8be643732701\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 16,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b6690ceb-88ec-9228-8837-794877cb84e0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 483,\n    \"exchange\": \"bitmex\",\n    \"id\": \"702e057f-e25a-b367-613f-1280466de1e1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 755,\n    \"exchange\": \"bitmex\",\n    \"id\": \"485b877d-8354-caeb-0254-a99cd6e353d6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 16778,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f2cd6af0-33c6-60b4-801a-fe82707eeeff\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"472a8222-eac2-b1d7-bcf0-101b48d83c93\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 7000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9e88e032-c720-ee30-b6cd-510ee015d38a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 60,\n    \"exchange\": \"bitmex\",\n    \"id\": \"804e9ea8-028e-1d57-2f02-036ab1af5f5c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e94dc48e-113f-7f02-b670-a0c6320e0879\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"953a5394-7610-51ca-f778-e4deb55ba41d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c94700e6-007e-b866-b773-3623cb55180b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3871b520-10c9-7f40-1854-8af6b90efbe2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e94605d4-dbe2-1746-e9d9-09271e0d3b3a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 404505,\n    \"close\": 4091.5,\n    \"closeTimestamp\": 2019-04-01T00:00:05.837Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4091.5,\n    \"interval\": 100,\n    \"kind\": \"tick\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"low\": 4089,\n    \"name\": \"trade_bar_100ticks\",\n    \"open\": 4089.5,\n    \"openTimestamp\": 2019-04-01T00:00:05.707Z,\n    \"sellVolume\": 445899,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"trades\": 100,\n    \"type\": \"trade_bar\",\n    \"volume\": 850404,\n    \"vwap\": 4090.1914813429853,\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3a893828-bac1-d11f-d08b-69b335c603b8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f6946f8e-5007-5443-ea51-cd2d2297103f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1f9d66f7-32bd-68fc-c7f6-369226bc88e6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3896,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a7734260-dd01-1d1d-d422-3277c3daee13\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 275808,\n    \"exchange\": \"bitmex\",\n    \"id\": \"80b8db4f-15e4-11fc-3c37-042065e9d5ef\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bb9c6c40-8a5c-96b3-2cd2-dd2c2acff31b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d972fa3f-b672-4eed-6bbc-1459f142114f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2249,\n    \"exchange\": \"bitmex\",\n    \"id\": \"10053930-6307-fb03-5462-27ed47b43d37\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"31dbcc7d-d316-d577-2410-533d85e9a41a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fe5bdc4f-8373-4390-3404-8708faa7c0c0\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"47db8f13-521e-62e2-da21-3a0574387e44\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 204,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8c65a1fa-4113-ab82-34e6-8455892dda9c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 73,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0af0a725-a1cb-fab9-3dea-c7fcfd188706\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2249,\n    \"exchange\": \"bitmex\",\n    \"id\": \"663df72b-bd1a-fefb-ed19-fa5368efb09f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9e478fae-21d7-bb62-fb53-2b11861b5572\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 42,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f1548cbe-df78-ea27-04d7-776a726a53b1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30001,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aeaa19a7-9c07-48fd-a137-cac0676aba41\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12,\n    \"exchange\": \"bitmex\",\n    \"id\": \"77790b02-699c-972b-2cb8-16d2b5c09ca3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"25e97e51-7d2e-f9a8-19f5-198c947a92e5\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 45,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9109e997-fbc4-11e0-1033-aacc1a8b1f10\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 53,\n    \"exchange\": \"bitmex\",\n    \"id\": \"26a22b80-1436-bbca-c98a-ff9eaa63f318\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 255,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3ec75c45-bf52-cf40-694c-072c8aad6e23\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2720,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1c0cf480-6aa0-1038-7320-4e47ffc19e3e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 137,\n    \"exchange\": \"bitmex\",\n    \"id\": \"996207b7-18db-3125-9422-58386d8213b1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8f999370-823a-2e40-cdfe-5f7221be2b7d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 49,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4bb627c7-a8ad-9ae5-9166-813c02e36ee2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 70,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cb983fe1-c97f-9152-c70e-89ec492bc442\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"df80d227-934b-cc9a-55f3-2254515d44f9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"259259ac-31e3-1d4d-738d-1e5256e4ceb9\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 353,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b905d043-879e-2039-c275-61942a04028c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"78e985e0-a4c6-8735-5f2b-06633fbea81b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 244,\n    \"exchange\": \"bitmex\",\n    \"id\": \"99b9c40f-100a-fec6-fab7-1287e3dca2f6\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"774ba394-db5b-fb31-2aab-cc035a12de6a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"238732b7-fad1-ca7f-3d1f-3171bcaa2f45\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 105,\n    \"exchange\": \"bitmex\",\n    \"id\": \"54cb2110-24b1-9054-186b-29b8273884c8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9a5306e6-8c4b-9229-b6fa-a4ae9f31b7f8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8c409255-6181-2fc5-0a06-8c80a9c2a7e8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"780c02a5-f7ea-0f51-9cfa-3c0c483956f2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 36,\n    \"exchange\": \"bitmex\",\n    \"id\": \"55db2ccc-4bd8-bf06-ad55-84a7784ff2f8\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"08bdc099-5358-2e9c-db7f-9945b2eedbf3\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 450,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bd66155c-9f0a-2c1e-e8e7-fe536aeb3364\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 4000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d1cc4cf8-f867-b1cf-c185-a94bdeae7a8d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1c7eb8d1-c740-46d4-d3ca-03e7ba25f9e7\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d5dd71b7-ec9a-3450-ad2e-cf8c9d0e255e\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 91,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e28b9bbc-a386-aec0-5bcb-c2516a934315\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 600,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fa449a96-9d12-2871-02d2-5c3ebc319193\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6e2ca639-0904-5458-04c5-f99a5baaf4d1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8c547fb4-8ae2-86ee-589e-c79ab8c92cf2\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fd845b6b-77f4-efc0-b613-96ce05305b88\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fa64dc91-50f7-27e0-bb44-46325de0287d\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f09dc4f1-9f38-fdaf-1157-2607ddeaddb1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f9eaad47-51c4-4a1a-d9bf-c990bb7f4581\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2141f926-6583-0d55-73bf-5148066a3369\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"75fab6fe-ae5f-fd13-2abf-74126753dbdc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b16e3bd0-3814-c814-e7bf-7f7bbd27d022\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c54dfa8c-7a36-2d86-7c77-fba7b64da361\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b12d9d1a-a8c2-7971-0cd1-a4a936d14614\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2250,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4a5e6810-96ec-1846-c50c-19498b1ccb32\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f2f07f2e-767f-be9e-0d5b-28161225f4ef\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a29a93b7-cea8-a682-d83e-a45ddde1f7f1\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"52142163-a903-07c1-6560-ca5391bebd6a\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 39683,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c94dc946-2779-a754-8d9b-6dd0564b75fc\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"99398fd1-81ea-10f2-219e-c6beb8b0c227\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 196,\n    \"exchange\": \"bitmex\",\n    \"id\": \"eeb430da-e9ce-1d94-8190-f98a24a7ae63\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f03ac310-e838-36c8-b048-9a87a1e61aaf\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 92,\n    \"exchange\": \"bitmex\",\n    \"id\": \"462c28be-3839-2ee1-a93d-22a7878af82b\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1600,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1f4500e7-bc39-cdd7-bc85-63559b42572f\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 750,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2b57da8a-bb11-1eae-61c4-a1982ee9418c\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6432,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4fa8c26c-bb72-b00a-aa2a-8a9fa3f0a115\",\n    \"localTimestamp\": 2019-04-01T00:00:09.743740Z,\n    \"price\": 4091.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:05.837Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af1ea5a8-a88b-4347-ed9c-9d496bfe98a9\",\n    \"localTimestamp\": 2019-04-01T00:00:12.628034Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.933Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 1003316,\n    \"close\": 4091.5,\n    \"closeTimestamp\": 2019-04-01T00:00:05.837Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4091.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:12.628034Z,\n    \"low\": 4089,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4091,\n    \"openTimestamp\": 2019-04-01T00:00:05.653Z,\n    \"sellVolume\": 1001931,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.000Z,\n    \"trades\": 444,\n    \"type\": \"trade_bar\",\n    \"volume\": 2005247,\n    \"vwap\": 4090.578403807611,\n  },\n  {\n    \"amount\": 12,\n    \"exchange\": \"bitmex\",\n    \"id\": \"89eede38-b046-b992-8478-f55daad441ac\",\n    \"localTimestamp\": 2019-04-01T00:00:12.628034Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.933Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3912a96b-3982-7c99-d14c-97f0144b83f4\",\n    \"localTimestamp\": 2019-04-01T00:00:12.628034Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.933Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 92,\n    \"exchange\": \"bitmex\",\n    \"id\": \"59037281-6f76-b0c1-9b5d-35baf7c2ff9c\",\n    \"localTimestamp\": 2019-04-01T00:00:12.628034Z,\n    \"price\": 4091,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.933Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 771440,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:12.665496Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:12.665496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 770140,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259554,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 239114,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 827611,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 525843,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 785963,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341056,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358074,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 206680,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 489313,\n        \"price\": 4085.5,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:12.665496Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:09.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 771440,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:12.665496Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:12.665496Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 769673,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.389380Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.389380Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 771440,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 259554,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 239114,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 827611,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 525843,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 785963,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341056,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358074,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 206680,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 489313,\n        \"price\": 4085.5,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:13.389380Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 769673,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.389380Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.389380Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 771440,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:13.389380Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:12.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 262449,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 222533,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 252054,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 316169,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 139911,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 683821,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.471396Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.471396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 769673,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:13.471396Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 813415,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.471398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.471398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 382790,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.471400Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.471400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770973,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.471407Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.471407Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 770973,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.471407Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.471407Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 627881,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.471410Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.471410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 200504,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.484737Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.484737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384473,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.484740Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.484740Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772273,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.489204Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.489204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 772273,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.489204Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.489204Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 773573,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.518934Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.518934Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 773573,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.518934Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.518934Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 772273,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566401,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:13.518934Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.518937Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.518937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 773573,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.518937Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.518937Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 774873,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.524827Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.524827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2955454,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 774873,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.524827Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.524827Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 14770,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4e364087-4a54-5dd6-0aa2-70884676dc6e\",\n    \"localTimestamp\": 2019-04-01T00:00:13.524857Z,\n    \"price\": 4090.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:12.989Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4091,\n    \"closeTimestamp\": 2019-04-01T00:00:06.933Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4091,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:13.524857Z,\n    \"low\": 4091,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4091,\n    \"openTimestamp\": 2019-04-01T00:00:06.933Z,\n    \"sellVolume\": 215,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:07.000Z,\n    \"trades\": 4,\n    \"type\": \"trade_bar\",\n    \"volume\": 215,\n    \"vwap\": 4091,\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2940684,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.529240Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.529240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2940684,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 774873,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 137405,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.529240Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.529240Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.529245Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.529245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2940684,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 774873,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.529245Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.529245Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 1478,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dc897ea6-aa72-84a9-fd76-0f258e7cc702\",\n    \"localTimestamp\": 2019-04-01T00:00:13.529251Z,\n    \"price\": 4090.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.015Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 14770,\n    \"close\": 4090.5,\n    \"closeTimestamp\": 2019-04-01T00:00:12.989Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4090.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:13.529251Z,\n    \"low\": 4090.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4090.5,\n    \"openTimestamp\": 2019-04-01T00:00:12.989Z,\n    \"sellVolume\": 0,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.000Z,\n    \"trades\": 1,\n    \"type\": \"trade_bar\",\n    \"volume\": 14770,\n    \"vwap\": 4090.5,\n  },\n  {\n    \"amount\": 3508,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0ee18728-954a-f090-604a-4c897c92ee61\",\n    \"localTimestamp\": 2019-04-01T00:00:13.529251Z,\n    \"price\": 4090.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.015Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2935698,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.538579Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.538579Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2935698,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 774873,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.538579Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.538579Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.559038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.559038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 774873,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.559038Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.559038Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 6492,\n    \"exchange\": \"bitmex\",\n    \"id\": \"484c077e-7992-26a8-c3f0-ad9e2ab7cfc3\",\n    \"localTimestamp\": 2019-04-01T00:00:13.561359Z,\n    \"price\": 4090.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.032Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 17993,\n    \"exchange\": \"bitmex\",\n    \"id\": \"40fb6919-4e36-86ea-6291-4b9f8a490e0a\",\n    \"localTimestamp\": 2019-04-01T00:00:13.561359Z,\n    \"price\": 4090.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.032Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 531843,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86434,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.561402Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.561402Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 615552,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.802290Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.802290Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 774873,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:13.802290Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 774885,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.827278Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.827278Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 774885,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6804,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.827278Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.827278Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6803,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.829052Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.829052Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 774885,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6803,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.829052Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.829052Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"223a70fb-90a3-65a9-f78c-43d81cc409c3\",\n    \"localTimestamp\": 2019-04-01T00:00:13.835686Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.122Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.839921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.839921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 774885,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.839921Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.839921Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 796627,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.840044Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.840044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 796627,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.840044Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.840044Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 203,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7c961c5d-2221-fef9-f5cf-b39da90370eb\",\n    \"localTimestamp\": 2019-04-01T00:00:13.847621Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.136Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 47,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ee93e5e9-614f-bc43-f17c-0d0c1d078b67\",\n    \"localTimestamp\": 2019-04-01T00:00:13.847621Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.136Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 821117,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.847662Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.847662Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 821117,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.847662Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.847662Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845627,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.847666Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.847666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 845627,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.847666Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.847666Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 846927,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:13.869061Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.869061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 846927,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:13.869061Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.869061Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 848227,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.143288Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.143288Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 846927,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 252054,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 239114,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 827611,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 531843,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 785963,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 341056,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358074,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 206680,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 489313,\n        \"price\": 4085.5,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:14.143288Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 848227,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.143288Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.143288Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 846927,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:14.143288Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.540680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.540680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.540680Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.540680Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 848227,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:14.540680Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 3153,\n    \"exchange\": \"bitmex\",\n    \"id\": \"75ba719c-e764-e9f6-66e5-d0ad96af98d5\",\n    \"localTimestamp\": 2019-04-01T00:00:14.726270Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.490Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e121647d-8a4c-8126-6eb0-a5a1654b6532\",\n    \"localTimestamp\": 2019-04-01T00:00:14.726270Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.490Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"055e9cd6-45d4-69e2-624d-2066ed34d862\",\n    \"localTimestamp\": 2019-04-01T00:00:14.726270Z,\n    \"price\": 4090,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.490Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"516d3444-d95d-1671-d6c7-7fe8a610e10b\",\n    \"localTimestamp\": 2019-04-01T00:00:14.726270Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.490Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 447,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c3ce70f2-82f3-a376-69dd-9de1b129511c\",\n    \"localTimestamp\": 2019-04-01T00:00:14.726270Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.490Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726308Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726308Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726308Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726308Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 38000,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:14.726308Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726312Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2911213,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726312Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726312Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2867447,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2867447,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 240857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726316Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726316Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 43766,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726319Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726319Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 43766,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2867447,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726319Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726319Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2850299,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 60914,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726323Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60914,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2850299,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726323Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726323Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2760294,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150919,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 150919,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2760294,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726331Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726331Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2681511,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 229702,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726335Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 229702,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2681511,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726335Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726335Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2646600,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 264613,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726345Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726345Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 264613,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2646600,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726345Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726345Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2556583,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 354630,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 354630,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2556583,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726351Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726351Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2539511,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 371702,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 371702,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2539511,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726355Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726355Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2449486,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 461727,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726359Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 461727,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2449486,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726359Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726359Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2359457,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 551756,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 551756,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2359457,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 849527,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726365Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726365Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 791063,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726368Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 850827,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.726374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 551756,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2359457,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850827,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.726374Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.726374Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2280650,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 630563,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 630563,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2280650,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850827,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.738242Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738242Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 796163,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738245Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2263554,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 647659,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738247Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738247Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 647659,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2263554,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850827,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.738247Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738247Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2179709,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 731504,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 731504,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2179709,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850827,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.738250Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738250Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 629578,\n        \"price\": 4108,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2089660,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 821553,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738263Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738263Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 821553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2089660,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850827,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.738263Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738263Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.738265Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 821553,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2089660,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.738265Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.738265Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2010829,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 900384,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754408Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754408Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 900384,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2010829,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754408Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754408Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1920776,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 990437,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754441Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754441Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 990437,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1920776,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754441Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754441Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 246414,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754450Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754450Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1903656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1007557,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754533Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1007557,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1903656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754533Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754533Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1813579,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1097634,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754536Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1097634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1813579,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754536Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754536Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383790,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 795163,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754539Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1723578,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1187635,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754542Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754542Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1187635,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1723578,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754542Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754542Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1633505,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1277708,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754544Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1277708,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1633505,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754544Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754544Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1631152,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1280061,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754547Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754547Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1280061,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1631152,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754547Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754547Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1614008,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1297205,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754555Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1297205,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1614008,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754555Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754555Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1523911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1387302,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754562Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1387302,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1523911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754562Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754562Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1433910,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1477303,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754566Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1477303,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1433910,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 850847,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754566Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754566Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 852147,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754569Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754569Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1477303,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1433910,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 852147,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754569Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754569Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 796,\n    \"exchange\": \"bitmex\",\n    \"id\": \"88b67156-9672-a810-0205-ab85193c880c\",\n    \"localTimestamp\": 2019-04-01T00:00:14.754573Z,\n    \"price\": 4090,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.778Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1476507,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754591Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754591Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1476507,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1433910,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 852147,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754591Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754591Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1343889,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1566528,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754606Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1566528,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1343889,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 852147,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754606Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754606Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1326821,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1583596,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754611Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754611Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1583596,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1326821,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 852147,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754611Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754611Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 539143,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754614Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754614Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 555531,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1784854,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 524690,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 552731,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1782054,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 521890,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1266279,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1644138,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754625Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754625Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1644138,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1266279,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 852147,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754625Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754625Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1249187,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1661230,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754628Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754628Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1661230,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1249187,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 852147,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754628Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754628Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1199376,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1711041,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754631Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1711041,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1199376,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 852147,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754631Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754631Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 1727,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5f196951-5403-10ef-3809-7c3b6a32b7ac\",\n    \"localTimestamp\": 2019-04-01T00:00:14.754634Z,\n    \"price\": 4090,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.859Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1709314,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754645Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1709314,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1199376,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 852147,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754645Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754645Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 852167,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754648Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754648Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1709314,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1199376,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 852167,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754648Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754648Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1182260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1726430,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754658Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754658Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1726430,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1182260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 852167,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754658Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754658Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 939,\n    \"exchange\": \"bitmex\",\n    \"id\": \"91b66296-7dd5-fbff-3417-c782e3b20524\",\n    \"localTimestamp\": 2019-04-01T00:00:14.754663Z,\n    \"price\": 4090,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:13.911Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1725491,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.754669Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1725491,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1182260,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 852167,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.754669Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.754669Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776096Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776096Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 852167,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776096Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776096Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384652,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3330356,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1782233,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 827969,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 341704,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776133Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 853467,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776146Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 853467,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776146Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776146Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 337704,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 337414,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776149Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776149Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 957820,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 550531,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 313969,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 451915,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776152Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 955620,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 548331,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 311769,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 449715,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776155Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776155Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 855867,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776158Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776158Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 855867,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 566421,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776158Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776158Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 848756,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 381644,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 814344,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 957556,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 307705,\n        \"price\": 3957,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 541930,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776168Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 855867,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 541930,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776168Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776168Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776176Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776176Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 855867,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776176Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776176Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 858267,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776178Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776178Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 858267,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776178Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776178Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 860667,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776181Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 860667,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776181Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776181Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 863067,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776183Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776183Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 863067,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776183Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776183Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 866267,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 866267,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776186Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776186Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50407,\n        \"price\": 4134.5,\n      },\n      {\n        \"amount\": 1410144,\n        \"price\": 4134,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776188Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869467,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 869467,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 348767,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776191Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776191Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 364880,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776202Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776202Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1165120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 869467,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776207Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776207Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 372880,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776209Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776209Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 218680,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776211Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776211Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383880,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1168120,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776219Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1168120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 869467,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776219Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776219Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 79538,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776221Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1171120,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776223Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776223Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1742631,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1171120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 869467,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776223Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776223Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776229Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776229Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1171120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 869467,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776229Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776229Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 870767,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776234Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1171120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870767,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776234Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776234Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590990,\n        \"price\": 4109.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776251Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1171120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.776276Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776276Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 222680,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 333414,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776284Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776284Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383390,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 175947,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 318674,\n        \"price\": 4124,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 175504,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776289Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 220367,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 178113,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 252915,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3328190,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 625715,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 811249,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 613386,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 955390,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 546165,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1780067,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 346790,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 653067,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 381224,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 355908,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 220514,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.776317Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.776317Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 553,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8a6d67af-1d2b-6a2e-2685-6c0cb70b7bf2\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.139Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 32933,\n    \"close\": 4090,\n    \"closeTimestamp\": 2019-04-01T00:00:13.911Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4090.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"low\": 4089.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4090.5,\n    \"openTimestamp\": 2019-04-01T00:00:13.015Z,\n    \"sellVolume\": 8251,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.000Z,\n    \"trades\": 15,\n    \"type\": \"trade_bar\",\n    \"volume\": 41184,\n    \"vwap\": 4090.340229215229,\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c2d774ab-d77b-5c1b-72b8-7459a3f10300\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.139Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9847b1e3-de31-9af3-0a5d-9a0ad2dc9582\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.139Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2d871865-b6c8-8140-00a2-f03d20d7d38b\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.139Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7e267b2c-76b6-53bd-7253-2270bd71be88\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.139Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 9447,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fb4f2f35-adbf-6a8d-074a-7abed540cf0f\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808184Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.139Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 86822,\n        \"price\": 4112.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 274082,\n        \"price\": 4061.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808217Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808217Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1171120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 36553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:14.808217Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 8000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"394399b4-7fd2-098e-2694-91b7b0e9982a\",\n    \"localTimestamp\": 2019-04-01T00:00:14.808228Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.161Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 16553,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1171120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 16553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808236Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808236Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1195610,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808239Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808239Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1195610,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 16553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808239Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808239Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1220120,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808241Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808241Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1220120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 16553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808241Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808241Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808244Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1220120,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808244Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808244Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1220608,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808246Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808246Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1220608,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808246Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808246Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1229552,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808249Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808249Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1229552,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808249Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808249Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1238650,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808252Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808252Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1238650,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808252Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808252Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1246023,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1246023,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808261Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808261Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1254921,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808272Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1254921,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808272Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808272Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1263624,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758879,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1263624,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808274Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808274Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1246514,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1775989,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808277Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1775989,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1246514,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808277Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808277Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1247514,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808280Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808280Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1775989,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1247514,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 870787,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808280Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808280Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 874791,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808282Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1775989,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1247514,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 874791,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 536920,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808282Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808282Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 515177,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1775989,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1247514,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 874791,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 515177,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808287Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808287Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 490686,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808289Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1775989,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1247514,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 874791,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 490686,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808289Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808289Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450685,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1775989,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1247514,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 874791,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 450685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808292Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808292Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.808295Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1775989,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1247514,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 874791,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.808295Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.808295Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 792010,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835846Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1775989,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1247514,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 792010,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835846Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835846Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 701943,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1775989,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1247514,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 701943,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835854Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835854Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1230386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1793117,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835911Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1793117,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1230386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 701943,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835911Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835911Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1233106,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835923Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1793117,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1233106,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 701943,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835923Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835923Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 67009,\n        \"price\": 4047.5,\n      },\n      {\n        \"amount\": 222994,\n        \"price\": 4045.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835927Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835927Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 681592,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1793117,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1233106,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 681592,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835930Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835930Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 591521,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1793117,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1233106,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 591521,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835933Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835933Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1233406,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835936Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835936Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1793117,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1233406,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 591521,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835936Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835936Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 501446,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835948Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835948Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1793117,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1233406,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 501446,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835948Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835948Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 440274,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835952Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835952Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1793117,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1233406,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440274,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835952Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835952Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1223406,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1803117,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835956Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835956Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1803117,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1223406,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440274,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835956Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835956Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377224,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 543143,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1373406,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835965Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1803117,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1373406,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440274,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835965Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835965Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1376406,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835968Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1803117,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1376406,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440274,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835968Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835968Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1359268,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1820255,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835976Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1820255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1359268,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440274,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835976Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835976Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1269200,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1820255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1269200,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440274,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835983Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835983Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1259200,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1830255,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835988Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835988Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1830255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1259200,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440274,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835988Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835988Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1830255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1259200,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835992Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835992Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.835996Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835996Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1830255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1259200,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.835996Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.835996Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1198027,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836000Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1830255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1198027,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836000Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1107955,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836006Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1830255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1107955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836006Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836006Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 886276,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836010Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836010Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1830255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 886276,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836010Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836010Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 876276,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1840255,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1840255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 876276,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836015Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836015Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 786200,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836021Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836021Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1840255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 786200,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836021Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836021Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384564,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3328102,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1779979,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 827793,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 383562,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 703418,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836030Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836030Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1840255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 703418,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836030Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836030Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 683066,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836042Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1840255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 683066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836042Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836042Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1841555,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1841555,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 683066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836045Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836045Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836048Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836048Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1841555,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 683066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836048Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836048Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1858613,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1858613,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 683066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836056Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836056Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 633066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1908613,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1908613,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 633066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 440294,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836062Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836062Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 436290,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836065Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1908613,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 633066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436290,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836065Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836065Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1925683,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836073Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1925683,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 633066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436290,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836073Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836073Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 436310,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836076Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836076Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1925683,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 633066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436310,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836076Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836076Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 583066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1975683,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836080Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836080Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1975683,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 583066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436310,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 381989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836080Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836080Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836093Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1975683,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 583066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436310,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836093Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836093Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 573066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 1985683,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836096Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836096Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1985683,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436310,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836096Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836096Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2002765,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836099Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2002765,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436310,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 225406,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836099Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836099Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 228906,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836119Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2002765,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436310,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 239989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 228906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836119Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836119Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 236857,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836123Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2002765,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436310,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 228906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.836123Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836123Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 154996,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 311805,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.836127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.836127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2004065,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838845Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2004065,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573066,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436310,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 228906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.838845Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838845Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 436410,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838868Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838868Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2004065,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436410,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 441385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 228906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.838868Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838868Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 401385,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838876Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2004065,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436410,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 228906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.838876Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838876Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2020332,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838878Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838878Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2020332,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436410,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 228906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.838878Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838878Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2037426,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838895Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838895Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2037426,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436410,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 228906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.838895Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838895Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248906,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838897Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838897Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2037426,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436410,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.838897Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838897Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33201,\n        \"price\": 3927.5,\n      },\n      {\n        \"amount\": 127117,\n        \"price\": 3926.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838900Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838900Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 718603,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 729643,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838903Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838903Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 436430,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838905Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838905Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2037426,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436430,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.838905Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838905Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2053674,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838907Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838907Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2053674,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436430,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.838907Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838907Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2070780,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838909Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838909Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2070780,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436430,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.838909Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838909Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2084280,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838911Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2084280,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436430,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.838911Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838911Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 14,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 15,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838924Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 178098,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838928Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838928Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 436450,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2084280,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436450,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401385,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.838930Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838930Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 436462,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.838933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2084280,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 436462,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.838933Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.838933Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 433262,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.855710Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.855710Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2084280,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 433262,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.855710Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.855710Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2101428,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.860009Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.860009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2101428,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 433262,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.860009Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.860009Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2118546,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.866170Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.866170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2118546,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 433262,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.866170Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.866170Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 493848,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.868349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.868349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249906,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.879165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.879165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2118546,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 433262,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 249906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.879165Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.879165Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 431962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.887031Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.887031Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2118546,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 431962,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 249906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379989,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.887031Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.887031Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550443,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.889760Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.889760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379889,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.891326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.891326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2118546,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 431962,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 249906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379889,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.891326Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.891326Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 429562,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.894743Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.894743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2118546,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 429562,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 249906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379889,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.894743Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.894743Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 378890,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.901840Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.901840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2118546,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 429562,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 249906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378890,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.901840Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.901840Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2118546,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 429562,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 249906,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:14.901840Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112240,\n        \"price\": 4199.5,\n      },\n      {\n        \"amount\": 377365,\n        \"price\": 4198.5,\n      },\n      {\n        \"amount\": 150081,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 399540,\n        \"price\": 4196.5,\n      },\n      {\n        \"amount\": 20755,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4194.5,\n      },\n      {\n        \"amount\": 12919,\n        \"price\": 4193.5,\n      },\n      {\n        \"amount\": 72742,\n        \"price\": 4192.5,\n      },\n      {\n        \"amount\": 20803,\n        \"price\": 4191.5,\n      },\n      {\n        \"amount\": 149448,\n        \"price\": 4190.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 249706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 570491,\n        \"price\": 3987,\n      },\n      {\n        \"amount\": 395307,\n        \"price\": 3986,\n      },\n      {\n        \"amount\": 1650006,\n        \"price\": 3985,\n      },\n      {\n        \"amount\": 181921,\n        \"price\": 3984,\n      },\n      {\n        \"amount\": 681391,\n        \"price\": 3983,\n      },\n      {\n        \"amount\": 305942,\n        \"price\": 3982,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.904782Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.904782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2118546,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 429562,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 249706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378890,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.904782Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.904782Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 413681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.918774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.918774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2118546,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 429562,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 249706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 413681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.918774Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.918774Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 408172,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2139936,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.923414Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.923414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2139936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 408172,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 249706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 413681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.923414Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.923414Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2222749,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.933270Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.933270Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2222749,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 408172,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 249706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 413681,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.933270Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.933270Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.935957Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.935957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2222749,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 408172,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 249706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.935957Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.935957Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.945769Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.945769Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2222749,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 408172,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 235989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.945769Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.945769Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.950425Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.950425Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2222749,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 408172,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.950425Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.950425Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2243130,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.956745Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.956745Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2243130,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 408172,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.956745Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.956745Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 405772,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.961121Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.961121Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2243130,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 405772,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.961121Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.961121Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384379,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.966277Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.966277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2243130,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 384379,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.966277Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.966277Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 362987,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.969787Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.969787Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2243130,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 362987,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.969787Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.969787Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341596,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.972765Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.972765Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2243130,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 341596,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.972765Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.972765Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 256476,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 2328250,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.978744Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.978744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2328250,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 256476,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.978744Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.978744Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2331250,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.981222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.981222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2331250,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 256476,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.981222Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.981222Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2421329,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.983128Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.983128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2421329,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 256476,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.983128Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.983128Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 256496,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.989190Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.989190Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2421329,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573166,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 256496,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.989190Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.989190Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.991250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.991250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2421329,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 256496,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.991250Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.991250Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 235102,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:14.995350Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.995350Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2421329,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 235102,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:14.995350Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:14.995350Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.003057Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.003057Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2421329,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 235102,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 401373,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 236857,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 252054,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 246414,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 827793,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 550443,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 383562,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355908,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 220514,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 493848,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 333414,\n        \"price\": 4085,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:15.003057Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2421329,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 235102,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.003057Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.003057Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2421329,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 235102,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:15.003057Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2511410,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.003059Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.003059Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2511410,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 235102,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.003059Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.003059Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.009606Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.009606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2511410,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 233802,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.009606Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.009606Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.017222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.017222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2511410,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.017222Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.017222Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2514410,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.021701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.021701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2514410,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.021701Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.021701Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2604493,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.024374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.024374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2604493,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.024374Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.024374Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2609493,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.032238Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.032238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2609493,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.032238Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.032238Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2614493,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.044536Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.044536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2614493,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.044536Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.044536Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2675671,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.053579Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.053579Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2675671,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 573966,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.053579Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.053579Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70306,\n        \"price\": 4125.5,\n      },\n      {\n        \"amount\": 574006,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.053609Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.053609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2675671,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 574006,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157527,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 412024,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.053609Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.053609Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.056815Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.056815Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2675671,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 574006,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.056815Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.056815Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 400523,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 574056,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.061062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.061062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2675671,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 574056,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400523,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.061062Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.061062Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 226514,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.127304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2675671,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 574056,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:15.127304Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 452571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 2797156,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.127333Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127333Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2797156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 452571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400523,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.127333Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127333Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2814298,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.127339Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2814298,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 452571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400523,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.127339Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127339Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 452573,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.127349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2814298,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 452573,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.127349Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127349Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2847302,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:15.127353Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2847302,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 452573,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:15.127353Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.127353Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 191418,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.707187Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.707187Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2847302,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 452573,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 236989,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 236857,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 252054,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 246414,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 827793,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 550443,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 383562,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355908,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 226514,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 493848,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 333414,\n        \"price\": 4085,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:18.707187Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:16.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2847302,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 452573,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:18.707187Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 479205,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 250075,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 628078,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 509697,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 358434,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 155201,\n        \"price\": 4106.5,\n      },\n      {\n        \"amount\": 383064,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 287108,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 812844,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 136596,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 248952,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 224038,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 362223,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 96442,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 234970,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 218867,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 176598,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 251415,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 354408,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 225014,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 492348,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 331914,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 663982,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.719992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.719992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238915,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 822793,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222514,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 170947,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 348840,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.723043Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.723043Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2847302,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 452573,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.723043Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.723043Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2851301,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.730843Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.730843Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2851301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 452573,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.730843Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.730843Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.733843Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.733843Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2851301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.733843Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.733843Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2875811,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.736920Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.736920Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2875811,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.736920Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.736920Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2895811,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.741226Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.741226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2895811,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157497,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.741226Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.741226Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.752477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.752477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2895811,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 231402,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.752477Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.752477Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 541165,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1774979,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 326914,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.757867Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.757867Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215135,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.759708Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.759708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2895811,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 215135,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.759708Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.759708Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215155,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.761228Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.761228Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2895811,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 215155,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.761228Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.761228Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2912078,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.776285Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.776285Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2912078,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 215155,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.776285Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.776285Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215175,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.785001Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.785001Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2912078,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 215175,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.785001Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.785001Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2024723,\n        \"price\": 4180,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.786756Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.786756Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 97060,\n        \"price\": 3507,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.792812Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.792812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2922078,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.798668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.798668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2922078,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 215175,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377891,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.798668Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.798668Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 354708,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.803015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.803015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2922078,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 215175,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:18.803015Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.806028Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.806028Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2922078,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 215175,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.806028Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.806028Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383262,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.807355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.807355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213875,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.811820Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.811820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2922078,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213875,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.811820Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.811820Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213895,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.814379Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.814379Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2922078,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213895,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.814379Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.814379Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.816552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.816552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213895,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.816552Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.816552Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213915,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.818498Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.818498Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213915,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.818498Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.818498Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213935,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.828360Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.828360Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454173,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213935,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.828360Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.828360Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 454184,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.829851Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.829851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454184,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213935,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.829851Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.829851Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241062,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 152374,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 234664,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 103204,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 223375,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 241813,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 627647,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 614674,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 541809,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 347434,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 377546,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 550765,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.831821Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.831821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213935,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400521,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.831821Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.831821Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 400519,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 213937,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.834411Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.834411Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213937,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 400519,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.834411Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.834411Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 399719,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.837361Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.837361Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213937,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 399719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.837361Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.837361Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 212637,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.843152Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.843152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 212637,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 399719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.843152Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.843152Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 492310,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 78076,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 170871,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 155072,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 136968,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 449829,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 86282,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 160583,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 139721,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 251679,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.843180Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.843180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 360708,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.854366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.854366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377262,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.863674Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.863674Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123204,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 186598,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 594674,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 1764979,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 624279,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 305318,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 560476,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 335917,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.863696Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.863696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.871396Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.871396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 212637,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 399719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.871396Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.871396Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 235857,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.874157Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.874157Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 398719,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.876253Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.876253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 212637,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 398719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.876253Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.876253Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 199137,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.877654Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.877654Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2939132,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 199137,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 398719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.877654Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.877654Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2956198,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.884457Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.884457Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2956198,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 199137,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 398719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.884457Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.884457Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197837,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.893767Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.893767Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2956198,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 197837,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 398719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.893767Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.893767Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197857,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.902872Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.902872Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2956198,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 197857,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 398719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.902872Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.902872Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2956198,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 197837,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:18.902872Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2969698,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.909939Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.909939Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2969698,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 197857,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 398719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.909939Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.909939Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 396719,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.911107Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.911107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2969698,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 197857,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 396719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.911107Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.911107Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.918722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.918722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 196557,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.929045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.929045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2969698,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 196557,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 396719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.929045Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.929045Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 196577,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.937316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.937316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2969698,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 196577,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 396719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.937316Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.937316Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 815026,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.938811Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.938811Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231039,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.943797Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.943797Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 453687,\n        \"price\": 4120.5,\n      },\n      {\n        \"amount\": 245747,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 195852,\n        \"price\": 4065.5,\n      },\n      {\n        \"amount\": 133226,\n        \"price\": 4056.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.950035Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.950035Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 521379,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.952454Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.952454Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2976941,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.958368Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.958368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2976941,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 196577,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 396719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.958368Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.958368Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 352708,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.960002Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.960002Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 397719,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.962301Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.962301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2976941,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 196577,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.962301Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.962301Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.964125Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.964125Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 454506,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 196577,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.964125Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.964125Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.966070Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.966070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 196577,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.966070Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.966070Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 196597,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.970660Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.970660Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 196597,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397719,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.970660Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.970660Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 235846,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.972261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.972261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 196597,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.972261Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.972261Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 550476,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 170583,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.973365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.973365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 195297,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.976903Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.976903Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 195297,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.976903Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.976903Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1500,\n        \"price\": 4376.5,\n      },\n      {\n        \"amount\": 18254,\n        \"price\": 4373.5,\n      },\n      {\n        \"amount\": 915,\n        \"price\": 4346.5,\n      },\n      {\n        \"amount\": 121560,\n        \"price\": 4342.5,\n      },\n      {\n        \"amount\": 806,\n        \"price\": 4315.5,\n      },\n      {\n        \"amount\": 11875,\n        \"price\": 4312.5,\n      },\n      {\n        \"amount\": 8755,\n        \"price\": 4284.5,\n      },\n      {\n        \"amount\": 35438,\n        \"price\": 4281.5,\n      },\n      {\n        \"amount\": 15200,\n        \"price\": 4254.5,\n      },\n      {\n        \"amount\": 31111,\n        \"price\": 4250.5,\n      },\n      {\n        \"amount\": 31078,\n        \"price\": 4223.5,\n      },\n      {\n        \"amount\": 44855,\n        \"price\": 4219.5,\n      },\n      {\n        \"amount\": 72242,\n        \"price\": 4192.5,\n      },\n      {\n        \"amount\": 185119,\n        \"price\": 4189.5,\n      },\n      {\n        \"amount\": 167115,\n        \"price\": 4162.5,\n      },\n      {\n        \"amount\": 198020,\n        \"price\": 4158.5,\n      },\n      {\n        \"amount\": 290798,\n        \"price\": 4131.5,\n      },\n      {\n        \"amount\": 222630,\n        \"price\": 4127.5,\n      },\n      {\n        \"amount\": 230977,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 541875,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 136909,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 139782,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 204170,\n        \"price\": 4050.5,\n      },\n      {\n        \"amount\": 67262,\n        \"price\": 4047.5,\n      },\n      {\n        \"amount\": 240748,\n        \"price\": 4019.5,\n      },\n      {\n        \"amount\": 640957,\n        \"price\": 4016.5,\n      },\n      {\n        \"amount\": 36128,\n        \"price\": 3989.5,\n      },\n      {\n        \"amount\": 132067,\n        \"price\": 3985.5,\n      },\n      {\n        \"amount\": 50725,\n        \"price\": 3958.5,\n      },\n      {\n        \"amount\": 86354,\n        \"price\": 3954.5,\n      },\n      {\n        \"amount\": 32736,\n        \"price\": 3927.5,\n      },\n      {\n        \"amount\": 10015,\n        \"price\": 3924.5,\n      },\n      {\n        \"amount\": 18449,\n        \"price\": 3897.5,\n      },\n      {\n        \"amount\": 18664,\n        \"price\": 3893.5,\n      },\n      {\n        \"amount\": 27008,\n        \"price\": 3866.5,\n      },\n      {\n        \"amount\": 24708,\n        \"price\": 3862.5,\n      },\n      {\n        \"amount\": 19769,\n        \"price\": 3835.5,\n      },\n      {\n        \"amount\": 34826,\n        \"price\": 3832.5,\n      },\n      {\n        \"amount\": 22883,\n        \"price\": 3805.5,\n      },\n      {\n        \"amount\": 57085,\n        \"price\": 3801.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.979357Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.979357Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 304073,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.983081Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.983081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 195317,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.987173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.987173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 195317,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.987173Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.987173Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194017,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:18.993755Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.993755Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 194017,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:18.993755Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:18.993755Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 187183,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.000684Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.000684Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 194017,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 235846,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 252054,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 246414,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 822793,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 550765,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 352708,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 222514,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 492310,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 326914,\n        \"price\": 4085,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:19.000684Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 187183,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.000684Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.000684Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 194017,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:19.000684Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3011109,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.781582Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.781582Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3011109,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 187183,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.781582Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.781582Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2994019,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 187183,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:19.781582Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152979,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.781596Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.781596Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3011109,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 152979,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.781596Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.781596Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.781599Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.781599Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3011109,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 151679,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.781599Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.781599Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248736,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790700Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790700Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3011109,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 151679,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248736,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.790700Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 142452,\n        \"price\": 4216.5,\n      },\n      {\n        \"amount\": 18580,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 867295,\n        \"price\": 4175,\n      },\n      {\n        \"amount\": 913727,\n        \"price\": 4155,\n      },\n      {\n        \"amount\": 49537,\n        \"price\": 4134.5,\n      },\n      {\n        \"amount\": 256243,\n        \"price\": 4114.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1030989,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 192353,\n        \"price\": 4054,\n      },\n      {\n        \"amount\": 338643,\n        \"price\": 4034.5,\n      },\n      {\n        \"amount\": 44399,\n        \"price\": 4014.5,\n      },\n      {\n        \"amount\": 477027,\n        \"price\": 3995,\n      },\n      {\n        \"amount\": 56557,\n        \"price\": 3975.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790736Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1663422,\n        \"price\": 4129,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790745Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790745Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175435,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790748Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790748Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3011109,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 175435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 248736,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.790748Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790748Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790763Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3011109,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 175435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.790763Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790763Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027682,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790789Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790789Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027682,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 175435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 397730,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.790789Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790789Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 395973,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790791Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790791Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027682,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520644,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 175435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 395973,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.790791Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790791Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 395873,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 520744,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790796Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027682,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520744,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 175435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 395873,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.790796Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790796Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 210392,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027682,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520744,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 210392,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 395873,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371591,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.790798Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790798Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266585,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 1951922,\n        \"price\": 4130,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.790801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.790801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.796491Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.796491Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027682,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520744,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 210392,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 395873,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234489,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.796491Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.796491Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 395748,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.796496Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.796496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027682,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520744,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 210392,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 395748,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.796496Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.796496Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.796500Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.796500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027682,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520744,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 395748,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.796500Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.796500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 276054,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 246514,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.802472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.802472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027682,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520744,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:19.802472Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 246914,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 275554,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.808114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.808114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027702,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.818414Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.818414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027702,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520744,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 395748,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.818414Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.818414Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 550376,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.826067Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.826067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 246864,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 520794,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.829035Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.829035Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027702,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 520794,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 395748,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.829035Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.829035Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 174459,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 428480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 549427,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.829068Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.829068Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027702,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 549427,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 428480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.829068Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.829068Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 542054,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.829071Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.829071Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027702,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 542054,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 428480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.829071Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.829071Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 427480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 543054,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.832194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.832194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027702,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 543054,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 427480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.832194Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.832194Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185418,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.832197Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.832197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.832199Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.832199Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027722,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.832202Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.832202Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3027722,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 543054,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 427480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.832202Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.832202Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 729274,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 247233,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.832207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.832207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063356,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.844024Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.844024Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063356,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 543054,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 427480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.844024Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.844024Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 548059,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.846783Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.846783Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063356,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 548059,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 427480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.846783Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.846783Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.872999Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.872999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063356,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 427480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.872999Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.872999Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063376,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.984646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.984646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063376,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 427480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:19.984646Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.984646Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063356,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:19.984646Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1056819,\n        \"price\": 4041,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.992595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.992595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 348860,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:19.996650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:19.996650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157567,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.004622Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.004622Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063376,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 427480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 174459,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 275554,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 247233,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 822793,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 550765,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 352708,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 246514,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 492310,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 326914,\n        \"price\": 4085,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:20.004622Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063376,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:20.004622Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 169916,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.006531Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.006531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.044935Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.044935Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063376,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209092,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234614,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.044935Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.044935Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 234576,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.052091Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.052091Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063376,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234576,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.052091Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.052091Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 2553,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a1d18041-a1c8-5c0a-e3f1-af240ae09f81\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4089.5,\n    \"closeTimestamp\": 2019-04-01T00:00:14.161Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"low\": 4089.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4089.5,\n    \"openTimestamp\": 2019-04-01T00:00:14.139Z,\n    \"sellVolume\": 28000,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:15.000Z,\n    \"trades\": 7,\n    \"type\": \"trade_bar\",\n    \"volume\": 28000,\n    \"vwap\": 4089.5,\n  },\n  {\n    \"amount\": 6000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8f01e8ae-39d4-4686-3de8-60d5597b1ed0\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 21,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9921abb4-b177-89bf-8ad6-1b05ffe71fb4\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9c749853-7858-f32e-8795-d3207cbc0741\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 646514,\n    \"close\": 4089.5,\n    \"closeTimestamp\": 2019-04-01T00:00:20.054Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4091.5,\n    \"interval\": 100,\n    \"kind\": \"tick\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"low\": 4089.5,\n    \"name\": \"trade_bar_100ticks\",\n    \"open\": 4091.5,\n    \"openTimestamp\": 2019-04-01T00:00:05.837Z,\n    \"sellVolume\": 45062,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"trades\": 100,\n    \"type\": \"trade_bar\",\n    \"volume\": 691576,\n    \"vwap\": 4091.3035884703922,\n  },\n  {\n    \"amount\": 34,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d1f763ae-14cb-495b-5032-50e3c7d04e6f\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"price\": 4089.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 4938,\n    \"exchange\": \"bitmex\",\n    \"id\": \"01b63807-a75f-c2b4-2dc0-a44755763b08\",\n    \"localTimestamp\": 2019-04-01T00:00:20.098005Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4089.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.129242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063376,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234576,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.129242Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129242Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063376,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 8553,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 305981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:20.129242Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 301043,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.129275Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129275Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3063376,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234576,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 301043,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.129275Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129275Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2824602,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.129279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2824602,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234576,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 301043,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.129279Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129279Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238774,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.129281Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238774,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2824602,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 301043,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.129281Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129281Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2313895,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 749481,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.129290Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129290Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749481,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2313895,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 301043,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.129290Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129290Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 824696,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.129293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 824696,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 301043,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.129293Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.129293Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 272043,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.494109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.494109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 824696,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 272043,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.494109Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.494109Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 824696,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 301043,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:20.494109Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 844696,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.494112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.494112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 844696,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 272043,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.494112Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.494112Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 272013,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.494120Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.494120Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 844696,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 272013,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.494120Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.494120Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845626,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.494122Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.494122Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845626,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 272013,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.494122Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.494122Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 271763,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.496749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.496749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845626,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 271763,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.496749Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.496749Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 271513,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.504830Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.504830Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845626,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 271513,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.504830Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.504830Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845626,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 271763,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:20.504830Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 261513,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.504909Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.504909Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845626,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 261513,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.504909Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.504909Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 261113,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.507591Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.507591Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845626,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 261113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.507591Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.507591Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.510331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.510331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845626,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2238680,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.510331Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.510331Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2064818,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1019488,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.514198Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.514198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1019488,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2064818,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.514198Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.514198Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1043998,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.515579Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.515579Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1043998,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2064818,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.515579Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.515579Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1052994,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.517082Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.517082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1052994,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2064818,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.517082Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.517082Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1062148,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.520556Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.520556Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1062148,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2064818,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.520556Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.520556Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1071017,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.520571Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.520571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1071017,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2064818,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.520571Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.520571Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1079699,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.522670Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.522670Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1079699,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 2064818,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.522670Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.522670Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1637767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 1506750,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.536827Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.536827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1506750,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1637767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 157080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.536827Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.536827Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 822693,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.553334Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.553334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1506750,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1637767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 411964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.553334Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.553334Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 245233,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 409964,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.555256Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.555256Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1506750,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1637767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409964,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.555256Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.555256Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 718593,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.559513Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.559513Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1506750,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1637767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.559513Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.559513Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68159,\n        \"price\": 4271,\n      },\n      {\n        \"amount\": 11275,\n        \"price\": 4253,\n      },\n      {\n        \"amount\": 92273,\n        \"price\": 4235,\n      },\n      {\n        \"amount\": 58483,\n        \"price\": 4217,\n      },\n      {\n        \"amount\": 301640,\n        \"price\": 4199,\n      },\n      {\n        \"amount\": 51620,\n        \"price\": 4181,\n      },\n      {\n        \"amount\": 227529,\n        \"price\": 4163,\n      },\n      {\n        \"amount\": 998575,\n        \"price\": 4145,\n      },\n      {\n        \"amount\": 576034,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 474980,\n        \"price\": 4109,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.570341Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.570341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4267.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.578641Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.578641Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10522,\n        \"price\": 4287.5,\n      },\n      {\n        \"amount\": 128057,\n        \"price\": 4248,\n      },\n      {\n        \"amount\": 264167,\n        \"price\": 4228.5,\n      },\n      {\n        \"amount\": 38022,\n        \"price\": 4209,\n      },\n      {\n        \"amount\": 316966,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 161560,\n        \"price\": 4169.5,\n      },\n      {\n        \"amount\": 8121921,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 331163,\n        \"price\": 4130.5,\n      },\n      {\n        \"amount\": 132911,\n        \"price\": 4110.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.579976Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.579976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241576,\n        \"price\": 4279,\n      },\n      {\n        \"amount\": 24237,\n        \"price\": 4260.5,\n      },\n      {\n        \"amount\": 95236,\n        \"price\": 4241.5,\n      },\n      {\n        \"amount\": 74403,\n        \"price\": 4222.5,\n      },\n      {\n        \"amount\": 54667,\n        \"price\": 4204,\n      },\n      {\n        \"amount\": 459822,\n        \"price\": 4185,\n      },\n      {\n        \"amount\": 213117,\n        \"price\": 4166.5,\n      },\n      {\n        \"amount\": 470165,\n        \"price\": 4147.5,\n      },\n      {\n        \"amount\": 266802,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 1765045,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.583938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.583938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266318,\n        \"price\": 4275,\n      },\n      {\n        \"amount\": 354418,\n        \"price\": 4256.5,\n      },\n      {\n        \"amount\": 26090,\n        \"price\": 4238.5,\n      },\n      {\n        \"amount\": 1260098,\n        \"price\": 4220,\n      },\n      {\n        \"amount\": 11683,\n        \"price\": 4201.5,\n      },\n      {\n        \"amount\": 152470,\n        \"price\": 4183,\n      },\n      {\n        \"amount\": 73609,\n        \"price\": 4164.5,\n      },\n      {\n        \"amount\": 1924711,\n        \"price\": 4146,\n      },\n      {\n        \"amount\": 979805,\n        \"price\": 4128,\n      },\n      {\n        \"amount\": 586492,\n        \"price\": 4109.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.591036Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.591036Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 57893,\n        \"price\": 4263,\n      },\n      {\n        \"amount\": 29094,\n        \"price\": 4245.5,\n      },\n      {\n        \"amount\": 260731,\n        \"price\": 4228.5,\n      },\n      {\n        \"amount\": 21039,\n        \"price\": 4211.5,\n      },\n      {\n        \"amount\": 179108,\n        \"price\": 4194,\n      },\n      {\n        \"amount\": 574494,\n        \"price\": 4177,\n      },\n      {\n        \"amount\": 155722,\n        \"price\": 4159.5,\n      },\n      {\n        \"amount\": 209688,\n        \"price\": 4142.5,\n      },\n      {\n        \"amount\": 66870,\n        \"price\": 4125.5,\n      },\n      {\n        \"amount\": 624642,\n        \"price\": 4108,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.597043Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.597043Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 244233,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.610149Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.610149Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1506750,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1637767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:20.610149Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 2096827,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.642274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.642274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2096827,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.642274Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.642274Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 273554,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.642304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.642304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 369687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.663821Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.663821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2096827,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 369687,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.663821Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.663821Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233904,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 998155,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.670344Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.670344Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.673995Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.673995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2096827,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.673995Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.673995Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27491,\n        \"price\": 4213.5,\n      },\n      {\n        \"amount\": 98791,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 182933,\n        \"price\": 4172,\n      },\n      {\n        \"amount\": 447576,\n        \"price\": 4151,\n      },\n      {\n        \"amount\": 331103,\n        \"price\": 4130.5,\n      },\n      {\n        \"amount\": 1765015,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 598057,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 81375,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 255673,\n        \"price\": 4029,\n      },\n      {\n        \"amount\": 171649,\n        \"price\": 4009,\n      },\n      {\n        \"amount\": 279818,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 42807,\n        \"price\": 3969.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.680675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.680675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1300469,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 1951672,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 2331309,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 1764765,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 3327852,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 521129,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1500743,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1177910,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1843762,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 2722951,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.694207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.694207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184983,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 456139,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 288705,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 317178,\n        \"price\": 3964,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.698566Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.698566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749487,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 683021,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.702783Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.702783Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2096827,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 547571,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:20.702783Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1157451,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 1764705,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 812784,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 3327792,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 729214,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 326854,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 521069,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 950908,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1500683,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 682961,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.708056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.708056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2330643,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 3327126,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1177244,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2722285,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.711711Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.711711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 538673,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 2087958,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.718825Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.718825Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2087958,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 538673,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.718825Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.718825Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 173618,\n        \"price\": 5000,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 102294,\n        \"price\": 1000,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.720152Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.720152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8121621,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 749187,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 3326826,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1843462,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 1908066,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 1754910,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 508157,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 1610896,\n        \"price\": 3950,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.724135Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.724135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 376546,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.748131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.748131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 529970,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 2079276,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.753781Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.753781Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2079276,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 529970,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.753781Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.753781Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550661,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.755939Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.755939Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72655,\n        \"price\": 3884.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.756740Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.756740Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550581,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.773016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.773016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 29000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c700fbd1-f7bf-857b-6687-00f09968adb5\",\n    \"localTimestamp\": 2019-04-01T00:00:20.774965Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.373Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1a8b354e-09a2-1f1a-043f-d552c1f519d8\",\n    \"localTimestamp\": 2019-04-01T00:00:20.786410Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.384Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 250,\n    \"exchange\": \"bitmex\",\n    \"id\": \"302f6a40-07e3-7c50-25e9-32e7ea37e820\",\n    \"localTimestamp\": 2019-04-01T00:00:20.786441Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.392Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 250,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af99dcf0-f0fb-85e0-3585-6b6ec2638af8\",\n    \"localTimestamp\": 2019-04-01T00:00:20.786445Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.405Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5d46f131-a8a7-6f6e-d367-b3d7fc51b666\",\n    \"localTimestamp\": 2019-04-01T00:00:20.786448Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.414Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 400,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e6dfe393-c1f3-0cc6-ce2f-584e5387d011\",\n    \"localTimestamp\": 2019-04-01T00:00:20.786459Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.425Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 25000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6eb4d999-c285-37a5-2e0a-580a1de74b1b\",\n    \"localTimestamp\": 2019-04-01T00:00:20.796738Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.431Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 544581,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 83282,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.885680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.885680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2079276,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 529970,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:20.885680Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.942588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.942588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 529970,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:20.942588Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.942588Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758979,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:20.980396Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.980396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 15,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.001031Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.001031Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 529970,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 234576,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 169916,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 273554,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 244233,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 822693,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 352708,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 246514,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 492310,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 326854,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 78076,\n        \"price\": 4084.5,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:21.001031Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 529970,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:21.001031Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 16,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.001062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.001062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 235813,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.001930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.001930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 529970,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 235813,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 409954,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.001930Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.001930Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.009147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.009147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 529970,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 235813,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.009147Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.009147Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 206909,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.025127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.025127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 529970,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 206909,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.025127Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.025127Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66572,\n        \"price\": 4140.5,\n      },\n      {\n        \"amount\": 185726,\n        \"price\": 4127.5,\n      },\n      {\n        \"amount\": 419250,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 149725,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 106141,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 244151,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 124366,\n        \"price\": 4058.5,\n      },\n      {\n        \"amount\": 45319,\n        \"price\": 4048.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.028797Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.028797Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 530404,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036329Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 530404,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 206909,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 156980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.036329Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036329Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 151980,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 530404,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 206909,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 151980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.036331Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036331Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 729199,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036339Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 346708,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036341Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 363262,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036343Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 530404,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 206909,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 151980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.036343Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036343Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 339708,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036345Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036345Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 486310,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036347Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036347Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 802693,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 204175,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 530404,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204175,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 151980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363262,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.036356Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036356Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 382933,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 627566,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 376497,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 244201,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036359Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1758969,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 363252,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.036361Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036361Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 530404,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204175,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 151980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367177,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363252,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.036361Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.036361Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 367145,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 486294,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 326838,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 136877,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 304041,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 272316,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 125792,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.047173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.047173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 530404,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204175,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 151980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367145,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.047173Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.047173Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231904,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 626566,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 168916,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 484294,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 325838,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.047176Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.047176Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.056235Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.056235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 530404,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 151980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367145,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.056235Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.056235Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 179418,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.056271Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.056271Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 531766,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.078762Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.078762Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 531766,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367232,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 151980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 367145,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.078762Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.078762Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 480,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e6f2935e-130f-16fa-a72a-5f2854020a8c\",\n    \"localTimestamp\": 2019-04-01T00:00:21.162267Z,\n    \"price\": 4089.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.750Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 951340,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 372897,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 541431,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 799993,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 241951,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 271754,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 167566,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 233676,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 366782,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 148830,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 321788,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162325Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 531766,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366782,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148830,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.162325Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162325Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2078796,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 531766,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 151980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:21.162325Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149690,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 303936,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 212757,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 328511,\n        \"price\": 4061,\n      },\n      {\n        \"amount\": 1056714,\n        \"price\": 4041,\n      },\n      {\n        \"amount\": 1322982,\n        \"price\": 4011,\n      },\n      {\n        \"amount\": 443761,\n        \"price\": 3961,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162329Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bdb2bff2-52bd-762d-b7c6-558e2f57824a\",\n    \"localTimestamp\": 2019-04-01T00:00:21.162332Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.795Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1435563,\n        \"price\": 4070,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162334Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522822,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 2069800,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162341Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2069800,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 522822,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366782,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148830,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.162341Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162341Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162344Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162344Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366782,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148830,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.162344Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162344Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233629,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162346Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162346Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 271679,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 167491,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 233554,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162373Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162373Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148830,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 337454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.162373Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162373Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1753969,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 794993,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 332454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 316788,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.162376Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 209130,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148830,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.162376Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.162376Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 300,\n    \"exchange\": \"bitmex\",\n    \"id\": \"431e63d3-c2d6-ab70-ef30-61ddacdf579c\",\n    \"localTimestamp\": 2019-04-01T00:00:21.205207Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.874Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2434,\n    \"exchange\": \"bitmex\",\n    \"id\": \"30fb908c-6edc-41ff-5d3b-f3909b37a8b3\",\n    \"localTimestamp\": 2019-04-01T00:00:21.205207Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.874Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 816,\n    \"exchange\": \"bitmex\",\n    \"id\": \"67e87ae8-9feb-c478-845b-884bf7f1e8be\",\n    \"localTimestamp\": 2019-04-01T00:00:21.253583Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:20.962Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233435,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.264024Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.264024Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1047690,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148830,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332454,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:21.264024Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 728732,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.267853Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.267853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 270679,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.326615Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.326615Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153772,\n        \"price\": 4169,\n      },\n      {\n        \"amount\": 192417,\n        \"price\": 4167,\n      },\n      {\n        \"amount\": 535283,\n        \"price\": 4165.5,\n      },\n      {\n        \"amount\": 183783,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 116909,\n        \"price\": 4162,\n      },\n      {\n        \"amount\": 97279,\n        \"price\": 4160.5,\n      },\n      {\n        \"amount\": 544168,\n        \"price\": 4159,\n      },\n      {\n        \"amount\": 233135,\n        \"price\": 4157,\n      },\n      {\n        \"amount\": 121197,\n        \"price\": 4155.5,\n      },\n      {\n        \"amount\": 114075,\n        \"price\": 4154,\n      },\n      {\n        \"amount\": 1601254,\n        \"price\": 4152,\n      },\n      {\n        \"amount\": 103154,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 637367,\n        \"price\": 4149,\n      },\n      {\n        \"amount\": 453634,\n        \"price\": 4147,\n      },\n      {\n        \"amount\": 473115,\n        \"price\": 4145.5,\n      },\n      {\n        \"amount\": 1781236,\n        \"price\": 4144,\n      },\n      {\n        \"amount\": 390130,\n        \"price\": 4142,\n      },\n      {\n        \"amount\": 65372,\n        \"price\": 4140.5,\n      },\n      {\n        \"amount\": 594696,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 241335,\n        \"price\": 4137,\n      },\n      {\n        \"amount\": 134335,\n        \"price\": 4135.5,\n      },\n      {\n        \"amount\": 1408944,\n        \"price\": 4134,\n      },\n      {\n        \"amount\": 284410,\n        \"price\": 4132,\n      },\n      {\n        \"amount\": 329903,\n        \"price\": 4130.5,\n      },\n      {\n        \"amount\": 1662222,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 184526,\n        \"price\": 4127.5,\n      },\n      {\n        \"amount\": 65670,\n        \"price\": 4125.5,\n      },\n      {\n        \"amount\": 317474,\n        \"price\": 4124,\n      },\n      {\n        \"amount\": 979081,\n        \"price\": 4122.5,\n      },\n      {\n        \"amount\": 452487,\n        \"price\": 4120.5,\n      },\n      {\n        \"amount\": 685025,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 528478,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 409314,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 418050,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 85622,\n        \"price\": 4112.5,\n      },\n      {\n        \"amount\": 244547,\n        \"price\": 4111,\n      },\n      {\n        \"amount\": 473780,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 508497,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 381733,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 247752,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 122004,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 148490,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 625366,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 540675,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 717393,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 540231,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.353679Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.353679Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 187735,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.371570Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.371570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 187735,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148830,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332454,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.371570Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.371570Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 332409,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.377395Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.377395Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 187735,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148830,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332409,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.377395Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.377395Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 540078,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.381014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.381014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10830,\n        \"price\": 4419,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.427091Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.427091Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148830,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332409,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:21.427091Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 406853,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 379272,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 146029,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 712471,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 169772,\n        \"price\": 3976,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.430687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.430687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.445157Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.445157Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1843062,\n        \"price\": 4050,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.462161Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.462161Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 532078,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.533221Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.533221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 512909,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.543344Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.543344Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 166741,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.544914Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.544914Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1600054,\n        \"price\": 4152,\n      },\n      {\n        \"amount\": 246177,\n        \"price\": 4123,\n      },\n      {\n        \"amount\": 811884,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 531328,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 148080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 271416,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 276808,\n        \"price\": 4055.5,\n      },\n      {\n        \"amount\": 561082,\n        \"price\": 4028.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.584274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.584274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 187735,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332409,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.584274Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.584274Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1035168,\n        \"price\": 4188,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.630473Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.630473Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332409,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:21.630473Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 16,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.635447Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.635447Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 17,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.635473Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.635473Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377165,\n        \"price\": 4198.5,\n      },\n      {\n        \"amount\": 399340,\n        \"price\": 4196.5,\n      },\n      {\n        \"amount\": 94486,\n        \"price\": 4194.5,\n      },\n      {\n        \"amount\": 72042,\n        \"price\": 4192.5,\n      },\n      {\n        \"amount\": 149248,\n        \"price\": 4190.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 332209,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395107,\n        \"price\": 3986,\n      },\n      {\n        \"amount\": 181721,\n        \"price\": 3984,\n      },\n      {\n        \"amount\": 305742,\n        \"price\": 3982,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.662238Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.662238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 187735,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332209,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.662238Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.662238Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233335,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.691322Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.691322Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 241379,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.705347Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.705347Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332209,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:21.705347Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233235,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.713749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.713749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 186435,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.751361Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.751361Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 186435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 148080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332209,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.751361Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.751361Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 147080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331209,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.763600Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.763600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 186435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 147080,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331209,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.763600Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.763600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 146980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331109,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.766546Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.766546Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 186435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331109,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 363199,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.766546Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.766546Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 359151,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.774089Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.774089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 186435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331109,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 359151,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.774089Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.774089Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 347419,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 225679,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 389799,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.796569Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.796569Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224282,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.827365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.827365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146980,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331109,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:21.827365Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233220,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.839303Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.839303Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 69061,\n        \"price\": 4151.5,\n      },\n      {\n        \"amount\": 317404,\n        \"price\": 4124,\n      },\n      {\n        \"amount\": 811824,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 531278,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 271356,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 276738,\n        \"price\": 4055.5,\n      },\n      {\n        \"amount\": 561002,\n        \"price\": 4028.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.866011Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.866011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 186435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331109,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 359151,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.866011Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.866011Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238801,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.897865Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.897865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 237574,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.903639Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.903639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331109,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:21.903639Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 236497,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.911639Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.911639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 338141,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.927834Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.927834Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224182,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.933033Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.933033Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4847,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4819,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4791,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4707,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.962685Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.962685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 300,\n        \"price\": 4903,\n      },\n      {\n        \"amount\": 5050,\n        \"price\": 4875,\n      },\n      {\n        \"amount\": 5020,\n        \"price\": 4763,\n      },\n      {\n        \"amount\": 4300,\n        \"price\": 4735,\n      },\n      {\n        \"amount\": 33610,\n        \"price\": 4679,\n      },\n      {\n        \"amount\": 500,\n        \"price\": 4651,\n      },\n      {\n        \"amount\": 25550,\n        \"price\": 4624,\n      },\n      {\n        \"amount\": 15700,\n        \"price\": 4596,\n      },\n      {\n        \"amount\": 60400,\n        \"price\": 4568,\n      },\n      {\n        \"amount\": 33850,\n        \"price\": 4540,\n      },\n      {\n        \"amount\": 3811,\n        \"price\": 4512,\n      },\n      {\n        \"amount\": 6202,\n        \"price\": 4484,\n      },\n      {\n        \"amount\": 11468,\n        \"price\": 4456,\n      },\n      {\n        \"amount\": 18338,\n        \"price\": 4428,\n      },\n      {\n        \"amount\": 1295247,\n        \"price\": 4400,\n      },\n      {\n        \"amount\": 20111,\n        \"price\": 4372,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 403161,\n        \"price\": 4004,\n      },\n      {\n        \"amount\": 2524877,\n        \"price\": 3980,\n      },\n      {\n        \"amount\": 307627,\n        \"price\": 3957,\n      },\n      {\n        \"amount\": 578691,\n        \"price\": 3933,\n      },\n      {\n        \"amount\": 85264,\n        \"price\": 3909,\n      },\n      {\n        \"amount\": 168436,\n        \"price\": 3886,\n      },\n      {\n        \"amount\": 141744,\n        \"price\": 3862,\n      },\n      {\n        \"amount\": 260174,\n        \"price\": 3839,\n      },\n      {\n        \"amount\": 286923,\n        \"price\": 3815,\n      },\n      {\n        \"amount\": 170849,\n        \"price\": 3791,\n      },\n      {\n        \"amount\": 51650,\n        \"price\": 3768,\n      },\n      {\n        \"amount\": 155247,\n        \"price\": 3744,\n      },\n      {\n        \"amount\": 405747,\n        \"price\": 3720,\n      },\n      {\n        \"amount\": 119000,\n        \"price\": 3697,\n      },\n      {\n        \"amount\": 53066,\n        \"price\": 3673,\n      },\n      {\n        \"amount\": 3087942,\n        \"price\": 3650,\n      },\n      {\n        \"amount\": 80530,\n        \"price\": 3626,\n      },\n      {\n        \"amount\": 101753,\n        \"price\": 3602,\n      },\n      {\n        \"amount\": 14956,\n        \"price\": 3579,\n      },\n      {\n        \"amount\": 309516,\n        \"price\": 3555,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.962716Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.962716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 379016,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3326570,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1753713,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 794481,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 306883,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.981103Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.981103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 359140,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.984552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.984552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 186435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331109,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 359140,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.984552Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.984552Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.987489Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.987489Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 186435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331109,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 359140,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:21.987489Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.987489Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232816,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.991099Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.991099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232796,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:21.998156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.998156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 723632,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.004965Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.004965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 186435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 232796,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 166741,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 224182,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 236497,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 794481,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331109,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363545,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 359140,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338141,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 246514,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 484294,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 316788,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 78076,\n        \"price\": 4084.5,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:22.004965Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331109,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:22.004965Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 720732,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.004968Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.004968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 299855,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 534060,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 219067,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.020980Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.020980Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231949,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.023101Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.023101Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 712289,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 372715,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 720550,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 531096,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 794299,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 359128,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338129,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 246502,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.028281Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.028281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 186435,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 359128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.028281Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.028281Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185135,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.031215Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.031215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 185135,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 359128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.031215Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.031215Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 229229,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 316748,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.033184Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.033184Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160625,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.043158Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.043158Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 160625,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 359128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.043158Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.043158Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 528196,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.046376Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.046376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160613,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.049067Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.049067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 160613,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 359128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.049067Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.049067Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 663481,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.053450Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.053450Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226429,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 313948,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.055949Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.055949Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 358128,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.057019Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.057019Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 160613,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 358128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.057019Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.057019Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 159313,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.065818Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.065818Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 159313,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 358128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.065818Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.065818Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244302,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 311748,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.071029Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.071029Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156913,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.073096Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.073096Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 156913,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 358128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.073096Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.073096Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135171,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.075170Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.075170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135171,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 358128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.075170Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.075170Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 124771,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.078982Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.078982Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 124771,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 358128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.078982Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.078982Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 242102,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 309548,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.084254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.084254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378752,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3326306,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1753449,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 793771,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 241148,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.088284Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.088284Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 122371,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.091230Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.091230Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 122371,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 358128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.091230Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.091230Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 119971,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.101302Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.101302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 119971,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 358128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.101302Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.101302Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:22.101302Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 116771,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.109726Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.109726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 116771,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 358128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.109726Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.109726Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 113571,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.109729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.109729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 113571,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 358128,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.109729Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.109729Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 330952,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.114629Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.114629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 113571,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.114629Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.114629Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.114655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.114655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 113571,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.114655Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.114655Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112271,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.139673Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.139673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 112271,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 363533,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.139673Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.139673Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.139701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.139701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 112271,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.139701Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.139701Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472,\n        \"price\": 4314,\n      },\n      {\n        \"amount\": 1706,\n        \"price\": 4277.5,\n      },\n      {\n        \"amount\": 9350,\n        \"price\": 4240.5,\n      },\n      {\n        \"amount\": 2214,\n        \"price\": 4203.5,\n      },\n      {\n        \"amount\": 164529,\n        \"price\": 4167,\n      },\n      {\n        \"amount\": 1937729,\n        \"price\": 4130,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 124350,\n        \"price\": 4056.5,\n      },\n      {\n        \"amount\": 222996,\n        \"price\": 4019.5,\n      },\n      {\n        \"amount\": 243632,\n        \"price\": 3982.5,\n      },\n      {\n        \"amount\": 295799,\n        \"price\": 3946,\n      },\n      {\n        \"amount\": 40884,\n        \"price\": 3909,\n      },\n      {\n        \"amount\": 112067,\n        \"price\": 3872,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.150696Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.150696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 64,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0316a323-c0bb-b3cb-0b32-855001d97549\",\n    \"localTimestamp\": 2019-04-01T00:00:22.150727Z,\n    \"price\": 4089.5,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.130Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 480,\n    \"close\": 4089,\n    \"closeTimestamp\": 2019-04-01T00:00:20.962Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:22.150727Z,\n    \"low\": 4089,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4089.5,\n    \"openTimestamp\": 2019-04-01T00:00:20.054Z,\n    \"sellVolume\": 82348,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:21.000Z,\n    \"trades\": 18,\n    \"type\": \"trade_bar\",\n    \"volume\": 82828,\n    \"vwap\": 4089.0549934804653,\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 109871,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.154753Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.154753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 109871,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.154753Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.154753Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 85381,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.171871Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.171871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 85381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.171871Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.171871Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219129,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.192816Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.192816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.197499Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.197499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 85381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.197499Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.197499Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378493,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3326047,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1753190,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 793253,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 295919,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.214208Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.214208Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 146930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:22.214208Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 6136,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.235933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.235933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.241441Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.241441Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 513724,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 85381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.241441Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.241441Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 508719,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.245198Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.245198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1026300,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 508719,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 85381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.245198Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.245198Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 17,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.255475Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.255475Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 18,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.255503Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.255503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1010052,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.255507Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.255507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1010052,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 508719,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 85381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.255507Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.255507Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1008752,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.268592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.268592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1008752,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 508719,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 85381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.268592Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.268592Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484209,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.270175Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.270175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1008752,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 484209,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 85381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.270175Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.270175Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 481489,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.272127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.272127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1008752,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 481489,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 85381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.272127Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.272127Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.274308Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.274308Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1008752,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 481489,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.274308Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.274308Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 231148,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.276791Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.276791Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 456979,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.280603Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.280603Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1008752,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 456979,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.280603Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.280603Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 479759,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.290329Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.290329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36411,\n        \"price\": 4488,\n      },\n      {\n        \"amount\": 5534,\n        \"price\": 4484,\n      },\n      {\n        \"amount\": 93381,\n        \"price\": 4480,\n      },\n      {\n        \"amount\": 2500,\n        \"price\": 4476,\n      },\n      {\n        \"amount\": 5575,\n        \"price\": 4472,\n      },\n      {\n        \"amount\": 14700,\n        \"price\": 4468,\n      },\n      {\n        \"amount\": 5961,\n        \"price\": 4464,\n      },\n      {\n        \"amount\": 110050,\n        \"price\": 4460,\n      },\n      {\n        \"amount\": 10800,\n        \"price\": 4456,\n      },\n      {\n        \"amount\": 4616,\n        \"price\": 4452,\n      },\n      {\n        \"amount\": 39583,\n        \"price\": 4448,\n      },\n      {\n        \"amount\": 164678,\n        \"price\": 4444,\n      },\n      {\n        \"amount\": 84950,\n        \"price\": 4440,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 4436,\n      },\n      {\n        \"amount\": 5500,\n        \"price\": 4432,\n      },\n      {\n        \"amount\": 17670,\n        \"price\": 4428,\n      },\n      {\n        \"amount\": 5950,\n        \"price\": 4424,\n      },\n      {\n        \"amount\": 524455,\n        \"price\": 4420,\n      },\n      {\n        \"amount\": 1148,\n        \"price\": 4416,\n      },\n      {\n        \"amount\": 14518,\n        \"price\": 4412,\n      },\n      {\n        \"amount\": 22905,\n        \"price\": 4408,\n      },\n      {\n        \"amount\": 5100,\n        \"price\": 4404,\n      },\n      {\n        \"amount\": 1294579,\n        \"price\": 4400,\n      },\n      {\n        \"amount\": 600,\n        \"price\": 4396,\n      },\n      {\n        \"amount\": 1815,\n        \"price\": 4392,\n      },\n      {\n        \"amount\": 19641,\n        \"price\": 4388,\n      },\n      {\n        \"amount\": 11567,\n        \"price\": 4384,\n      },\n      {\n        \"amount\": 163652,\n        \"price\": 4380,\n      },\n      {\n        \"amount\": 81030,\n        \"price\": 4376,\n      },\n      {\n        \"amount\": 19443,\n        \"price\": 4372,\n      },\n      {\n        \"amount\": 153794,\n        \"price\": 4368,\n      },\n      {\n        \"amount\": 11246,\n        \"price\": 4364,\n      },\n      {\n        \"amount\": 134647,\n        \"price\": 4360,\n      },\n      {\n        \"amount\": 1251,\n        \"price\": 4356,\n      },\n      {\n        \"amount\": 78738,\n        \"price\": 4352,\n      },\n      {\n        \"amount\": 110009,\n        \"price\": 4348,\n      },\n      {\n        \"amount\": 168616,\n        \"price\": 4344,\n      },\n      {\n        \"amount\": 181930,\n        \"price\": 4340,\n      },\n      {\n        \"amount\": 1080,\n        \"price\": 4336,\n      },\n      {\n        \"amount\": 10700,\n        \"price\": 4332,\n      },\n      {\n        \"amount\": 142640,\n        \"price\": 4328,\n      },\n      {\n        \"amount\": 15330,\n        \"price\": 4324,\n      },\n      {\n        \"amount\": 416046,\n        \"price\": 4320,\n      },\n      {\n        \"amount\": 103488,\n        \"price\": 4316,\n      },\n      {\n        \"amount\": 20100,\n        \"price\": 4312,\n      },\n      {\n        \"amount\": 12850,\n        \"price\": 4308,\n      },\n      {\n        \"amount\": 25244,\n        \"price\": 4304,\n      },\n      {\n        \"amount\": 769493,\n        \"price\": 4300,\n      },\n      {\n        \"amount\": 122753,\n        \"price\": 4296,\n      },\n      {\n        \"amount\": 157472,\n        \"price\": 4292,\n      },\n      {\n        \"amount\": 111324,\n        \"price\": 4288,\n      },\n      {\n        \"amount\": 27357,\n        \"price\": 4284,\n      },\n      {\n        \"amount\": 292332,\n        \"price\": 4280,\n      },\n      {\n        \"amount\": 93620,\n        \"price\": 4276,\n      },\n      {\n        \"amount\": 52638,\n        \"price\": 4272,\n      },\n      {\n        \"amount\": 55624,\n        \"price\": 4268,\n      },\n      {\n        \"amount\": 456118,\n        \"price\": 4264,\n      },\n      {\n        \"amount\": 390883,\n        \"price\": 4260,\n      },\n      {\n        \"amount\": 15016,\n        \"price\": 4256,\n      },\n      {\n        \"amount\": 29050,\n        \"price\": 4252,\n      },\n      {\n        \"amount\": 127389,\n        \"price\": 4248,\n      },\n      {\n        \"amount\": 56160,\n        \"price\": 4244,\n      },\n      {\n        \"amount\": 544929,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 86922,\n        \"price\": 4236,\n      },\n      {\n        \"amount\": 23119,\n        \"price\": 4232,\n      },\n      {\n        \"amount\": 444652,\n        \"price\": 4228,\n      },\n      {\n        \"amount\": 53972,\n        \"price\": 4224,\n      },\n      {\n        \"amount\": 1259430,\n        \"price\": 4220,\n      },\n      {\n        \"amount\": 80522,\n        \"price\": 4216,\n      },\n      {\n        \"amount\": 198144,\n        \"price\": 4212,\n      },\n      {\n        \"amount\": 79139,\n        \"price\": 4208,\n      },\n      {\n        \"amount\": 53999,\n        \"price\": 4204,\n      },\n      {\n        \"amount\": 4151098,\n        \"price\": 4200,\n      },\n      {\n        \"amount\": 129488,\n        \"price\": 4196,\n      },\n      {\n        \"amount\": 772240,\n        \"price\": 4192,\n      },\n      {\n        \"amount\": 1034500,\n        \"price\": 4188,\n      },\n      {\n        \"amount\": 89594,\n        \"price\": 4184,\n      },\n      {\n        \"amount\": 2024055,\n        \"price\": 4180,\n      },\n      {\n        \"amount\": 2087400,\n        \"price\": 4176,\n      },\n      {\n        \"amount\": 182265,\n        \"price\": 4172,\n      },\n      {\n        \"amount\": 496653,\n        \"price\": 4168,\n      },\n      {\n        \"amount\": 183115,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1666331,\n        \"price\": 4160,\n      },\n      {\n        \"amount\": 243536,\n        \"price\": 4156,\n      },\n      {\n        \"amount\": 1599386,\n        \"price\": 4152,\n      },\n      {\n        \"amount\": 2675372,\n        \"price\": 4148,\n      },\n      {\n        \"amount\": 1780568,\n        \"price\": 4144,\n      },\n      {\n        \"amount\": 1299801,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 196320,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 283742,\n        \"price\": 4132,\n      },\n      {\n        \"amount\": 979137,\n        \"price\": 4128,\n      },\n      {\n        \"amount\": 316736,\n        \"price\": 4124,\n      },\n      {\n        \"amount\": 2329975,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 406185,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 380976,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 623974,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 247084,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 3325379,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 711621,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 232128,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.322381Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.322381Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 1008752,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 456979,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:22.322381Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231128,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.322427Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.322427Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227928,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.328090Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.328090Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 923632,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.330347Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.330347Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 923632,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 456979,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.330347Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.330347Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 443479,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.332274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.332274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 923632,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 443479,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 115358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.332274Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.332274Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.339274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.339274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 923632,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 443479,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.339274Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.339274Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 802147,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.349298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.349298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 802147,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 443479,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366707,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145930,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331097,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330311,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322952,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.349298Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.349298Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625348,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 815008,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 594656,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 951322,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 540657,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1753172,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 347401,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 711603,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 372697,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 720532,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 528178,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 793235,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 219111,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 224164,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 166723,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 227910,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 366689,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 231112,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 479723,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 309512,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 78040,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 663445,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 170835,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 624243,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 155036,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 306847,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.377570Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.377570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 802147,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 443479,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366689,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.377570Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.377570Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 782235,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.381799Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.381799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 307169,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.391997Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.391997Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 159448,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.393978Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.393978Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 418989,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.402161Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.402161Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 802147,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 418989,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366689,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.402161Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.402161Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 802147,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 443479,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:22.402161Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8182.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.417698Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.417698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384785,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.417723Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.417723Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 802147,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 384785,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366689,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.417723Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.417723Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 781766,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.427134Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.427134Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 781766,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 384785,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366689,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.427134Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.427134Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 691685,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.428379Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.428379Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 691685,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 384785,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366689,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.428379Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.428379Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 363803,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.435352Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.435352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 691685,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 384785,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 363803,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.435352Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.435352Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1662220,\n        \"price\": 4129,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.442201Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.442201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 608872,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.448124Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.448124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 608872,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 384785,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 363803,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.448124Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.448124Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 781835,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.448153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.448153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518793,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.452127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.452127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 518793,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 384785,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 363803,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.452127Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.452127Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 428710,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.456115Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.456115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 428710,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 384785,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 363803,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.456115Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.456115Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 646067,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.457102Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.457102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 428710,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 384785,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.457102Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.457102Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.459695Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.459695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 384785,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.459695Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.459695Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383985,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.469938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.469938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 383985,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.469938Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.469938Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377151,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.469970Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.469970Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 377151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322916,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.469970Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.469970Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378405,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3325291,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1753084,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 781659,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 306705,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.480924Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.480924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378231,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3325117,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1752910,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 781311,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.486540Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.486540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 377151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 330275,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.486540Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.486540Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 56402,\n        \"price\": 3783,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.494542Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.494542Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378143,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3325029,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1752822,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 781135,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 230794,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.507375Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.507375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 377151,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:22.507375Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 361300,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 121081,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 230981,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 222452,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 145106,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 230054,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3324106,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 624425,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 814085,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 593733,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 950399,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 539734,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1751899,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 346478,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 645144,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 306246,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 719609,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 527255,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 780212,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.518665Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.518665Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 7364,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.522929Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.522929Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127038,\n        \"price\": 4135.5,\n      },\n      {\n        \"amount\": 445176,\n        \"price\": 4120.5,\n      },\n      {\n        \"amount\": 239356,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 229517,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 812866,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 345502,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 526523,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 158959,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 227666,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 478746,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 623022,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 511443,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 217356,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 266745,\n        \"price\": 4061.5,\n      },\n      {\n        \"amount\": 182093,\n        \"price\": 4046.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.529353Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.529353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 377151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145894,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.529353Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.529353Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377960,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3323923,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1751716,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 779846,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 230132,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.545879Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.545879Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525523,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.548977Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.548977Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.561580Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.561580Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 377151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.561580Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.561580Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.619820Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.619820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65381,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.619820Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.619820Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 377151,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:22.619820Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377872,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3323835,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1751628,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 779670,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 229814,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.619847Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.619847Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 158800,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.619911Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.619911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1002500,\n        \"price\": 4188,\n      },\n      {\n        \"amount\": 509683,\n        \"price\": 4165.5,\n      },\n      {\n        \"amount\": 45188,\n        \"price\": 4143.5,\n      },\n      {\n        \"amount\": 426555,\n        \"price\": 4121.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 651230,\n        \"price\": 4046,\n      },\n      {\n        \"amount\": 579070,\n        \"price\": 4024.5,\n      },\n      {\n        \"amount\": 308002,\n        \"price\": 4002,\n      },\n      {\n        \"amount\": 186621,\n        \"price\": 3980.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.632472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.632472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378996,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 357444,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 360640,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 3323505,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1751408,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 719499,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 158712,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 227622,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.640220Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.640220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 846704,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 376944,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 809772,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 946295,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 327284,\n        \"price\": 3952,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.696277Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.696277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65361,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703614Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703614Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65361,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.703614Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703614Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:22.703614Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 844801,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 375041,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 807869,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 942489,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1063050,\n        \"price\": 3940,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703636Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65341,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703645Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65341,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.703645Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703645Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65321,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703685Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65321,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.703685Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703685Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 18,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 19,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65301,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703692Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65301,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.703692Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703692Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65281,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703694Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703694Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65281,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.703694Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703694Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65261,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.703715Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703715Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65261,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.703715Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.703715Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65241,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.712798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.712798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65241,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.712798Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.712798Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65221,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.713988Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.713988Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 65221,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.713988Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.713988Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 177546,\n        \"price\": 3969,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.727050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.727050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589733,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.738607Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.738607Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 62221,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.761666Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.761666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 62221,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.761666Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.761666Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59221,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.763337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.763337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59221,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.763337Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.763337Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 524823,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.771152Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.771152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.772822Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.772822Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59221,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145884,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.772822Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.772822Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 692806,\n        \"price\": 4158,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.812926Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.812926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.820826Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.820826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59221,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.820826Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.820826Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 539634,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.826416Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.826416Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.836553Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.836553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 367532,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.836553Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.836553Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351265,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.857283Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.857283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 351265,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227151,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.857283Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.857283Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 166306,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.874949Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.874949Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227140,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.877915Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.877915Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 351265,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227140,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.877915Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.877915Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227390,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.882151Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.882151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 37134,\n        \"price\": 4134.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.893206Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.893206Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 229537,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.895781Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.895781Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 24731,\n        \"price\": 4134.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.897440Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.897440Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198507,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.907326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.907326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 351265,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 198507,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.907326Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.907326Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 351265,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 227140,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:22.907326Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 337765,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.910331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.910331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 337765,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 198507,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.910331Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.910331Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 218911,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.919151Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.919151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 313255,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.924236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.924236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 313255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 198507,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 111858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.924236Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.924236Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 182705,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.926305Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.926305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 206705,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.938529Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.938529Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 116858,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.966351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.966351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 313255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 198507,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 116858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.966351Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.966351Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101081,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 135106,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.970605Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.970605Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 7000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d0546abb-699c-57eb-1bae-67e065f5007f\",\n    \"localTimestamp\": 2019-04-01T00:00:22.989731Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.965Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 19,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.993650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.993650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 20,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.993676Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.993676Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377696,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3323329,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1751232,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 779318,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 228901,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.993687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.993687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 303255,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:22.997660Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.997660Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 303255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 198507,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 116858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:22.997660Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:22.997660Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 134712,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 204901,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.002029Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.002029Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 303255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 198507,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 227390,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 166306,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 158712,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 218911,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 779318,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 116858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 228901,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 478746,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 309512,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 78040,\n        \"price\": 4084.5,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:23.002029Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 303255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 198507,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 116858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:23.002029Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132369,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.013448Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.013448Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 303255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132369,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 116858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.013448Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.013448Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 109858,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.015761Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.015761Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 303255,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132369,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 109858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.015761Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.015761Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227290,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.026665Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.026665Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 638144,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.038501Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.038501Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96141,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 315917,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.043219Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.043219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 289755,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.045690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.045690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 289755,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132369,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 109858,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.045690Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.045690Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.052831Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.052831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 289755,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132369,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.052831Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.052831Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 203656,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.054680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.054680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 273488,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.056199Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.056199Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 273488,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132369,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 331071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.056199Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.056199Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1091689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.060624Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.060624Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.080273Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.080273Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2060582,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 273488,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132369,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.080273Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.080273Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1470505,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.080315Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.080315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1470505,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 273488,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132369,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322327,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.080315Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.080315Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.084009Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.084009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1470505,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 273488,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132369,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.084009Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.084009Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 266744,\n        \"price\": 4061.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.085459Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.085459Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53947,\n        \"price\": 4457,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.091430Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.091430Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84463,\n        \"price\": 3929,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.105551Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.105551Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1470505,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 273488,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132369,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:23.105551Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 257240,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.108173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.108173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1470505,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 257240,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132369,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.108173Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.108173Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 512823,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.109799Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.109799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102368,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.112772Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.112772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1470505,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 257240,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102368,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.112772Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.112772Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.115540Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.115540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1470505,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 257240,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.115540Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.115540Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 255940,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.119541Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.119541Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1470505,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 255940,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.119541Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.119541Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.121393Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.121393Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1470505,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.121393Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.121393Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227255,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.123335Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.123335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1296643,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.133517Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.133517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1296643,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.133517Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.133517Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1296843,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.134935Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.134935Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1296843,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.134935Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.134935Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.139382Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.139382Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52613,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.139382Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.139382Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 415,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8dc876cb-b854-3900-9500-279ad5031f2a\",\n    \"localTimestamp\": 2019-04-01T00:00:23.160308Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.130Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 64,\n    \"close\": 4089,\n    \"closeTimestamp\": 2019-04-01T00:00:22.965Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:23.160308Z,\n    \"low\": 4089,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4089.5,\n    \"openTimestamp\": 2019-04-01T00:00:22.130Z,\n    \"sellVolume\": 7000,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.000Z,\n    \"trades\": 2,\n    \"type\": \"trade_bar\",\n    \"volume\": 7064,\n    \"vwap\": 4089.004530011325,\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52198,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.160374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.160374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 52198,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.160374Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.160374Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54918,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.160377Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.160377Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 54918,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.160377Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.160377Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 3149,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bb72b49c-aa32-74c4-a370-f92bdad2f387\",\n    \"localTimestamp\": 2019-04-01T00:00:23.170074Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.142Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51769,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.170114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 51769,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.170114Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170114Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227245,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.170118Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170118Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59101,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.170121Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170121Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59101,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 51769,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.170121Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170121Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 24019,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d6347a81-510d-020f-d35d-dc909807b332\",\n    \"localTimestamp\": 2019-04-01T00:00:23.187993Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.158Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 21,\n    \"exchange\": \"bitmex\",\n    \"id\": \"450922cd-a6c5-8b5f-6b2a-bad3b9b92fad\",\n    \"localTimestamp\": 2019-04-01T00:00:23.187993Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.158Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 4597,\n    \"exchange\": \"bitmex\",\n    \"id\": \"76abb6ef-e20b-5713-b8b1-e865c3dc1157\",\n    \"localTimestamp\": 2019-04-01T00:00:23.187993Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.158Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 23153,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.188019Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.188019Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59101,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 23153,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.188019Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.188019Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 15403,\n    \"exchange\": \"bitmex\",\n    \"id\": \"50c5354c-51a0-5b76-8175-50e6582a93b9\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 34,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c66b364f-81dd-d545-e99b-0ca1a6ab50f5\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b232a8f8-c5b2-4907-7cc9-3699d90f423b\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"27817fc4-8a0a-8429-992a-fcb5b528c77b\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2720,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4342471b-1e12-f265-93ef-a5ffe9142ee4\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4089,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 160,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9d801307-ce24-8317-b3f7-b9580b642481\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7889d069-fae0-29af-e1cf-81231abab882\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"387d7f31-9da4-d406-7481-e0287659bac7\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6e5c58a2-f20e-c286-03f1-26c10a279ae4\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"52311ed0-59e0-42bd-5b7f-78350eecfbd8\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5abb1c4d-f568-e2da-05fe-311263dc9281\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 625,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b436254f-c88c-448f-86bd-892f8a0402e0\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2e5ba21b-9f13-cff3-bbb4-7d7fd3a1cd23\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 600,\n    \"exchange\": \"bitmex\",\n    \"id\": \"93750047-621c-3233-ebca-8f473bb388e6\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2b5c2536-aac0-3887-70ca-8314ea170266\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"baac6402-b1dc-8f74-c08c-00409db8c081\",\n    \"localTimestamp\": 2019-04-01T00:00:23.219329Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.170Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4089,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.219388Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.219388Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59101,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.219388Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.219388Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 23153,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 145733,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:23.219388Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.219390Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.219390Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59101,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.219390Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.219390Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59081,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.219392Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.219392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59081,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.219392Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.219392Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 166106,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.219419Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.219419Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59061,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.223298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.223298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 869792,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59061,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.223298Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.223298Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377533,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3323166,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1751069,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 778992,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 308600,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.227810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.227810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.232814Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.232814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222936,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59061,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.232814Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.232814Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 222916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.237437Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.237437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59061,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.237437Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.237437Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 719497,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.243791Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.243791Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 719485,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.246548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.246548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 703485,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.249312Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.249312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59041,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.253077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.253077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59041,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.253077Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.253077Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 512821,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.254033Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.254033Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59021,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.255687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.255687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59021,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.255687Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.255687Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59001,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.258960Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.258960Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59001,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.258960Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.258960Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 58981,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.261635Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.261635Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58981,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.261635Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.261635Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 58961,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.266192Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.266192Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58961,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.266192Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.266192Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.267968Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.267968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 202916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58961,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.267968Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.267968Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202896,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.271279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.271279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 202896,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58961,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.271279Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.271279Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.274014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.274014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 202896,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.274014Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.274014Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202876,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.274672Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.274672Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 202876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 143540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.274672Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.274672Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 703408,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.277157Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.277157Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 20,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.282169Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.282169Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 21,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.282191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.282191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 345402,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.283514Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.283514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.286807Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.286807Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 202876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.286807Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.286807Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1258806,\n        \"price\": 4011,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.297287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.297287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 364085,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.300099Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.300099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 364085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.300099Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.300099Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 202876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 80360,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:23.300099Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 564222,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 678835,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.309408Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.309408Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1771069,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.312515Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.312515Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 177987,\n        \"price\": 4007,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.314505Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.314505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 369085,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.318308Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.318308Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 369085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 330071,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.318308Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.318308Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.325916Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.325916Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 369085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.325916Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.325916Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.327617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.327617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 369085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 65360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 338093,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.327617Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.327617Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 469732,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 246027,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 619926,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 504449,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 353396,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 151153,\n        \"price\": 4106.5,\n      },\n      {\n        \"amount\": 373485,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 235308,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 803821,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 148326,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 243036,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 178657,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 356592,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 97033,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 225469,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 218404,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 131058,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 226006,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3319118,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 620377,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 199608,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 474698,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 304552,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 73992,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 659397,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.352581Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.352581Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 369085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 65360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 331061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.352581Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.352581Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.355837Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.355837Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 369085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 65360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.355837Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.355837Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 678831,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.357235Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.357235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 192876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.360847Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.360847Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 369085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 65360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.360847Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.360847Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 55360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 30000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.367737Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.367737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 369085,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 55360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.367737Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.367737Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778990,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.368869Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.368869Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 302350,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 372981,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.371026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.371026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 30000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 372981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 55360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.371026Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.371026Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 678829,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.373145Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.373145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 276832,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 487742,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.375821Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.375821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 496821,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.378277Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.378277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 45360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 40000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.384601Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.384601Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 372981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192876,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 45360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.384601Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.384601Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 192931,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.416861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.416861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 372981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192931,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 45360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.416861Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.416861Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 40000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 372981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192876,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:23.416861Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 35360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.418077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.418077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 372981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192931,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35360,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.418077Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.418077Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 35415,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.425626Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.425626Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 372981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192931,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.425626Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.425626Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 25415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 60000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.428422Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.428422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 372981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192931,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 25415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.428422Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.428422Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 493921,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.430058Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.430058Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 380981,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.432476Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.432476Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 380981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192931,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 25415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.432476Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.432476Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.441535Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.441535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 380981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192931,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 25415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.441535Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.441535Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 80000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.444871Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.444871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 380981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192931,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 15415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.444871Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.444871Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.447348Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.447348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 380981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192931,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 15415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.447348Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.447348Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.462692Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.462692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 380981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192931,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 15415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.462692Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.462692Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110000,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.462719Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.462719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 380981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 192931,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 15415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.462719Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.462719Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 311877,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.471349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.471349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 380981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 15415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 58941,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.471349Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.471349Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59566,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 380981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 15415,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59566,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.504261Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504261Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 380981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:23.504261Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312877,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504289Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16040,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 380981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16040,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59566,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.504293Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504293Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 122731,\n        \"price\": 4296,\n      },\n      {\n        \"amount\": 15324,\n        \"price\": 4295.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 499021,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504301Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 484698,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504303Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504303Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384981,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.504349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110000,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 384981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16040,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59566,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.504349Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.504349Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123578,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 384981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16040,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59566,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.541143Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541143Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1772569,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59758,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541188Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 384981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16040,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59758,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.541188Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541188Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 167106,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 408646,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 375946,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 133519,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 643066,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 210490,\n        \"price\": 3976,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 507021,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541235Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296350,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 513021,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541237Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 484714,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541240Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 313027,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 16190,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 384981,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16190,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59758,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.541242Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541242Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 385781,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541244Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 385781,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16190,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59758,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 332061,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.541244Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541244Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 122707,\n        \"price\": 4296,\n      },\n      {\n        \"amount\": 15360,\n        \"price\": 4295.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541246Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541246Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.541249Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541249Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 385781,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16190,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59758,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.541249Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.541249Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16394,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.546627Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.546627Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 385781,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16394,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59758,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.546627Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.546627Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 313477,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.555403Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.555403Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127245,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 413477,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.567965Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.567965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129578,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.567971Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.567971Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 385781,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16394,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59758,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.567971Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.567971Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72377,\n        \"price\": 4271,\n      },\n      {\n        \"amount\": 15500,\n        \"price\": 4253,\n      },\n      {\n        \"amount\": 96498,\n        \"price\": 4235,\n      },\n      {\n        \"amount\": 62708,\n        \"price\": 4217,\n      },\n      {\n        \"amount\": 305865,\n        \"price\": 4199,\n      },\n      {\n        \"amount\": 55845,\n        \"price\": 4181,\n      },\n      {\n        \"amount\": 231754,\n        \"price\": 4163,\n      },\n      {\n        \"amount\": 1002800,\n        \"price\": 4145,\n      },\n      {\n        \"amount\": 580259,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 473957,\n        \"price\": 4109,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.569444Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.569444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15572,\n        \"price\": 4287.5,\n      },\n      {\n        \"amount\": 132446,\n        \"price\": 4248,\n      },\n      {\n        \"amount\": 265788,\n        \"price\": 4228.5,\n      },\n      {\n        \"amount\": 43079,\n        \"price\": 4209,\n      },\n      {\n        \"amount\": 322023,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 166617,\n        \"price\": 4169.5,\n      },\n      {\n        \"amount\": 8126678,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 334960,\n        \"price\": 4130.5,\n      },\n      {\n        \"amount\": 137968,\n        \"price\": 4110.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.577659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.577659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5057,\n        \"price\": 4267.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.577688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.577688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 678827,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 199607,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.581456Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.581456Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.581485Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.581485Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 385781,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16394,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59758,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.581485Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.581485Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 16412,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.587331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.587331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 385781,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16412,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.587331Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.587331Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.592662Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.592662Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16412,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322227,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.592662Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.592662Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 150281,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 18780,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 13119,\n        \"price\": 4193.5,\n      },\n      {\n        \"amount\": 21003,\n        \"price\": 4191.5,\n      },\n      {\n        \"amount\": 185319,\n        \"price\": 4189.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 1650206,\n        \"price\": 3985,\n      },\n      {\n        \"amount\": 681591,\n        \"price\": 3983,\n      },\n      {\n        \"amount\": 529742,\n        \"price\": 3981,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.602507Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.602507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16412,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.602507Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.602507Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153540,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:23.602507Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 153240,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.608022Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.608022Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 16412,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153240,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.608022Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.608022Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 398842,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 29757,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.608566Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.608566Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 29757,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 153240,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 329542,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.608566Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.608566Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137432,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 74032,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.612239Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.612239Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 123141,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 359641,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.614016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.614016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 29757,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 123141,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 359641,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.614016Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.614016Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91876,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 390906,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.618049Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.618049Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 29757,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 91876,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 390906,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.618049Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.618049Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 385506,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 42191,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.620145Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.620145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 42191,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 91876,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 390906,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322427,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.620145Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.620145Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 295350,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 514021,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.625006Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.625006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 678876,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.626908Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.626908Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 140232,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 76832,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.629636Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.629636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.631873Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.631873Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 42191,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 91876,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 390906,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.631873Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.631873Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 92876,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.634050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.634050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 42191,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92876,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 390906,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.634050Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.634050Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 753424,\n        \"price\": 3910,\n      },\n      {\n        \"amount\": 769498,\n        \"price\": 3842.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.635982Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.635982Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 245247,\n        \"price\": 4279,\n      },\n      {\n        \"amount\": 27908,\n        \"price\": 4260.5,\n      },\n      {\n        \"amount\": 98907,\n        \"price\": 4241.5,\n      },\n      {\n        \"amount\": 78074,\n        \"price\": 4222.5,\n      },\n      {\n        \"amount\": 57670,\n        \"price\": 4204,\n      },\n      {\n        \"amount\": 463493,\n        \"price\": 4185,\n      },\n      {\n        \"amount\": 216788,\n        \"price\": 4166.5,\n      },\n      {\n        \"amount\": 473836,\n        \"price\": 4147.5,\n      },\n      {\n        \"amount\": 270473,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 1768376,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.640206Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.640206Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778938,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 218885,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 199555,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 76728,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.644065Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.644065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 387619,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 42191,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 390906,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.644065Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.644065Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96835,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 226204,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.646214Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.646214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 270814,\n        \"price\": 4275,\n      },\n      {\n        \"amount\": 358916,\n        \"price\": 4256.5,\n      },\n      {\n        \"amount\": 30588,\n        \"price\": 4238.5,\n      },\n      {\n        \"amount\": 1263928,\n        \"price\": 4220,\n      },\n      {\n        \"amount\": 16181,\n        \"price\": 4201.5,\n      },\n      {\n        \"amount\": 156968,\n        \"price\": 4183,\n      },\n      {\n        \"amount\": 78107,\n        \"price\": 4164.5,\n      },\n      {\n        \"amount\": 1929209,\n        \"price\": 4146,\n      },\n      {\n        \"amount\": 983635,\n        \"price\": 4128,\n      },\n      {\n        \"amount\": 590990,\n        \"price\": 4109.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.651161Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.651161Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 511548,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1435668,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1177349,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2722390,\n        \"price\": 4040,\n      },\n      {\n        \"amount\": 1821411,\n        \"price\": 4010,\n      },\n      {\n        \"amount\": 1499183,\n        \"price\": 3960,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.653568Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.653568Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 561481,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.657281Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.657281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 561481,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 42191,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 390906,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.657281Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.657281Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 306013,\n        \"price\": 3911,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.665189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.665189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149832,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.669043Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.669043Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579533,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 844442,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 171653,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 74915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 590107,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.676355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.676355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 590107,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 74915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 336476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 390906,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.676355Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.676355Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107463,\n        \"price\": 3944,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.688828Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.688828Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 566422,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 846142,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 486914,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 78928,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 298119,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 513748,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.694850Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.694850Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 345452,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.694874Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.694874Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.699337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.699337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 590107,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 74915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 59776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 390906,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.699337Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.699337Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61776,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 76915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 212515,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 394906,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.707153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.707153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 590107,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 394906,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.707153Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.707153Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 590107,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210515,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 390906,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:23.707153Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 568622,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 847842,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 489114,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 81128,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 300319,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 515948,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.710906Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.710906Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 149,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cc81d99a-4f67-e1fa-5606-a2cd409bf704\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1196,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bd054f6d-b4a3-3448-d361-fd1ae670808a\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 126,\n    \"exchange\": \"bitmex\",\n    \"id\": \"be46b9dd-622e-014f-0e5e-7c741d456db3\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 472,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e5a06a29-8bf8-b101-a0d9-f6584306dadd\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 31,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b68298d0-989e-7d8b-6643-f0fb6f1f1fa4\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 103,\n    \"exchange\": \"bitmex\",\n    \"id\": \"333fd54e-92ba-f281-fb4a-ba98ae43978d\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 410,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f8ce1659-1690-e539-b843-2ec113a1863c\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 31,\n    \"exchange\": \"bitmex\",\n    \"id\": \"899aef9f-0ded-2b2b-81cc-db3e6b6f2d10\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 577,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9b4bea15-0a21-1aa6-e423-06cd539828d5\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 39,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cb550f61-467b-65b7-70c1-2d3fdb34e9a0\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"919b3433-d451-199b-fab4-23ca9900d8ef\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 723,\n    \"exchange\": \"bitmex\",\n    \"id\": \"85379e51-bab7-1ae1-5f55-b42126dacf91\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 58,\n    \"exchange\": \"bitmex\",\n    \"id\": \"52a7ea50-8af1-3a22-1465-6fd79750d5df\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 101,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f394e317-1214-5ffa-895a-702e53c62c99\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 884,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cdc43ead-88c4-d544-8dd0-176d0af043d5\",\n    \"localTimestamp\": 2019-04-01T00:00:23.742527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.703Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.742574Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.742574Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 590107,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 394906,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.742574Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.742574Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 432642,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.742578Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.742578Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 590107,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 432642,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.742578Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.742578Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123662,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.742584Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.742584Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 590107,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 432642,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.742584Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.742584Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 385880,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.745727Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.745727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 642888,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 199335,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 622912,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 515838,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1030879,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.749688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.749688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 596107,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.752137Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.752137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596107,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 432642,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.752137Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.752137Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 440642,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.757351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.757351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596107,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 440642,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.757351Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.757351Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.757384Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.757384Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596107,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 440642,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.757384Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.757384Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 467818,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.760162Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.760162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596107,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212515,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 467818,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.760162Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.760162Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213231,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.770134Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.770134Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596107,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213231,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76915,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61776,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 467818,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.770134Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.770134Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 413263,\n        \"price\": 4111.5,\n      },\n      {\n        \"amount\": 386380,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.777529Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.777529Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 301550,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 208236,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.782056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.782056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 77015,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213331,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 596207,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.785243Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.785243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596207,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213331,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77015,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 467818,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.785243Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.785243Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386451,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 213360,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.787659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.787659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596207,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213360,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77015,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 467818,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.787659Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.787659Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 17546,\n        \"price\": 4221,\n      },\n      {\n        \"amount\": 151757,\n        \"price\": 4171,\n      },\n      {\n        \"amount\": 372385,\n        \"price\": 4141,\n      },\n      {\n        \"amount\": 215736,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 244512,\n        \"price\": 4111,\n      },\n      {\n        \"amount\": 133484,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 192248,\n        \"price\": 4054,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.791799Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.791799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 596507,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.794966Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.794966Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596507,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213360,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77015,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 467818,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.794966Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.794966Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213519,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.807515Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.807515Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596507,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213519,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77015,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 467818,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 322421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.807515Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.807515Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596507,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213360,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 467818,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:23.807515Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 23649,\n        \"price\": 4211.5,\n      },\n      {\n        \"amount\": 102162,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 182690,\n        \"price\": 4170.5,\n      },\n      {\n        \"amount\": 104459,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 1938599,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 1768811,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 598492,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 82245,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 2151705,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 422308,\n        \"price\": 4010.5,\n      },\n      {\n        \"amount\": 179727,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 89094,\n        \"price\": 3971.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.813470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.813470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 468817,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 323420,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.816114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.816114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596507,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213519,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77015,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87668,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 468817,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 323420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.816114Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.816114Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 847802,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 218865,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87508,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 199295,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 81048,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.820461Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.820461Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596507,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213519,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77015,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87508,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 468817,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 323420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.820461Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.820461Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238704,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 852802,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 388951,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 491614,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 175835,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 229856,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.824473Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.824473Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389101,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 77165,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.831769Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.831769Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596507,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213519,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77165,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87508,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 468817,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 323420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.831769Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.831769Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 679876,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.837993Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.837993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1416242,\n        \"price\": 4134,\n      },\n      {\n        \"amount\": 692337,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 244743,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 240167,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 569842,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 680852,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 150565,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 389589,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 213763,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87752,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 200027,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 660374,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 138099,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 97607,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 952620,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1184686,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1611310,\n        \"price\": 4045,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.847437Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.847437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596507,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213763,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87752,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 323420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.847437Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.847437Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 150315,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 171903,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 80798,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 660624,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.849277Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.849277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 171403,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 127745,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.852256Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.852256Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 499614,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.862200Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.862200Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226535,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 999221,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.864265Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.864265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 208027,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.867203Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.867203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 210763,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.872302Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.872302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596507,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210763,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87752,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 323420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.872302Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.872302Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 207763,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.877062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.877062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596507,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 207763,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87752,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 323420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.877062Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.877062Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61326,\n        \"price\": 4263,\n      },\n      {\n        \"amount\": 32530,\n        \"price\": 4245.5,\n      },\n      {\n        \"amount\": 269224,\n        \"price\": 4228.5,\n      },\n      {\n        \"amount\": 27085,\n        \"price\": 4211.5,\n      },\n      {\n        \"amount\": 182544,\n        \"price\": 4194,\n      },\n      {\n        \"amount\": 577930,\n        \"price\": 4177,\n      },\n      {\n        \"amount\": 159158,\n        \"price\": 4159.5,\n      },\n      {\n        \"amount\": 213124,\n        \"price\": 4142.5,\n      },\n      {\n        \"amount\": 69106,\n        \"price\": 4125.5,\n      },\n      {\n        \"amount\": 623362,\n        \"price\": 4108,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.882305Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.882305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.885911Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.885911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 596507,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 207763,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87752,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.885911Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.885911Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386804,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.889650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.889650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 207763,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87752,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.889650Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.889650Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2330641,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 3319784,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1185352,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2723056,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.892292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.892292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1042,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0f573daa-ac74-4b59-a995-cb2fdb1aa2fc\",\n    \"localTimestamp\": 2019-04-01T00:00:23.906807Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.880Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127620,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.906911Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.906911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127620,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 207763,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87752,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.906911Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.906911Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128662,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 207763,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87752,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:23.906911Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 410550,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 650388,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 653124,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 145599,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.922340Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.922340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9eb81653-2b25-51d2-2592-1702c5d31342\",\n    \"localTimestamp\": 2019-04-01T00:00:23.947496Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.908Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.947525Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.947525Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127620,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 207763,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.947525Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.947525Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"93275924-0696-2b68-be90-24fe945886b7\",\n    \"localTimestamp\": 2019-04-01T00:00:23.947555Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.925Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127617,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.947581Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.947581Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127617,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 207763,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.947581Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.947581Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61888,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 207775,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.952692Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.952692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127617,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 207775,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61888,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.952692Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.952692Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.957698Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.957698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 207775,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61888,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:23.957698Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.957698Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749987,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 683761,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.957722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.957722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185115,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 412550,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 290705,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 319178,\n        \"price\": 3964,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.967988Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.967988Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 899473,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 612826,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.970554Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.970554Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450763,\n        \"price\": 4111.5,\n      },\n      {\n        \"amount\": 3334784,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 178903,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 211705,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 551030,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 233352,\n        \"price\": 4065.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.980663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.980663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219865,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.990348Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.990348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:23.997069Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:23.997069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 644060,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 1285352,\n        \"price\": 4060,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.008805Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.008805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 207775,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61888,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 386804,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 127745,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 178903,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 150315,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 219865,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 208027,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 499614,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 304552,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 80798,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 653124,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:24.008805Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 207775,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:24.008805Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129914,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.014070Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.014070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 207775,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129914,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.014070Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.014070Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 210998,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.023600Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.023600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210998,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129914,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.023600Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.023600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211198,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.032706Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.032706Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211198,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129914,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.032706Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.032706Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 212545,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.038874Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.038874Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212545,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129914,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.038874Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.038874Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214079,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.042810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.042810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 214079,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129914,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.042810Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.042810Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8126978,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 750287,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 3335084,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1843362,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 1908366,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 1755210,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 508457,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 1611196,\n        \"price\": 3950,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.050046Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.050046Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214311,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.062786Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.062786Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 597826,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 214311,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77409,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129914,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.062786Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.062786Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1157511,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 1768871,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 803881,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 3335144,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 680912,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 304612,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 515898,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 952680,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1435728,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 683821,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.068520Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.068520Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 83318,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.070268Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.070268Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 598260,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.076047Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.076047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 598260,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 214311,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129914,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.076047Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.076047Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 117745,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.077489Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.077489Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 598260,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129914,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.077489Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.077489Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 643362,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 161153,\n        \"price\": 4106.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.080742Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.080742Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 339799,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.083875Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.083875Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.094195Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.094195Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 598260,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.094195Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.094195Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1103689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.094212Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.094212Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 599262,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.098990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.098990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 599262,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.098990Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.098990Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1300051,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 1938849,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 2330891,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 1769121,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 3335394,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 516148,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1435978,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1285602,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1843612,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 2723306,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.104114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.104114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 599262,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:24.104114Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 844786,\n        \"price\": 4126,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.107574Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.107574Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87507,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.294727Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.294727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 599262,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87507,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334045,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.294727Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.294727Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 242,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aa899311-b0a4-ea40-cfbc-e449ebc722b3\",\n    \"localTimestamp\": 2019-04-01T00:00:24.294753Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.120Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 1045,\n    \"close\": 4089,\n    \"closeTimestamp\": 2019-04-01T00:00:23.925Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:24.294753Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4089,\n    \"openTimestamp\": 2019-04-01T00:00:23.130Z,\n    \"sellVolume\": 62584,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.000Z,\n    \"trades\": 39,\n    \"type\": \"trade_bar\",\n    \"volume\": 63629,\n    \"vwap\": 4088.943453456757,\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445572,\n        \"price\": 4120.5,\n      },\n      {\n        \"amount\": 245302,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 234133,\n        \"price\": 4065.5,\n      },\n      {\n        \"amount\": 124740,\n        \"price\": 4056.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.308053Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.308053Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 599262,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87507,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:24.308053Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579717,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 852986,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 220049,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 150499,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 179087,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 208039,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 499626,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 304624,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 80810,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.308142Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.308142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 599262,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87507,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 372476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.308142Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.308142Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 385041,\n        \"price\": 4112,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 336332,\n        \"price\": 4061,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.320555Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.320555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 601164,\n        \"price\": 4123.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 163406,\n        \"price\": 4072.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.320557Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.320557Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.320583Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.320583Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 149438,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 599262,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87507,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.320583Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.320583Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 173406,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 232757,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.320588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.320588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 142723,\n        \"price\": 3967.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.320592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.320592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87397,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 105764,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 156092,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 985280,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 748861,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.323112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.323112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1022,\n    \"exchange\": \"bitmex\",\n    \"id\": \"03553819-eb98-fe1b-c922-6869d0fe72cb\",\n    \"localTimestamp\": 2019-04-01T00:00:24.345086Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.317Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.345159Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.345159Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 599262,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87507,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.345159Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.345159Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 196260,\n        \"price\": 4136,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.345164Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.345164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 599277,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.345166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.345166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 599277,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87507,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.345166Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.345166Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 214039,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.358131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.358131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609277,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.358142Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.358142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 609277,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87507,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.358142Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.358142Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 435415,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.358146Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.358146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 435415,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224311,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87507,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.358146Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.358146Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 266743,\n        \"price\": 4061.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.358185Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.358185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 376202,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3335650,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1772825,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 853498,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 216627,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.358194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.358194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224411,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.365675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.365675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 435415,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87507,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.365675Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.365675Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 465416,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.369109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.369109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 465416,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 87507,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.369109Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.369109Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 4700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3e452c23-ecac-ecb6-c4a4-a3dabe440ac4\",\n    \"localTimestamp\": 2019-04-01T00:00:24.399174Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.365Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 82807,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.399204Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.399204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 465416,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82807,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.399204Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.399204Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 615416,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.399207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.399207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 615416,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76975,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82807,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.399207Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.399207Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 179097,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 214049,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.399209Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.399209Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 376466,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3335914,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1773089,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 854026,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215003,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.412844Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.412844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 615416,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224411,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82807,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:24.412844Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 501792,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.412849Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.412849Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 815032,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.412853Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.412853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 901639,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.418368Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.418368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1775255,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.418387Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.418387Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 117538,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.419638Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.419638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 652554,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.421754Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.421754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75613,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 616778,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.427201Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.427201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 616778,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75613,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82807,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.427201Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.427201Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 347618,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.427274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.427274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.433852Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.433852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 616778,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82807,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.433852Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.433852Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 82857,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.436763Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.436763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 616778,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 224411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82857,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.436763Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.436763Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 622543,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.438431Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.438431Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 158416,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.440153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.440153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 158416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 616778,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 214411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82857,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.440153Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.440153Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 303716,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.442324Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.442324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 204411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 168416,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.445667Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.445667Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 168416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 616778,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 204411,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 129929,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82857,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.445667Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.445667Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 135709,\n        \"price\": 3885.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.449405Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.449405Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 204561,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.460375Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.460375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 168416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 616778,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 204561,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82857,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.460375Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.460375Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 614992,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.461207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.461207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 345127,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 94043,\n        \"price\": 4126.5,\n      },\n      {\n        \"amount\": 299318,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 277036,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 170201,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 210364,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 367040,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 472734,\n        \"price\": 4048,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.465266Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.465266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 591899,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.465902Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.465902Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 263259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.472014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.472014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 168416,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 263259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82857,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.472014Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.472014Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184787,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.476079Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.476079Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184787,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 263259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82857,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334057,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.476079Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.476079Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 683078,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.480745Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.480745Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.487004Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.487004Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184787,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 263259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82857,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.487004Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.487004Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 6850,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3a2c6757-ffde-6b59-d575-310ecf4d8a94\",\n    \"localTimestamp\": 2019-04-01T00:00:24.503934Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.479Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 76007,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.503939Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.503939Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184787,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 263259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 76007,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.503939Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.503939Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184787,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 263259,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 82857,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:24.503939Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189875,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.513698Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.513698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189875,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 263259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 76007,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.513698Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.513698Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193963,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.515387Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.515387Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193963,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 263259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 76007,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.515387Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.515387Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 1301,\n    \"exchange\": \"bitmex\",\n    \"id\": \"52d5275c-b735-c1e3-c70d-242ef1c63ead\",\n    \"localTimestamp\": 2019-04-01T00:00:24.536171Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.504Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 74706,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.536203Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.536203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193963,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 263259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 74706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.536203Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.536203Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84706,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.536207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.536207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193963,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 263259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 84706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.536207Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.536207Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198051,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.540715Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.540715Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198051,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 263259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 84706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.540715Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.540715Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 248051,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.541972Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.541972Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 248051,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 84706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.541972Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.541972Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 203259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 258051,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.548499Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.548499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 258051,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 203259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 84706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.548499Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.548499Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.551322Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.551322Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 258051,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 203259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.551322Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.551322Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 262139,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.559997Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.559997Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 262139,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 203259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.559997Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.559997Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266227,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.563752Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.563752Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266227,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 203259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.563752Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.563752Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 316227,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.566509Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.566509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316227,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 153259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.566509Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.566509Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316546,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.571467Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.571467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316546,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629046,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 153259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75913,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.571467Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.571467Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.571507Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.571507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316546,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 153259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.571507Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.571507Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 326546,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.571512Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.571512Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326546,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.571512Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.571512Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330546,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.578135Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.578135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330546,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.578135Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.578135Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 338724,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.578219Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.578219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 338724,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.578219Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.578219Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378725,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.581470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.581470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 378725,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.581470Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.581470Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386903,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.584186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.584186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386903,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.584186Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.584186Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 395081,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.587151Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.587151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 395081,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.587151Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.587151Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 92706,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.587166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.587166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 395081,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.587166Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.587166Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403259,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.591046Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591046Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403259,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.591046Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591046Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403359,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.591064Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591064Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.591064Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591064Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 422026,\n        \"price\": 4132.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.594236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.594236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 97706,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.600648Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.600648Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 97706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.600648Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.600648Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 92706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469306,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:24.600648Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.600674Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.600674Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403359,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 97706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.600674Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.600674Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403480,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.604606Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.604606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403480,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 97706,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.604606Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.604606Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 8242,\n    \"exchange\": \"bitmex\",\n    \"id\": \"04210371-fe85-6618-715c-96a11dee49b4\",\n    \"localTimestamp\": 2019-04-01T00:00:24.628318Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7370175d-56d7-2284-c2ed-7586c4938640\",\n    \"localTimestamp\": 2019-04-01T00:00:24.628318Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 14,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8d06cf22-a6c2-4ddb-ac39-3756364344c8\",\n    \"localTimestamp\": 2019-04-01T00:00:24.628318Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 184,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b7d48694-a595-eebb-fc1b-6648dacfd97b\",\n    \"localTimestamp\": 2019-04-01T00:00:24.628318Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.591Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.628350Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.628350Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403480,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.628350Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.628350Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 578717,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 855026,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.628353Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.628353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 178206,\n        \"price\": 3969,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.628356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.628356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180494,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.628358Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.628358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 393480,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.630589Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.630589Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 393480,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.630589Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.630589Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 401658,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.633255Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.633255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 401658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629048,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.633255Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.633255Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 629367,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.644573Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.644573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 401658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629367,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.644573Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.644573Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 409836,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.644597Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.644597Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 409836,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 629367,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.644597Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.644597Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 628365,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.650583Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.650583Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 409836,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 628365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.650583Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.650583Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 418014,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.650606Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.650606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 418014,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 628365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.650606Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.650606Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426192,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.651974Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.651974Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426192,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 628365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.651974Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.651974Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 434370,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.654437Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.654437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 434370,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 628365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.654437Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.654437Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 584370,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.659755Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.659755Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 584370,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 628365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.659755Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.659755Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 592548,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.662254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.662254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 592548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 628365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.662254Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.662254Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.663729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.663729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 592548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 86066,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.663729Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.663729Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 2316,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e6061d11-c213-16bb-853a-ad25fdac7e2d\",\n    \"localTimestamp\": 2019-04-01T00:00:24.687780Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.657Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1197,\n    \"exchange\": \"bitmex\",\n    \"id\": \"224def9d-2396-b050-1f92-4771ec4ca393\",\n    \"localTimestamp\": 2019-04-01T00:00:24.687780Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.657Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e2b9c17d-c0f7-7177-0d1f-49d41c865165\",\n    \"localTimestamp\": 2019-04-01T00:00:24.687780Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.657Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 912,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4799f995-0575-48cc-a919-219ef45ac5de\",\n    \"localTimestamp\": 2019-04-01T00:00:24.687780Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.657Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 80541,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.687812Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.687812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 592548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 80541,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.687812Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.687812Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 188,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b8a9bd37-dd68-6ca3-ad61-bde6ddf0b44f\",\n    \"localTimestamp\": 2019-04-01T00:00:24.701017Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.672Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e3cdfd72-17ab-bba6-bcf9-90d3bda11d24\",\n    \"localTimestamp\": 2019-04-01T00:00:24.701017Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.672Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a77d3d97-9c1a-646c-431b-540a3fde99b9\",\n    \"localTimestamp\": 2019-04-01T00:00:24.701017Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.672Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 106,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2cb59435-cae2-66a2-e24c-0f1aea10c37b\",\n    \"localTimestamp\": 2019-04-01T00:00:24.701017Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.672Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 78541,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.701062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.701062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 592548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 78541,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.701062Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.701062Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 592548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 80541,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:24.701062Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 228541,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.701070Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.701070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 592548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 228541,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.701070Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.701070Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582548,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.706494Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.706494Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 228541,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 384476,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.706494Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.706494Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.715299Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.715299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 75911,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 228541,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.715299Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.715299Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.721677Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.721677Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 228541,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.721677Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.721677Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 677978,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.721753Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.721753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1594,\n    \"exchange\": \"bitmex\",\n    \"id\": \"30dcb600-ecfa-8cc8-392e-d201bb4c4350\",\n    \"localTimestamp\": 2019-04-01T00:00:24.739059Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.709Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 15,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2229829c-b33b-987e-3ca5-a1c4251b727d\",\n    \"localTimestamp\": 2019-04-01T00:00:24.739059Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.709Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 165,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f2c6ad02-145f-b9af-e464-63245df9bbff\",\n    \"localTimestamp\": 2019-04-01T00:00:24.739059Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.709Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 226767,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.739097Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.739097Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 226767,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469296,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.739097Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.739097Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 376725,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3336173,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1775514,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 855544,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 304255,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.739101Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.739101Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.744419Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.744419Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 226767,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 334474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.744419Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.744419Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.761858Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.761858Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 478365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 226767,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.761858Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.761858Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 480650,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.762923Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.762923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582548,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 480650,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 226767,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.762923Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.762923Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 686211,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 308536,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.767815Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.767815Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 686211,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 480650,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 308536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.767815Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.767815Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 158536,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.768936Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.768936Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 686211,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 480650,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.768936Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.768936Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 686371,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.777095Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.777095Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 686371,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 480650,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.777095Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.777095Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 475650,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 691371,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.780078Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.780078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 691371,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 475650,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.780078Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.780078Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141124,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.783115Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.783115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2933,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dab19f93-f363-8673-c9de-3c1543b0c7b6\",\n    \"localTimestamp\": 2019-04-01T00:00:24.806793Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.776Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"20a499f3-693a-db60-e423-3d734b9fa8ca\",\n    \"localTimestamp\": 2019-04-01T00:00:24.806793Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.776Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4b53e9df-30b5-e258-e0d5-0113c3478d8d\",\n    \"localTimestamp\": 2019-04-01T00:00:24.806793Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.776Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aef98d69-15ae-aeea-2369-e85cc09c8a1f\",\n    \"localTimestamp\": 2019-04-01T00:00:24.806793Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.776Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3457,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e09803c4-0d31-0527-0d0c-9f3f895f3a9e\",\n    \"localTimestamp\": 2019-04-01T00:00:24.806793Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.776Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659981,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.806827Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.806827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 475650,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.806827Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.806827Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 691371,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 475650,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:24.806827Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 400435,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.812846Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.812846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659981,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 400435,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.812846Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.812846Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 93810,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.814659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.814659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.817392Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.817392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 400435,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.817392Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.817392Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 395435,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.819247Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.819247Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 395435,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.819247Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.819247Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389435,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.823297Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.823297Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 389435,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.823297Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.823297Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 658536,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.825791Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.825791Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 389435,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 658536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.825791Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.825791Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.828126Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.828126Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 658536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.828126Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.828126Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 758536,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.830371Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.830371Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 758536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.830371Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.830371Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 763536,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.834539Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.834539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 763536,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.834539Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.834539Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 769607,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.837276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.837276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 769607,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 469596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.837276Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.837276Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.839263Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.839263Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 769607,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319420,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.839263Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.839263Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.841222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.841222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 769607,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.841222Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.841222Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81279,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.845428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.845428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 81279,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 769607,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.845428Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.845428Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 356474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.848166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.848166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 81279,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 769607,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.848166Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.848166Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 35,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bd81423a-2e75-b744-0256-ec3fcf8c8f1e\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4fb2b61c-5c79-e337-b945-4dac25811b1b\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b68c45af-58e0-97c2-2552-cd222e07da03\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f0e80c48-f86c-184f-7a1d-7c190eb07a60\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"78e06a40-da25-e641-c7ad-ac8b95c2b82e\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 96,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4abc42f8-9148-6c0d-0787-57cd1e304130\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 336,\n    \"exchange\": \"bitmex\",\n    \"id\": \"76627ece-1716-e6ac-3b4c-d1be81fa4135\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 233,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3fa34dd3-7d82-9f18-e621-6900b79ff548\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7ffcb8bc-8dcd-9f10-690f-acab45bfec32\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 18,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cba7a303-f825-954a-96db-2a694dad4cec\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 196,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5f727ee6-49e7-f9ee-395c-269656a7647c\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 23,\n    \"exchange\": \"bitmex\",\n    \"id\": \"34e8b799-35f6-3a42-56ae-80207f42dc79\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 979,\n    \"exchange\": \"bitmex\",\n    \"id\": \"92b191cd-e37b-3625-b5f9-1c1796a87a4f\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"75f71346-dd80-a09a-07f7-2793943f38a2\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 447,\n    \"exchange\": \"bitmex\",\n    \"id\": \"199afa5b-460f-0cb5-3314-ce3522469f57\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1122,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2c3c917e-03e9-e6aa-76b3-bbbfdf981a34\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 296,\n    \"exchange\": \"bitmex\",\n    \"id\": \"faf0d26a-1cd4-860d-ef32-3828f27e9906\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 497,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9de571db-edd1-1195-20a7-c22fa833a90a\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 700,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6742428a-60f8-15db-3cf0-9af9f7bebf7b\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 962,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2b7924be-e3d3-9282-376a-241962756cd9\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 34001,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:24.840Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089.5,\n    \"interval\": 100,\n    \"kind\": \"tick\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_100ticks\",\n    \"open\": 4089.5,\n    \"openTimestamp\": 2019-04-01T00:00:20.054Z,\n    \"sellVolume\": 184622,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"trades\": 100,\n    \"type\": \"trade_bar\",\n    \"volume\": 218623,\n    \"vwap\": 4088.8904415363436,\n  },\n  {\n    \"amount\": 575,\n    \"exchange\": \"bitmex\",\n    \"id\": \"cc977afb-fd57-af3f-c1d6-a31c7afac892\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 498,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1bdd2fc4-3bbf-133a-2a21-76f0a60d2821\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1303,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fcb00da1-7f3a-0971-4c32-8ac7d18f5db7\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2817,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2025b4f5-8081-436e-3282-1574317fd0aa\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10222,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1249cb50-8fe4-9eb3-c19a-61b916611bfe\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1024,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6185a5d1-fa4e-045c-c22e-e77351bea7ad\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 295,\n    \"exchange\": \"bitmex\",\n    \"id\": \"27ace06a-75aa-d537-d871-a7f251d2fd95\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 378,\n    \"exchange\": \"bitmex\",\n    \"id\": \"94fea65d-0340-b21d-dc18-d68255fe861a\",\n    \"localTimestamp\": 2019-04-01T00:00:24.883603Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.840Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 745241,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.888205Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.888205Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 81279,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 745241,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.888205Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.888205Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101662,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 322523,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 372285,\n        \"price\": 4141,\n      },\n      {\n        \"amount\": 594796,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 266485,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 1662320,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 215636,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 692437,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 245202,\n        \"price\": 4111,\n      },\n      {\n        \"amount\": 474057,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 133434,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 815082,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 652514,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 855584,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 214963,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 653164,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 304205,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 534110,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 232657,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 244251,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 336232,\n        \"price\": 4061,\n      },\n      {\n        \"amount\": 124818,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 236648,\n        \"price\": 4051,\n      },\n      {\n        \"amount\": 303653,\n        \"price\": 4049,\n      },\n      {\n        \"amount\": 1056614,\n        \"price\": 4041,\n      },\n      {\n        \"amount\": 528166,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 179227,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 280318,\n        \"price\": 3989,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.888214Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.888214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.888216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.888216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 745241,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.888216Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.888216Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 180335,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.892801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.892801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390700,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 184231,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.900534Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.900534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660731,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 745241,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:24.900534Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 685345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.908535Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.908535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 685345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143259,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 745241,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.908535Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.908535Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180594,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.912222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.912222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.915387Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.915387Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 685345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364925,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77955,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 745241,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.915387Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.915387Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 584517,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.921390Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.921390Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.921730Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.921730Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 685345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 745241,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.921730Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.921730Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 109538,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.925242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.925242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 6,\n    \"exchange\": \"bitmex\",\n    \"id\": \"651e5e63-2f55-57bb-0981-bcfe35e0c9a4\",\n    \"localTimestamp\": 2019-04-01T00:00:24.947625Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.919Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 40,\n    \"exchange\": \"bitmex\",\n    \"id\": \"00b22336-94dd-5041-23e7-5ae8cb09c111\",\n    \"localTimestamp\": 2019-04-01T00:00:24.947625Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.919Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 80,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ecd03b5b-70d4-37a5-613c-05e7a99e3fee\",\n    \"localTimestamp\": 2019-04-01T00:00:24.947625Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.919Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 352,\n    \"exchange\": \"bitmex\",\n    \"id\": \"65db28aa-2359-cdd0-32a9-11541ba4c280\",\n    \"localTimestamp\": 2019-04-01T00:00:24.947625Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.919Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 744763,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.947659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.947659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 685345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 744763,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356474,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.947659Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.947659Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.947671Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.947671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 685345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 744763,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.947671Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.947671Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 99538,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.947673Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.947673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.947675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.947675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 744763,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.947675Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.947675Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219549,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 150999,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 653664,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 183731,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.952319Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.952319Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101651,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.954663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.954663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101401,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 390950,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502042,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 304374,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.956854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.956854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 304540,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 93644,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.959022Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.959022Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 101151,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 391200,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502292,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 93394,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.963659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.963659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391034,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 304706,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 93228,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.963685Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.963685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 744763,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.963685Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.963685Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 665345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.963694Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.963694Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 665345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 744763,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.963694Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.963694Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249177,\n        \"price\": 4008,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.965877Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.965877Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 655345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.968526Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.968526Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 655345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 744763,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.968526Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.968526Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 219049,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 181094,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 184231,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 622412,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.969584Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.969584Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.972733Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.972733Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 744763,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.972733Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.972733Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 677578,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 219449,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.975696Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.975696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88327,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.975719Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.975719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.978174Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.978174Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 744763,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.978174Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.978174Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 742017,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:24.992376Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.992376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 742017,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:24.992376Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.992376Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 2111,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5f0f1881-b9f2-b2d0-0874-d4012ab5ae75\",\n    \"localTimestamp\": 2019-04-01T00:00:24.999153Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.969Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 321,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fe386625-2275-38f9-47f6-10cd5b8025a8\",\n    \"localTimestamp\": 2019-04-01T00:00:24.999153Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.969Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 309,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1442da3a-8141-4422-76d0-176fdd7ac393\",\n    \"localTimestamp\": 2019-04-01T00:00:24.999153Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.969Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5,\n    \"exchange\": \"bitmex\",\n    \"id\": \"510ca589-0f21-0798-1272-8498b49ae623\",\n    \"localTimestamp\": 2019-04-01T00:00:24.999153Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:24.969Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.004706Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.004706Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 391034,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 88327,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 181094,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 150999,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 219449,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 742017,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 214963,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 502292,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 304706,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 93228,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 653664,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:25.004706Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 742017,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.004706Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.004706Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 742017,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:25.004706Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 615345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.009135Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.009135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 615345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 364975,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 742017,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.009135Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.009135Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383405,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 328962,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.056658Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.056658Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 209236,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.060457Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.060457Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 208231,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.069961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.069961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367587,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.072910Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.072910Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 615345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367587,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 742017,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.072910Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.072910Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.121264Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.121264Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 615345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 742017,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.121264Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.121264Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 615345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367587,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 742017,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:25.121264Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88527,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.121295Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.121295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 739017,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383174Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383174Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 615345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 739017,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.383174Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383174Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 615345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 742017,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:25.383174Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635345,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383176Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383176Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 739017,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.383176Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383176Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 738417,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383179Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383179Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 738417,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.383179Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383179Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 737917,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737917,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.383186Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383186Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635345,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.383189Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383189Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659855,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659855,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.383191Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383191Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 703495,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.383193Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383193Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 703495,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.383193Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.383193Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 720147,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.402337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.402337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 720147,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 77905,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.402337Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.402337Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 703495,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 475596,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:25.402337Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16014,\n        \"price\": 4168.5,\n      },\n      {\n        \"amount\": 217988,\n        \"price\": 4166.5,\n      },\n      {\n        \"amount\": 465336,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 94364,\n        \"price\": 4163.5,\n      },\n      {\n        \"amount\": 182485,\n        \"price\": 4161.5,\n      },\n      {\n        \"amount\": 1667531,\n        \"price\": 4160,\n      },\n      {\n        \"amount\": 199220,\n        \"price\": 4158.5,\n      },\n      {\n        \"amount\": 176217,\n        \"price\": 4156.5,\n      },\n      {\n        \"amount\": 914927,\n        \"price\": 4155,\n      },\n      {\n        \"amount\": 232900,\n        \"price\": 4153.5,\n      },\n      {\n        \"amount\": 70261,\n        \"price\": 4151.5,\n      },\n      {\n        \"amount\": 8128178,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 787870,\n        \"price\": 4148.5,\n      },\n      {\n        \"amount\": 98164,\n        \"price\": 4146.5,\n      },\n      {\n        \"amount\": 1004000,\n        \"price\": 4145,\n      },\n      {\n        \"amount\": 46388,\n        \"price\": 4143.5,\n      },\n      {\n        \"amount\": 140665,\n        \"price\": 4141.5,\n      },\n      {\n        \"amount\": 1301251,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 75522,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 151877,\n        \"price\": 4136.5,\n      },\n      {\n        \"amount\": 818719,\n        \"price\": 4135,\n      },\n      {\n        \"amount\": 247780,\n        \"price\": 4133.5,\n      },\n      {\n        \"amount\": 291998,\n        \"price\": 4131.5,\n      },\n      {\n        \"amount\": 1940049,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 271673,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 581459,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 751487,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 602364,\n        \"price\": 4123.5,\n      },\n      {\n        \"amount\": 390966,\n        \"price\": 4122,\n      },\n      {\n        \"amount\": 2332091,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 449271,\n        \"price\": 4118.5,\n      },\n      {\n        \"amount\": 1093105,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 1158711,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 300518,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 386241,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 139168,\n        \"price\": 4110.5,\n      },\n      {\n        \"amount\": 247227,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 354596,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 236508,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 179857,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 227735,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 278236,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 816282,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 1776714,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 304916,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 856784,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 182294,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 79105,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 503492,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 654864,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 210436,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 305405,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 535310,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 157292,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 552230,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 126992,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 174606,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 233857,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 599692,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 555114,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 434016,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 150680,\n        \"price\": 4064.5,\n      },\n      {\n        \"amount\": 628120,\n        \"price\": 4063,\n      },\n      {\n        \"amount\": 267943,\n        \"price\": 4061.5,\n      },\n      {\n        \"amount\": 88502,\n        \"price\": 4059.5,\n      },\n      {\n        \"amount\": 368240,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 125940,\n        \"price\": 4056.5,\n      },\n      {\n        \"amount\": 707516,\n        \"price\": 4055,\n      },\n      {\n        \"amount\": 128758,\n        \"price\": 4053,\n      },\n      {\n        \"amount\": 101112,\n        \"price\": 4051.5,\n      },\n      {\n        \"amount\": 1844812,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 46519,\n        \"price\": 4048.5,\n      },\n      {\n        \"amount\": 183293,\n        \"price\": 4046.5,\n      },\n      {\n        \"amount\": 1612510,\n        \"price\": 4045,\n      },\n      {\n        \"amount\": 94522,\n        \"price\": 4043.5,\n      },\n      {\n        \"amount\": 496396,\n        \"price\": 4042,\n      },\n      {\n        \"amount\": 2724506,\n        \"price\": 4040,\n      },\n      {\n        \"amount\": 136809,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 330162,\n        \"price\": 4037,\n      },\n      {\n        \"amount\": 1084380,\n        \"price\": 4035.5,\n      },\n      {\n        \"amount\": 183666,\n        \"price\": 4034,\n      },\n      {\n        \"amount\": 425164,\n        \"price\": 4032,\n      },\n      {\n        \"amount\": 447709,\n        \"price\": 4030.5,\n      },\n      {\n        \"amount\": 256873,\n        \"price\": 4029,\n      },\n      {\n        \"amount\": 183557,\n        \"price\": 4027.5,\n      },\n      {\n        \"amount\": 1027358,\n        \"price\": 4025.5,\n      },\n      {\n        \"amount\": 450201,\n        \"price\": 4024,\n      },\n      {\n        \"amount\": 503832,\n        \"price\": 4022.5,\n      },\n      {\n        \"amount\": 1421614,\n        \"price\": 4021,\n      },\n      {\n        \"amount\": 224196,\n        \"price\": 4019.5,\n      },\n      {\n        \"amount\": 97015,\n        \"price\": 4017.5,\n      },\n      {\n        \"amount\": 407494,\n        \"price\": 4016,\n      },\n      {\n        \"amount\": 45599,\n        \"price\": 4014.5,\n      },\n      {\n        \"amount\": 815743,\n        \"price\": 4013,\n      },\n      {\n        \"amount\": 90909,\n        \"price\": 4011.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 720147,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 79105,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 320693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.412216Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412216Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 324693,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412251Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 720147,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143294,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 79105,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.412251Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412251Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 143503,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412260Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 720147,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143503,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 79105,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.412260Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412260Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383383,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330184,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412262Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 369811,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412264Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412264Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 720147,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 369811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143503,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 79105,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.412264Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412264Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 85243,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 323887,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 576517,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412283Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145631,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.412286Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.412286Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 167813,\n        \"price\": 4143.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.421003Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.421003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383353,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330214,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.421037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.421037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 728474,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.421041Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.421041Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 728474,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 369811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143503,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 79105,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324693,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.421041Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.421041Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 376899,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3336347,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1776888,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 857132,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 325182,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450490Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450490Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 728474,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 369811,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143503,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 79105,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 325182,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.450490Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450490Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 731437,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450533Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 731437,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 143503,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 79105,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 325182,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.450533Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450533Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383323,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330244,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450539Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 145270,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450544Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450544Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 731437,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 145270,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 79105,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737667,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 325182,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358260,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.450544Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450544Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 376987,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3336435,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1776976,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 857308,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215281,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450550Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450550Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 150081,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 201564,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 18580,\n        \"price\": 4195.5,\n      },\n      {\n        \"amount\": 404833,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 12919,\n        \"price\": 4193.5,\n      },\n      {\n        \"amount\": 98991,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 20803,\n        \"price\": 4191.5,\n      },\n      {\n        \"amount\": 101862,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 185119,\n        \"price\": 4189.5,\n      },\n      {\n        \"amount\": 322723,\n        \"price\": 4189,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737767,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358460,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 1650006,\n        \"price\": 3985,\n      },\n      {\n        \"amount\": 137168,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 681391,\n        \"price\": 3983,\n      },\n      {\n        \"amount\": 243832,\n        \"price\": 3982.5,\n      },\n      {\n        \"amount\": 529542,\n        \"price\": 3981,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450560Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 731437,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 145270,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 79105,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737767,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358460,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.450560Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450560Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65760,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 158270,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450571Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 731437,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 158270,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 65760,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737767,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358460,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.450571Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450571Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 170270,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450574Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450574Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 731437,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170270,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737767,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 358460,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.450574Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450574Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377075,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3336523,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1777064,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 857484,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 216769,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450577Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145661,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.450579Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.450579Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 846838,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 388293,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 805933,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 905743,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 353826,\n        \"price\": 3952,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.458703Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.458703Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 360503,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.458726Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.458726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 731437,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170270,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130245,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737767,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476796,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360503,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.458726Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.458726Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 225281,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.458732Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.458732Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 848741,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 390196,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 807836,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 909549,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1083833,\n        \"price\": 3940,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.477431Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.477431Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377258,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3336706,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1777247,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 857850,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 225943,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.477463Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.477463Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 392176,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 355586,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 357252,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 3337036,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1777467,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 677688,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 151087,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 88571,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 130267,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 85353,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 210656,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 87727,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 230516,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 175596,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 133691,\n        \"price\": 4067.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.477470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.477470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 731437,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130267,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.477470Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.477470Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 816363,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.485166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.485166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733203,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.485194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.485194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733203,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130267,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.485194Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.485194Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733828,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.488784Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.488784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733828,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130267,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.488784Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.488784Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 617792,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 350418,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 858850,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 130301,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 518948,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.491181Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.491181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733828,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130301,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.491181Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.491181Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733728,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.498692Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.498692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733728,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130301,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.498692Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.498692Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.507466Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.507466Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733728,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130301,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.507466Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.507466Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733728,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 737789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:25.507466Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 620592,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 354148,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 859850,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 130309,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 521748,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.507469Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.507469Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733728,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130309,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 324982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.507469Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.507469Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383293,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330274,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.507474Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.507474Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 135168,\n        \"price\": 3533,\n      },\n      {\n        \"amount\": 26045,\n        \"price\": 3044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.507480Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.507480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.516415Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.516415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733728,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 367973,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130309,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.516415Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.516415Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 32601,\n        \"price\": 3927.5,\n      },\n      {\n        \"amount\": 52520,\n        \"price\": 3925.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.518973Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.518973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 370858,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.551084Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.551084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 733728,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370858,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130309,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.551084Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.551084Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 734353,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.559938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.559938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 734353,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370858,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130309,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.559938Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.559938Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 377346,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3337124,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1777555,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 860026,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 226261,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.584171Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.584171Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383263,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330304,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.586488Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.586488Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 546,\n    \"exchange\": \"bitmex\",\n    \"id\": \"296e2de3-48c6-eae3-c1c4-209bc578b120\",\n    \"localTimestamp\": 2019-04-01T00:00:25.612722Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.294Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 32412,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:24.969Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:25.612722Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:24.120Z,\n    \"sellVolume\": 61622,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.000Z,\n    \"trades\": 61,\n    \"type\": \"trade_bar\",\n    \"volume\": 94034,\n    \"vwap\": 4088.67234191888,\n  },\n  {\n    \"amount\": 201,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9ad11b50-4bbd-841d-01e3-54884d6a1a3b\",\n    \"localTimestamp\": 2019-04-01T00:00:25.612722Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.294Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 448,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6984912a-0234-d026-fef0-5303a8d1f022\",\n    \"localTimestamp\": 2019-04-01T00:00:25.612722Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.294Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 350,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b0b65056-9570-857a-bd1e-3d41fc672257\",\n    \"localTimestamp\": 2019-04-01T00:00:25.612722Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.294Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1455,\n    \"exchange\": \"bitmex\",\n    \"id\": \"316fbf01-df41-7e58-3aae-aa2c3760a523\",\n    \"localTimestamp\": 2019-04-01T00:00:25.612722Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.294Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 545,\n    \"exchange\": \"bitmex\",\n    \"id\": \"db8503bb-89c4-d6db-9305-44f4eb25e6eb\",\n    \"localTimestamp\": 2019-04-01T00:00:25.629620Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.307Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f81c20ab-eae7-32b5-147d-0ad2f2cd502c\",\n    \"localTimestamp\": 2019-04-01T00:00:25.629620Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.307Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8ae02337-1af3-02d2-cb51-ec6135544360\",\n    \"localTimestamp\": 2019-04-01T00:00:25.629652Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.316Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.629655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.629655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 734353,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130309,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.629655Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.629655Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 734353,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370858,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:25.629655Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 250,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c85df08b-8508-cef5-5221-6e00f7d7c797\",\n    \"localTimestamp\": 2019-04-01T00:00:25.629659Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.325Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130364,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.629661Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.629661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 734353,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130364,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.629661Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.629661Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 738353,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.629667Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.629667Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 738353,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130364,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.629667Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.629667Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 234102,\n        \"price\": 4071.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.634957Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.634957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 739853,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.646136Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.646136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 739853,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170281,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130364,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.646136Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.646136Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383241,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330326,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.669919Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.669919Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 356348,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.696141Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.696141Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29695,\n        \"price\": 4211.5,\n      },\n      {\n        \"amount\": 104037,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 184430,\n        \"price\": 4170.5,\n      },\n      {\n        \"amount\": 105764,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 1940919,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 1769556,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 600127,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 83115,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 2153010,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 424048,\n        \"price\": 4010.5,\n      },\n      {\n        \"amount\": 181402,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 91704,\n        \"price\": 3971.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.696236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.696236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 170581,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.696247Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.696247Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 739853,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130364,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.696247Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.696247Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582317,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.696250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.696250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741853,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.704298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741853,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130364,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.704298Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704298Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 739853,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170581,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 797789,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:25.704298Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358548,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.704306Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704306Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527346,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.704310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181794,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 89071,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 85853,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 207731,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.704326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383211,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330356,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.718261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.718261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 218949,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 151587,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 208231,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 621912,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.718293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.718293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 100,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a0d538d1-e6a0-6c90-8c66-5172f17fb1c4\",\n    \"localTimestamp\": 2019-04-01T00:00:25.737779Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.481Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 777814,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.757136Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.757136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741853,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 170581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130364,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 777814,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.757136Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.757136Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.760056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.760056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741853,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130364,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 777814,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 386520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.760056Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.760056Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 648514,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 155587,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 308706,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.765030Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.765030Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741853,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130364,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 777814,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360591,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.765030Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.765030Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 225016,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.768336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.768336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88946,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 224891,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.770631Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.770631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741853,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 53326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 777814,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.770631Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.770631Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.786852Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.786852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741853,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 777814,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.786852Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.786852Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741764,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.801847Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.801847Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741764,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 777814,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.801847Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.801847Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 741853,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 777814,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:25.801847Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88846,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.806137Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.806137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 393915,\n        \"price\": 4009.5,\n      },\n      {\n        \"amount\": 414421,\n        \"price\": 4007.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.814871Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.814871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 691764,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.821069Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.821069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 691764,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 777814,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.821069Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.821069Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383181,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330386,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.823085Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.823085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 913549,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.826185Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.826185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391134,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.831419Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.831419Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 641764,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.833143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.833143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 641764,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 777814,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.833143Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.833143Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 323082,\n        \"price\": 3931,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.837639Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.837639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 631764,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.839666Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.839666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 631764,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 777814,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.839666Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.839666Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 778404,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.844479Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.844479Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 631764,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.844479Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.844479Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383151,\n        \"price\": 4037.5,\n      },\n      {\n        \"amount\": 330416,\n        \"price\": 4037,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.846027Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.846027Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27671,\n        \"price\": 4213.5,\n      },\n      {\n        \"amount\": 99141,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 182385,\n        \"price\": 4172,\n      },\n      {\n        \"amount\": 447666,\n        \"price\": 4151,\n      },\n      {\n        \"amount\": 335020,\n        \"price\": 4130.5,\n      },\n      {\n        \"amount\": 1769586,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 600157,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 83175,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 256963,\n        \"price\": 4029,\n      },\n      {\n        \"amount\": 171769,\n        \"price\": 4009,\n      },\n      {\n        \"amount\": 280468,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 42987,\n        \"price\": 3969.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.854318Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.854318Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184556,\n        \"price\": 4127.5,\n      },\n      {\n        \"amount\": 581489,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 94073,\n        \"price\": 4126.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.867063Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.867063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 631775,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778415,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.870701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.870701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 631775,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778415,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.870701Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.870701Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.875243Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.875243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778415,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.875243Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.875243Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88966,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.883330Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.883330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 203076,\n        \"price\": 4064,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.889636Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.889636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 578317,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 159587,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220891,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 89853,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.891684Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.891684Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 503092,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.895924Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.895924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 778544,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.895969Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.895969Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778544,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.895969Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.895969Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 778748,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.898824Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.898824Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778748,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.898824Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.898824Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.907075Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.907075Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.907075Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.907075Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778748,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476840,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:25.907075Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358498,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 218999,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.907151Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.907151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 476540,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.913477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.913477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476540,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 328982,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.913477Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.913477Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 329282,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.917267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.917267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 476540,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 329282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.917267Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.917267Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 309916,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 94853,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 208331,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.930573Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.930573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 470540,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.938164Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.938164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470540,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 329282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.938164Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.938164Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.938194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.938194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382520,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470540,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.938194Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.938194Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 382612,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.942571Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.942571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382612,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470540,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.942571Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.942571Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527522,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3337300,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1777731,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 860378,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221527,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.946725Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.946725Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 186337,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.951000Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.951000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.951030Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.951030Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54326,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470540,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.951030Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.951030Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 3963,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5498e11e-55b9-5093-6652-3b7dc7d64ce0\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 221,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d19ed005-4d02-d7e0-aff1-762b51613bb2\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 244,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b1d1b762-0a08-99d1-b878-703fb50b2c7b\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1874,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b847d568-b7bc-d814-e216-bb47752675a7\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 160,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d90873a7-6024-a1bc-6ea0-7e4c5d4016aa\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"20b72c4e-ad0b-fe2f-5c26-47bbf52731db\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 101,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1985bde0-c978-2af9-5ed9-00518cc28ec5\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"734fef14-5f7b-7875-829d-07ba82e6227f\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 30,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e2bfe2ad-ef01-69b9-6429-277ec8479616\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"bitmex\",\n    \"id\": \"de29b0ea-17dd-ed4e-af6c-9833690dded5\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aa0428b5-cff4-0c46-f71b-1de16d8a68cc\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"be17a4d5-6585-9253-1554-66df3329fa2f\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"08e98fcb-d00d-b708-0171-e3f51b9a058f\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 150,\n    \"exchange\": \"bitmex\",\n    \"id\": \"79a9c103-2336-d76a-7cab-4dc49e8dd90f\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5,\n    \"exchange\": \"bitmex\",\n    \"id\": \"79a4bdfe-b5a2-75d4-bc83-af8370bfa0ea\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2e97e885-f406-82f0-c60d-db10c9737fa1\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"982899b6-4d5f-da4f-36e1-6bc70c3fee27\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9b391cb1-c173-027b-2202-baf76b16ad80\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0644b3a2-08ec-01b4-2e05-30c034733a39\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 244,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ac393485-642d-9c02-1797-201da78d99f3\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 25,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af172e0a-9867-4896-01f6-4629c3427ca2\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8172247c-a620-6c86-53b7-5328e704df85\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 148,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8ae4366f-7828-aa48-45b4-76acad3e6345\",\n    \"localTimestamp\": 2019-04-01T00:00:25.960118Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.704Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 956488,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 577608,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.960163Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.960163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.960166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.960166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 176581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.960166Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.960166Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 89966,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.960168Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.960168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 451063,\n        \"price\": 4111.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.960170Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.960170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 503087,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 308711,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.960173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.960173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 578347,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.968568Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.968568Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8600,\n        \"price\": 4433,\n      },\n      {\n        \"amount\": 5854,\n        \"price\": 4432,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.968601Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.968601Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 233553,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 203867,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.972816Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.972816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 79966,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 186581,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.976271Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.976271Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 186581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:25.976271Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.976271Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226669,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 998155,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:25.984655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.984655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 422,\n        \"price\": 4314,\n      },\n      {\n        \"amount\": 80016,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.003595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.003595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 186581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 391134,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 79966,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 186337,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 159587,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 218999,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 221527,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 503087,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 308711,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 94853,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 654864,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:26.003595Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 186581,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778777,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:26.003595Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2331425,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 3336634,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1284936,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2723840,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.009974Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.009974Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 778796,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.013358Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.013358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 186581,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778796,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.013358Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.013358Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 187381,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.017324Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.017324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609954,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 187381,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778796,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.017324Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.017324Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 89,\n    \"exchange\": \"bitmex\",\n    \"id\": \"756ea2cb-7499-a3d0-96ca-b9b5057d920e\",\n    \"localTimestamp\": 2019-04-01T00:00:26.028055Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:25.781Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 507622,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.032040Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.032040Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 610754,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.036119Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.036119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 610754,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370913,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 187381,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778796,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.036119Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.036119Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 370113,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.036196Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.036196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 610754,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370113,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 187381,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 778796,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.036196Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.036196Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 750687,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 748061,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.044477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.044477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 773264,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.057538Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.057538Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 610754,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370113,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 187381,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 773264,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.057538Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.057538Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632609,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.062589Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.062589Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632609,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370113,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 187381,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 773264,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.062589Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.062589Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 183115,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 410550,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 288705,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 317178,\n        \"price\": 3964,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.070468Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.070468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 188381,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.071854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.071854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632609,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370113,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 188381,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 773264,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.071854Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.071854Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1386292,\n        \"price\": 4190,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.075386Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.075386Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 360113,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 642609,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.079489Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.079489Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 642609,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 360113,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 188381,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 773264,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.079489Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.079489Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 244906,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 956651,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 677851,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 80342,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 309623,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.082646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.082646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 400114,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.088545Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.088545Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 642609,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 400114,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 188381,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54356,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130489,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 773264,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.088545Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.088545Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80292,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.090315Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.090315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102280,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 149589,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 403298,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 77193,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 256937,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 205524,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 153076,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 269864,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3349514,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 617069,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 824735,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 588357,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 962125,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 575354,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1781273,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 356888,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 650768,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 308950,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 679461,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 577703,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 861344,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 218677,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 160231,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 186015,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 80614,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 390812,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 54034,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 188703,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 642931,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.096419Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.096419Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 642931,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 400114,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 188703,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54034,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 773264,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.096419Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.096419Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 773263,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.107682Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.107682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 642931,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 400114,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 188703,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54034,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 773263,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.107682Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.107682Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 642931,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 400114,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 188703,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 773264,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:26.107682Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96853,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.130933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.130933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12252,\n        \"price\": 4458,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.133006Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.133006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 762467,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.151383Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.151383Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 642931,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 400114,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 188703,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54034,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 762467,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.151383Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.151383Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 398752,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 644293,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.151414Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.151414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 644293,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398752,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 188703,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54034,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 762467,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.151414Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.151414Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1158651,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 1769526,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 807776,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 3349454,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 679401,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 309563,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 521688,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 985220,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1435918,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 748001,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.156823Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.156823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 769838,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.160817Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.160817Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 644293,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398752,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 188703,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54034,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 769838,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.160817Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.160817Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8127878,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 750387,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 3349154,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1844512,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 1908066,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 1754910,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 508157,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 1610896,\n        \"price\": 3950,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.169265Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.169265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 770030,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.172056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.172056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 644293,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398752,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 188703,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54034,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 770030,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.172056Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.172056Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690768,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 379799,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.181567Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.181567Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 396888,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 419799,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.183616Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.183616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 744921,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 795840,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 660649,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.188495Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.188495Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660649,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54034,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 770030,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.188495Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.188495Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 780030,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.190766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.190766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660649,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 54034,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 780030,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.190766Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.190766Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21310,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.202505Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.202505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660649,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 780030,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 335282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.202505Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.202505Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660649,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 780030,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:26.202505Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129738,\n        \"price\": 4196,\n      },\n      {\n        \"amount\": 97914,\n        \"price\": 4146.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.204760Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.204760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.209571Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.209571Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660649,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 780030,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.209571Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.209571Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 192353,\n        \"price\": 4054,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.211463Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.211463Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 410495,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.214577Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.214577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577694,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.217836Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.217836Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 779030,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.232404Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.232404Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660649,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 779030,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.232404Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.232404Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390312,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.234596Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.234596Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660649,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 779030,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.234596Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.234596Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662564,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.237486Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.237486Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662564,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 779030,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.237486Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.237486Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 864735,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 730768,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 459799,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 197292,\n        \"price\": 4077.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.239353Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.239353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 5532,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3c4e37b5-46f6-e3aa-5c2f-542d6438da37\",\n    \"localTimestamp\": 2019-04-01T00:00:26.260249Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.035Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 189,\n    \"close\": 4089,\n    \"closeTimestamp\": 2019-04-01T00:00:25.781Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:26.260249Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:25.294Z,\n    \"sellVolume\": 24350,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.000Z,\n    \"trades\": 34,\n    \"type\": \"trade_bar\",\n    \"volume\": 24539,\n    \"vwap\": 4088.5038510126737,\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 355624,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 153114,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 744959,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221557,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.260298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.260298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 21,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.260300Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.260300Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 22,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.260303Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.260303Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 304563,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.260305Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.260305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770768,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 499799,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.260307Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.260307Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1301001,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 1940669,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 2331175,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 1769276,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 3348904,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 521438,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1435668,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1284686,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1844262,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 2723590,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.265935Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.265935Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367014,\n        \"price\": 4129.5,\n      },\n      {\n        \"amount\": 390311,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 779031,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 1844261,\n        \"price\": 4050,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.268743Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.268743Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662564,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130811,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 779031,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.268743Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.268743Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130911,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.274484Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.274484Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662564,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130911,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 779031,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.274484Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.274484Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 304812,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.279551Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.279551Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 655364,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 207831,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.284567Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.284567Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305062,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 655114,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.289350Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.289350Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7a0e5963-a407-aaea-3a3f-c41739a0c483\",\n    \"localTimestamp\": 2019-04-01T00:00:26.298908Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.086Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 580594,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.298937Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.298937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.305001Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.305001Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662564,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130911,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 779031,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.305001Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.305001Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662564,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370126,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 779031,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 382704,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 470570,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:26.305001Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1927469,\n        \"price\": 4130,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.305004Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.305004Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 4319,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2d98026e-4f02-4790-7c7c-2d5b62cfd806\",\n    \"localTimestamp\": 2019-04-01T00:00:26.310611Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.125Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6477,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d0bc0782-f519-bb48-6c4e-0c4ee110f3eb\",\n    \"localTimestamp\": 2019-04-01T00:00:26.310611Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.125Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305162,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.313992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.313992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 420698,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 432834,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.315807Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.315807Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662564,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130911,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 779031,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 420698,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 432834,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.315807Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.315807Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.317538Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.317538Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662564,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130911,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 779031,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.317538Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.317538Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588346,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.331796Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.331796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 779747,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.336435Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.336435Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662564,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130911,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 779747,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.336435Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.336435Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 929747,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.336528Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.336528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662564,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130911,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 929747,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.336528Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.336528Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12650,\n        \"price\": 4308,\n      },\n      {\n        \"amount\": 80814,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.341922Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.341922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 80864,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.353187Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.353187Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 829747,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.366359Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.366359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662564,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130911,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 829747,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.366359Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.366359Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 622563,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.370321Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.370321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 622563,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130911,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 829747,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.370321Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.370321Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f4b5de75-57d9-1a6d-29e7-27a281ae8aaf\",\n    \"localTimestamp\": 2019-04-01T00:00:26.375346Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.210Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137037,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.375386Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.375386Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130913,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.378863Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.378863Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 622563,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130913,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 829747,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.378863Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.378863Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 829951,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.388248Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.388248Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 622563,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130913,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 829951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.388248Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.388248Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645063,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.391729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.391729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645063,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21810,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130913,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 829951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.391729Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.391729Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1786273,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 800840,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.393909Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.393909Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 128168,\n        \"price\": 3944,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.395356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.395356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232995,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3385773,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.401513Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.401513Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645063,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 829951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:26.401513Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770946,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221777,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 622022,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 521548,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1030989,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.407027Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.407027Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390461,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 21960,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.419643Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.419643Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645063,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21960,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130913,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 829951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.419643Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.419643Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130937,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.421634Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.421634Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645063,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21960,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130937,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 829951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.421634Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.421634Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.425503Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.425503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645063,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130937,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 829951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.425503Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.425503Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650763,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.427029Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.427029Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650763,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130937,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 829951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.427029Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.427029Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 839951,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.429472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.429472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650763,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130937,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 839951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.429472Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.429472Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 626149,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.432598Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.432598Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 626149,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130937,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 839951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.432598Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.432598Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650763,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.435691Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.435691Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650763,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370176,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200973,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130937,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 839951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.435691Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.435691Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 218781,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 370202,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221985,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 96905,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 207935,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.439374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.439374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650763,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370202,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 130937,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 839951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.439374Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.439374Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131063,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.441091Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.441091Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650763,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370202,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 131063,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 839951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.441091Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.441091Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650011,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.450444Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.450444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650011,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370202,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 131063,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 839951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.450444Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.450444Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 573294,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.452047Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.452047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131217,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.456095Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.456095Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650011,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370202,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 131217,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 839951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.456095Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.456095Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131219,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.460798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.460798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 650011,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370202,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 131219,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 839951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.460798Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.460798Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660011,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.469047Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.469047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660011,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370202,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 131219,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 839951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.469047Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.469047Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131225,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.469079Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.469079Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 660011,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 370202,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 131225,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 839951,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 402735,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 360716,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.469079Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.469079Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214885,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 164127,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 386565,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 366306,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 843847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 364612,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 503726,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 100801,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 204039,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.471029Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.471029Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366306,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 843847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 364612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.471029Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.471029Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 863847,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.476548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.476548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366306,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 863847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 364612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.476548Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.476548Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 858847,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.487822Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.487822Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366306,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 858847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 364612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.487822Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.487822Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 862070,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.492323Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.492323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366306,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 862070,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 364612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.492323Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.492323Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 863416,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.495732Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.495732Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366306,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 863416,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 364612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.495732Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.495732Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 864950,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.501283Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.501283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366306,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 864950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 364612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.501283Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.501283Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366306,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 863416,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:26.501283Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 543468,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 162044,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 674392,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 682961,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.505026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.505026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 134665,\n        \"price\": 4141.5,\n      },\n      {\n        \"amount\": 445271,\n        \"price\": 4118.5,\n      },\n      {\n        \"amount\": 768946,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 199076,\n        \"price\": 4064,\n      },\n      {\n        \"amount\": 490396,\n        \"price\": 4042,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.508164Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.508164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366306,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 201025,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 864950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.508164Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.508164Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 200725,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.510481Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.510481Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366306,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200725,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 864950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.510481Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.510481Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214965,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 200765,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 366326,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222145,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 100841,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 204119,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.518417Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.518417Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366326,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200765,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 864950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.518417Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.518417Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 874950,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.523660Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.523660Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366326,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200765,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 874950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.523660Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.523660Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 575460,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.525185Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.525185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 752,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d3cab654-6659-415b-950b-722d1e753cf7\",\n    \"localTimestamp\": 2019-04-01T00:00:26.534275Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.429Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 200767,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.534310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.534310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366326,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 874950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.534310Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.534310Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 315917,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 560199,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.534312Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.534312Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 366373,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.543084Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.543084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366373,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 874950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.543084Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.543084Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663917,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.543113Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.543113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663917,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366373,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 21964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 874950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.543113Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.543113Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224145,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.543116Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.543116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.545932Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.545932Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663917,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366373,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 200767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 874950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.545932Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.545932Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.545960Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.545960Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 663917,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366373,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 874950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.545960Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.545960Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81064,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.555659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.555659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 499820,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.555684Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.555684Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 366173,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 664117,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.560262Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.560262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 664117,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366173,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 874950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.560262Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.560262Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 864750,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 396903,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 209127,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 42964,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 559835,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 521563,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.569729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.569729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 664117,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 366173,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 42964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 874950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.569729Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.569729Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 365739,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 664551,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.569750Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.569750Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 664551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365739,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 42964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 874950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.569750Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.569750Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 120689,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.573958Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.573958Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 879950,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.581253Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.581253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 664551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365739,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 42964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 879950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.581253Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.581253Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.581271Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.581271Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365739,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 42964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 879950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.581271Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.581271Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8822,\n        \"price\": 3688.5,\n      },\n      {\n        \"amount\": 266853,\n        \"price\": 3688,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.583586Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.583586Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 845840,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 164127,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 150121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.588991Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.588991Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365739,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 879950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.588991Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.588991Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96064,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.594004Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.594004Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365739,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 879950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.594004Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.594004Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.600500Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.600500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 879950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.600500Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.600500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365739,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 879950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:26.600500Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 44438,\n        \"price\": 3951.5,\n      },\n      {\n        \"amount\": 34944,\n        \"price\": 3934.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.602214Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.602214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 889950,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.606533Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.606533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 889950,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.606533Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.606533Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 889972,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.629336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.629336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194767,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 889972,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452179,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.629336Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.629336Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 860973,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 348840,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.634568Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.634568Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194867,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.660304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.660304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194867,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 889972,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362612,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.660304Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.660304Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 28785,\n        \"price\": 3918.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.674427Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.674427Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 46388,\n        \"price\": 4143.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.676862Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.676862Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 362597,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.684008Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.684008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194867,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 889972,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362597,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.684008Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.684008Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 667878,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.690671Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.690671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 667878,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194867,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 889972,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362597,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.690671Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.690671Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.694398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.694398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194867,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 889972,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362597,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.694398Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.694398Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 985268,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.696825Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.696825Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662051,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.707168Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.707168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662051,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194867,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 889972,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362597,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.707168Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.707168Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 659551,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194867,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 889972,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:26.707168Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 939972,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.709814Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.709814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662051,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194867,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 939972,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362597,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.709814Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.709814Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 159627,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.716847Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.716847Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194885,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.730930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.730930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662051,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194885,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 939972,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362597,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.730930Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.730930Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 939772,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.747838Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.747838Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662051,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194885,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 939772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362597,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.747838Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.747838Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 236639,\n        \"price\": 4105.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.750817Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.750817Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 655217,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.752459Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.752459Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95864,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.757301Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.757301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 493726,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.760856Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.760856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224612,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.764252Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.764252Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 943772,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.766013Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.766013Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662051,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194885,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362597,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.766013Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.766013Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 53345,\n        \"price\": 3994.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.772092Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.772092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 79819,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.777341Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.777341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 362702,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.779023Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.779023Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 662051,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194885,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362702,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.779023Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.779023Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 637541,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.782227Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.782227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 637541,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194885,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 27964,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362702,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.782227Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.782227Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51241,\n        \"price\": 4206.5,\n      },\n      {\n        \"amount\": 99046,\n        \"price\": 4160.5,\n      },\n      {\n        \"amount\": 214670,\n        \"price\": 4142.5,\n      },\n      {\n        \"amount\": 249105,\n        \"price\": 4133.5,\n      },\n      {\n        \"amount\": 164483,\n        \"price\": 4124.5,\n      },\n      {\n        \"amount\": 849443,\n        \"price\": 4115.5,\n      },\n      {\n        \"amount\": 161816,\n        \"price\": 4106.5,\n      },\n      {\n        \"amount\": 575796,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 34714,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943993,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 162486,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 600820,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 644943,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 102216,\n        \"price\": 4051.5,\n      },\n      {\n        \"amount\": 328290,\n        \"price\": 4042.5,\n      },\n      {\n        \"amount\": 584990,\n        \"price\": 4033.5,\n      },\n      {\n        \"amount\": 264595,\n        \"price\": 4015.5,\n      },\n      {\n        \"amount\": 44975,\n        \"price\": 3969.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.791464Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.791464Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 637541,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194885,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34714,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943993,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362702,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.791464Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.791464Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.797120Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.797120Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 637541,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34714,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943993,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362702,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.797120Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.797120Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 620889,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.802524Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.802524Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 620889,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34714,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943993,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362702,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.802524Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.802524Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 637541,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943993,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:26.802524Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577249,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.806573Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.806573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577249,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365859,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34714,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943993,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362702,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.806573Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.806573Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 187715,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 96964,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.806611Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.806611Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 365857,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 577251,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.809058Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.809058Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577251,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365857,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34714,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943993,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362702,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.809058Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.809058Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 96670,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.811395Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.811395Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6a8115cc-b891-b2a6-0bfd-21f2753d913d\",\n    \"localTimestamp\": 2019-04-01T00:00:26.818955Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.728Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202260,\n        \"price\": 4136,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 185418,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.822221Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.822221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 408570,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 527446,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 153038,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 768794,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 682535,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.823799Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.823799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3379773,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.825594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.825594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189415,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 97770,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.828995Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.828995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.830127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.830127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577251,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365857,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34714,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943993,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362702,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.830127Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.830127Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 575276,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 845656,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 214781,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 159443,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 189231,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 362690,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 224600,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 493714,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 305150,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 100829,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.834222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.834222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577251,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365857,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34714,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 943993,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.834222Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.834222Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.840827Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.840827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577251,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365857,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34714,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.840827Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.840827Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127627,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.864322Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.864322Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577251,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 127627,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34714,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.864322Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.864322Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.878348Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.878348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577251,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 127627,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.878348Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.878348Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 125342,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 579536,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.891494Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.891494Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579536,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125342,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331282,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.891494Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.891494Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 331296,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.896921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.896921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579536,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125342,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331296,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 362690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.896921Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.896921Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.905633Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.905633Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579536,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125342,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331296,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.905633Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.905633Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579536,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125342,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:26.905633Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 1850,\n    \"exchange\": \"bitmex\",\n    \"id\": \"89c38201-8dc6-68cc-c4cf-8157c8bb37e7\",\n    \"localTimestamp\": 2019-04-01T00:00:26.921083Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.819Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 238486,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 552230,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.926651Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.926651Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 176173,\n        \"price\": 4161,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.929147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.929147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 125442,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.961078Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.961078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579536,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125442,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331296,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.961078Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.961078Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579591,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.966751Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.966751Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579591,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125442,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331296,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:26.966751Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.966751Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 459978,\n        \"price\": 4117.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:26.980138Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:26.980138Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577591,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.001010Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.001010Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579591,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125442,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 386565,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 97770,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 189231,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 159443,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 214781,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331296,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 224600,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 493714,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 305150,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 100829,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 655217,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:27.001010Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577591,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125442,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331296,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.001010Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.001010Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 579591,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125442,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:27.001010Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577675,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.007839Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.007839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577675,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125442,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331296,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.007839Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.007839Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 303950,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 95829,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 204019,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.046299Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.046299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.060260Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.060260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577675,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135121,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331296,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.060260Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.060260Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135281,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.066959Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.066959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577675,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135281,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331296,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.066959Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.066959Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 576199,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.069680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.069680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 408439,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.074108Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.074108Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577675,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135281,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 408439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331296,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.074108Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.074108Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 397826,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.074137Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.074137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 576719,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.079397Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.079397Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 331266,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.086268Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.086268Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577675,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135281,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 408439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331266,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.086268Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.086268Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 966143,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.100957Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.100957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577675,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135281,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 966143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 408439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331266,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.100957Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.100957Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577675,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 942143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 408439,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:27.100957Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 846579,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.107050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.107050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 769717,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.107113Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.107113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 963048,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.126921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.126921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215704,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.132505Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.132505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184688,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.138129Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.138129Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 621522,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 522063,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.141173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.141173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1787196,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.141198Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.141198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 745882,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.146077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.146077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 304873,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.154044Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.154044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266335,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.165617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.165617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577675,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 966143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 408439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331266,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.165617Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.165617Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 555820,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.176287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.176287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 555820,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 966143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 408439,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 331266,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.176287Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.176287Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.180624Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.180624Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 555820,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 966143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.180624Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.180624Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 556331,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.198698Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.198698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 556331,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 966143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.198698Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.198698Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 961143,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.198732Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.198732Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 556331,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 961143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.198732Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.198732Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 105602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 536331,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.205594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.205594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 536331,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 105602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 961143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.205594Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.205594Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 556331,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 125602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 961143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:27.205594Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 637449,\n        \"price\": 3951,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.212577Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.212577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 570399,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.216573Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.216573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 566332,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.229058Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.229058Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 566332,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 105602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 961143,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.229058Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.229058Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1001144,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.237501Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.237501Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 566332,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 105602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1001144,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.237501Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.237501Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 258003,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 999221,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.242346Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.242346Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1031145,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.244430Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.244430Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 566332,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 105602,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031145,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.244430Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.244430Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1309381,\n        \"price\": 3990,\n      },\n      {\n        \"amount\": 1084109,\n        \"price\": 3940,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.248376Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.248376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2331841,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 3380439,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1285352,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2724256,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.253638Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.253638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 568944,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.257736Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.257736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 568944,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 102990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031145,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.257736Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.257736Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 568994,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031195,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.267402Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.267402Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 568994,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 102990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031195,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.267402Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.267402Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 751187,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 683335,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.272343Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.272343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100,\n        \"price\": 7360,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.278250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.278250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 569218,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.281854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.281854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 569218,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 102766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031195,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.281854Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.281854Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.283741Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.283741Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 569218,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031195,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.283741Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.283741Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 571399,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 845579,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.285427Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.285427Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1021195,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.293158Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.293158Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 569218,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1021195,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.293158Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.293158Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185115,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 412495,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 290705,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 319178,\n        \"price\": 3964,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.297775Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.297775Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 527772,\n        \"price\": 4068,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.304396Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.304396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 569218,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1021195,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:27.304396Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1017195,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.304399Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.304399Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 569218,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1017195,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.304399Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.304399Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 568418,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.304401Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.304401Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 568418,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135431,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1017195,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.304401Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.304401Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472,\n        \"price\": 4314,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.314114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.314114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.326462Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.326462Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 568418,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1017195,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.326462Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.326462Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 558418,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.331593Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.331593Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 558418,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1017195,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.331593Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.331593Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 587399,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.350005Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.350005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1017305,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.351813Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.351813Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 558418,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58614,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1017305,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.351813Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.351813Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 97745,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.354180Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.354180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 558418,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1017305,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 407440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.354180Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.354180Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.362274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.362274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 558418,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1017305,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.362274Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.362274Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386554,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.366305Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.366305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 599719,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 822579,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.368291Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.368291Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525706,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.379803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.379803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1017305,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.379803Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.379803Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 521618,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.381990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.381990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 521618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1017305,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.381990Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.381990Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184548,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 97665,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.386339Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.386339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305151,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.388270Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.388270Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 386758,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.391281Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.391281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 587846,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 600219,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 203519,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 146161,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.392533Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.392533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215204,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.404818Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.404818Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 521618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1017305,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:27.404818Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 497004,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.407078Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.407078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 497004,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1017305,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.407078Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.407078Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87827,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.410590Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.410590Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1018305,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.417701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.417701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 497004,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1018305,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.417701Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.417701Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8128178,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 751487,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 3380739,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1844561,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 1908366,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 1755210,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 508457,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 1611196,\n        \"price\": 3950,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.421234Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.421234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 746882,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 586399,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.426197Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.426197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 397876,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 215154,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.429014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.429014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224612,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.431448Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.431448Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 825479,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.433620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.433620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1158711,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 1769336,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 807836,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 3380799,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 746942,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 305211,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 522123,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 985328,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1435728,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 683395,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.440725Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.440725Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 621897,\n        \"price\": 4028,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.442879Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.442879Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 502004,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.450121Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.450121Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 502004,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1018305,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.450121Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.450121Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 203521,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.457051Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.457051Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 235521,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.463609Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.463609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 998305,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.464744Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.464744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 502004,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 998305,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.464744Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.464744Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305212,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.467715Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.467715Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 55402,\n        \"price\": 3783,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.469666Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.469666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305214,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.471520Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.471520Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131800,\n        \"price\": 4219,\n      },\n      {\n        \"amount\": 153807,\n        \"price\": 4169,\n      },\n      {\n        \"amount\": 594831,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 692472,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 474092,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 861008,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.484439Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.484439Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1001366,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.489552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.489552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 502004,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135531,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1001366,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.489552Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.489552Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224689,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.491779Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.491779Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 655318,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.503202Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.503202Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 502004,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1001366,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:27.503202Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.503262Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.503262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 502004,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1001366,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.503262Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.503262Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1301251,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 1927719,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 2332091,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 1769586,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 3381049,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 522373,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1435978,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1285602,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1844811,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 2724506,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.508556Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.508556Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 496916,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.513138Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.513138Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 496916,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 58631,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1001366,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.513138Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.513138Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 180982,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 254792,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 609328,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 215712,\n        \"price\": 4064.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.517827Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.517827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.520553Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.520553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 496916,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 190886,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1001366,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.520553Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.520553Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 681422,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 890983,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 509183,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.522679Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.522679Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 509183,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1001366,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.522679Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.522679Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305215,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.524755Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.524755Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12850,\n        \"price\": 4308,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.532142Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.532142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 505183,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.540066Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.540066Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 505183,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1001366,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.540066Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.540066Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 501095,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.544372Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.544372Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 501095,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1001366,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451279,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.544372Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.544372Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 451379,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.552859Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.552859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 501095,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1001366,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451379,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.552859Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.552859Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 473,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c337b9c0-c8d3-0fa8-d0ed-deca2a6bdb73\",\n    \"localTimestamp\": 2019-04-01T00:00:27.573679Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.548Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 752,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:26.819Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:27.573679Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:26.035Z,\n    \"sellVolume\": 19379,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.000Z,\n    \"trades\": 8,\n    \"type\": \"trade_bar\",\n    \"volume\": 20131,\n    \"vwap\": 4088.518677661318,\n  },\n  {\n    \"amount\": 7627,\n    \"exchange\": \"bitmex\",\n    \"id\": \"713a4327-bf46-d60b-bd65-ec507e8c79f7\",\n    \"localTimestamp\": 2019-04-01T00:00:27.573679Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.548Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 993266,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.573708Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.573708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 501095,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 993266,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451379,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.573708Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.573708Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"650adc35-5318-78e9-cb4e-99601e287432\",\n    \"localTimestamp\": 2019-04-01T00:00:27.587239Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.565Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160193,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 98415,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 994016,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647522Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647522Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 501095,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 994016,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451379,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.647522Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647522Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 501095,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 993266,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451379,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 413440,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:27.647522Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 993966,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647553Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 501095,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 993966,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451379,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.647553Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647553Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 497007,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647557Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647557Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 497007,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 993966,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451379,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.647557Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647557Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 488680,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647598Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647598Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 488680,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 993966,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451379,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.647598Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647598Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 986595,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647601Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647601Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 488680,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 986595,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451379,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.647601Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647601Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484592,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647751Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647751Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484592,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 100766,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 986595,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451379,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.647751Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647751Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 174594,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 275829,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 1436980,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 209360,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 528775,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 435020,\n        \"price\": 4066,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647764Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647764Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160793,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.647990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.647990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 599869,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 586749,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.648190Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.648190Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 99836,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.650714Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.650714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484592,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 99836,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 986595,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451379,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.650714Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.650714Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98882,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.654495Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.654495Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 681418,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.654500Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.654500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1787186,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 451369,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.655206Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.655206Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484592,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 99836,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 986595,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451369,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.655206Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.655206Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474592,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.659652Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.659652Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474592,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 99836,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 986595,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451369,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.659652Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.659652Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 986889,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.663524Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.663524Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 99836,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 986889,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451369,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.663524Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.663524Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 354424,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 235439,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 148389,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 75993,\n        \"price\": 4102.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 347640,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 551030,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 1029789,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 173394,\n        \"price\": 4072.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.673146Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.673146Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.675554Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.675554Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 99836,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178616,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 986889,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.675554Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.675554Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 543483,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.677934Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.677934Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177816,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.678729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.678729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 99836,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177816,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 986889,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.678729Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.678729Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 269864,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 3344180,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.681513Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.681513Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.684526Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.684526Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 99836,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177816,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135763,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.684526Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.684526Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160978,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 184733,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 99067,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 386943,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 305227,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 95841,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 655330,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 235533,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 621534,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.690186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.690186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 99836,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177816,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.690186Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.690186Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59835,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.692169Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.692169Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 59835,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177816,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91355,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.692169Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.692169Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 353224,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 234239,\n        \"price\": 4105.5,\n      },\n      {\n        \"amount\": 147189,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 74793,\n        \"price\": 4102.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 346440,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 549830,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 1028589,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 172194,\n        \"price\": 4072.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.702470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.702470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 59835,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177816,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:27.702470Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91559,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.702519Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.702519Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 59835,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177816,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91559,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.702519Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.702519Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 592749,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 546483,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.702522Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.702522Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164816,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 72867,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.705304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.705304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 72867,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164816,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91559,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.705304Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.705304Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 163816,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.710095Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.710095Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 72867,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 163816,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91559,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.710095Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.710095Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151816,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 85003,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.710124Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.710124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 85003,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 151816,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91559,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.710124Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.710124Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497762,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.711784Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.711784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 134232,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102054,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.713635Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.713635Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 102054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134232,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91559,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.713635Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.713635Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 223989,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.715821Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.715821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3348228,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.717562Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.717562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 273912,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.722847Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.722847Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151237,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.725832Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.725832Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 478886,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.727281Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.727281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134232,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91559,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.727281Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.727281Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 309275,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.729233Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.729233Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 239581,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.732033Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.732033Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 659378,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.867507Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.867507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134232,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:27.867507Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 209572,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.871025Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.871025Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 262051,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.875052Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.875052Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 157086,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.878185Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.878185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 99889,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.881377Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.881377Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 560096,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.883102Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.883102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 407346,\n        \"price\": 4103,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.885315Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.885315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266433,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.889114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.889114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78841,\n        \"price\": 4102.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.892222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.892222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 106328,\n        \"price\": 4104.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.894971Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.894971Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 248954,\n        \"price\": 4104,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.896705Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.896705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87975,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 125114,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.903981Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.903981Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 228037,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.903984Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.903984Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 387143,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.908421Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.908421Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 762217,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 312373,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 138661,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 323417,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.914923Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.914923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136143,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.919574Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.919574Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134232,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91559,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136143,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.919574Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.919574Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589849,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.923284Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.923284Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478802,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.925477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.925477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478802,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134232,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91559,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136143,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365690,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.925477Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.925477Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 220656,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.930521Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.930521Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 357098,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.935261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.935261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478802,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134232,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91559,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136143,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 414190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357098,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.935261Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.935261Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.937366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.937366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478802,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134232,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91559,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136143,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357098,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.937366Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.937366Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91589,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.939728Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.939728Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478802,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134232,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91589,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136143,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.939728Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.939728Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.942562Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.942562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478802,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134232,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 91589,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 987389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.942562Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.942562Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67589,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 963389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.948078Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.948078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478802,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134232,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67589,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 963389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.948078Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.948078Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.961804Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.961804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478802,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67589,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 963389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.961804Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.961804Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.971330Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.971330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478802,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 963389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.971330Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.971330Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474713,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.975000Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.975000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474713,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 963389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.975000Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.975000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391685,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.982090Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.982090Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 973389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:27.996812Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.996812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474713,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 973389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:27.996812Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:27.996812Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 22,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.004274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.004274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474713,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 391685,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 99067,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 266433,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 160978,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 215154,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 973389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 228037,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 497762,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 309275,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 99889,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 659378,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:28.004274Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474713,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 98054,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 973389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:28.004274Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 23,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.004277Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.004277Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68053,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.011412Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.011412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474713,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 68053,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 973389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.011412Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.011412Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 16854,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6440c4d1-0e8f-e07f-0f9a-34e9fa65762e\",\n    \"localTimestamp\": 2019-04-01T00:00:28.043014Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.005Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:27.565Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4088.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:28.043014Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:27.548Z,\n    \"sellVolume\": 8150,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.000Z,\n    \"trades\": 3,\n    \"type\": \"trade_bar\",\n    \"volume\": 8150,\n    \"vwap\": 4088.5,\n  },\n  {\n    \"amount\": 16146,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7064f3f1-021f-e006-3658-5c5a645d9dd3\",\n    \"localTimestamp\": 2019-04-01T00:00:28.043014Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.005Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 940389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.043042Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.043042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474713,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 68053,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 940389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.043042Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.043042Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 444712,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.043046Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.043046Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 444712,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 68053,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 940389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 451769,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.043046Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.043046Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 162497,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.043049Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.043049Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588769,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.052940Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.052940Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 452069,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.056540Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.056540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 444712,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 68053,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 940389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.056540Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.056540Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1927614,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 1662425,\n        \"price\": 4129,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.060926Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.060926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 950389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.063135Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.063135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 444712,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 68053,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136105,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 950389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.063135Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.063135Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.079229Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.079229Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 444712,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 68053,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 950389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 452069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.079229Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.079229Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.079234Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.079234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 444712,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 68053,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 950389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.079234Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.079234Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60053,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 452712,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.087302Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.087302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 452712,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60053,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 950389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.087302Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.087302Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98903,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.087330Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.087330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60678,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.095195Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.095195Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 452712,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60678,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 950389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.095195Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.095195Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 954389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.104037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.104037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 452712,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60678,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 954389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.104037Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.104037Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 452712,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60678,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 134392,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 950389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:28.104037Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.173072Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.173072Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 452712,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60678,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 954389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.173072Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.173072Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527526,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 98883,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.173857Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.173857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391593,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 60896,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.173996Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.173996Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 452712,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60896,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 954389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.173996Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.173996Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 162509,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.174093Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.174093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 452762,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.174528Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.174528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 452762,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 954389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.174528Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.174528Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 510,\n        \"price\": 6133,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.175077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.175077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 959389,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.175112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.175112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 452762,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 959389,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.175112Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.175112Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371737,\n        \"price\": 3971,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.175491Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.175491Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 906983,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.175500Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.175500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1394,\n    \"exchange\": \"bitmex\",\n    \"id\": \"24ae1fcf-ea80-77d4-f474-a589a86787bc\",\n    \"localTimestamp\": 2019-04-01T00:00:28.192086Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.164Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 957995,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.192117Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.192117Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 452762,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 957995,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.192117Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.192117Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 453262,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 958495,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.192121Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.192121Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 453262,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 958495,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.192121Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.192121Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 448262,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.192123Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.192123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 448262,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 958495,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.192123Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.192123Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 959295,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.194633Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.194633Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 448262,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 959295,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.194633Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.194633Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 67662,\n        \"price\": 4047.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.197056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.197056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1e6016ad-cd54-7fe9-76a8-ba962a0001f6\",\n    \"localTimestamp\": 2019-04-01T00:00:28.209769Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.186Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 954295,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.209801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.209801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 448262,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 954295,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.209801Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.209801Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 448262,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 959295,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:28.209801Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 103992,\n        \"price\": 4191,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.215409Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.215409Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 196260,\n        \"price\": 4136,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.224976Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.224976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3354228,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.229630Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.229630Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472876,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.232552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.232552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472876,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 954295,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.232552Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.232552Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 239579,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 621536,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.234220Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.234220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582549,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.241624Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.241624Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 47123,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.243430Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.243430Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305091,\n        \"price\": 4034,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.246911Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.246911Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 216790,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 560075,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.248301Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.248301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1085,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c8551919-319a-1fa5-dfac-df37092a9cb7\",\n    \"localTimestamp\": 2019-04-01T00:00:28.268477Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.240Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 953210,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.268506Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.268506Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472876,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 953210,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404190,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357128,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.268506Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.268506Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 953188,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 404146,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 357040,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 99779,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 220436,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 87645,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 254132,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 171204,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 131711,\n        \"price\": 4067.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.276600Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.276600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472876,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 953188,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404146,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357040,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.276600Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.276600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 6148,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6a35f45f-26b6-a302-8b5e-fcfa77bfd8b2\",\n    \"localTimestamp\": 2019-04-01T00:00:28.287147Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.262Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 947040,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.287175Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.287175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472876,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135017,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68079,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947040,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458069,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404146,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330267,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357040,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.287175Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.287175Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3432,\n        \"price\": 4291,\n      },\n      {\n        \"amount\": 142012,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 544836,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 99799,\n        \"price\": 4239,\n      },\n      {\n        \"amount\": 1386199,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 322816,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 465259,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 185192,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1301174,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 594908,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 407284,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 262113,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 963002,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1787232,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 312327,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 582595,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 215116,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 266471,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 98845,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 68117,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 135048,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 472907,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 497800,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 309237,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 239625,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 621490,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 305451,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 560029,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 549892,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 271294,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 528243,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 136732,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 290782,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 86547,\n        \"price\": 4013.5,\n      },\n      {\n        \"amount\": 280561,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 33765,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 13818,\n        \"price\": 3938.5,\n      },\n      {\n        \"amount\": 712342,\n        \"price\": 3889,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.287186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.287186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135048,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 67749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68117,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947040,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.287186Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.287186Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 261047,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 998155,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.291736Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.291736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497780,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.295139Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.295139Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152978,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.297153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.297153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2331425,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 3353562,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1284936,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2723840,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.302761Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.302761Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 60846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135048,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947040,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:28.302761Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 571695,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.306719Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.306719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98641,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.306744Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.306744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 750687,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 682595,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.310160Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.310160Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 66749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 61846,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.314542Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.314542Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 61846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135048,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 66749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68117,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947040,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.314542Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.314542Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135072,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.316663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.316663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 61846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135072,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 66749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68117,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947040,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.316663Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.316663Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 228138,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.322168Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.322168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 183192,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 410495,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 288782,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 317178,\n        \"price\": 3964,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.334168Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.334168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4151348,\n        \"price\": 4200,\n      },\n      {\n        \"amount\": 472865,\n        \"price\": 4145.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.335238Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.335238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 563695,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.341049Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.341049Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1827232,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 722217,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.348327Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.348327Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391393,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.350759Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.350759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 639869,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 357876,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.362237Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.362237Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 357826,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 215166,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.371517Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.371517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1867232,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 682217,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.379690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.379690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1907232,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 642217,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.380667Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.380667Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 163016,\n        \"price\": 4106.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 255332,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 128192,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.391202Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.391202Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 947041,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.393856Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.393856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 61846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135072,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 66749,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68117,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947041,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.393856Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.393856Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184526,\n        \"price\": 4127.5,\n      },\n      {\n        \"amount\": 581459,\n        \"price\": 4127,\n      },\n      {\n        \"amount\": 94043,\n        \"price\": 4126.5,\n      },\n      {\n        \"amount\": 848711,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 69076,\n        \"price\": 4125.5,\n      },\n      {\n        \"amount\": 68147,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 66779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 472937,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.402464Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.402464Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472937,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 66779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68147,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947041,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.402464Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.402464Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472907,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 61846,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135072,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947041,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:28.402464Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1091689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.402467Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.402467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472967,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.413470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.413470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472967,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 66779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68147,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947041,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.413470Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.413470Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 191418,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.417241Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.417241Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.421145Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.421145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 66779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68147,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947041,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.421145Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.421145Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164216,\n        \"price\": 4106.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.538854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.538854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947041,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:28.538854Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98766,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 68022,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.542465Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.542465Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 61876,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 66779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68022,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947041,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.542465Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.542465Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153478,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 98266,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.550225Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.550225Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 907483,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 152978,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.556396Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.556396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8127878,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 750387,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 3353262,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1844511,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 1908066,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 1754910,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 508157,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 1610896,\n        \"price\": 3950,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.561060Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.561060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184771,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.567955Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.567955Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 62501,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.587718Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.587718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 62501,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 66779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68022,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947041,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.587718Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.587718Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152774,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.596634Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.596634Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550595,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215625,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.602646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.602646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 62501,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 947041,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:28.602646Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 1774,\n    \"exchange\": \"bitmex\",\n    \"id\": \"aad46eef-fd0a-7990-79d7-b1d8d46e18c2\",\n    \"localTimestamp\": 2019-04-01T00:00:28.622825Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.595Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 945267,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.622848Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.622848Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 62501,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 66779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68022,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 945267,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.622848Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.622848Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 5575,\n    \"exchange\": \"bitmex\",\n    \"id\": \"48896802-deb5-c308-14af-57493360a009\",\n    \"localTimestamp\": 2019-04-01T00:00:28.634246Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.607Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 939692,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.634273Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.634273Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 62501,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 66779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68022,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 939692,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.634273Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.634273Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 410571,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 249030,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 861084,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 907635,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 683021,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.641378Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.641378Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68647,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.655278Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.655278Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 62501,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 66779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68647,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 939692,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.655278Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.655278Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 50365,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.655323Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.655323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50365,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 78779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68647,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 939692,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357002,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.655323Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.655323Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.668746Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.668746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 78779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68647,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 939692,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.668746Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.668746Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1158651,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 1769526,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 807776,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 3353202,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 681358,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 309177,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 522313,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 985268,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1436920,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 682961,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.673777Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.673777Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 10944,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d6ba782c-a4fc-7f0e-90fe-2d7b6332a2dd\",\n    \"localTimestamp\": 2019-04-01T00:00:28.697145Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.671Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 928748,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.697175Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.697175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 78779,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68647,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928748,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.697175Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.697175Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78479,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.711682Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.711682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 78479,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68647,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928748,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.711682Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.711682Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928748,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:28.711682Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.711717Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.711717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 78479,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928748,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.711717Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.711717Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 476187,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.714198Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.714198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 476187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 78479,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928748,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.714198Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.714198Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 309077,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 659478,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.716087Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.716087Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 637069,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 354096,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 519513,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.721355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.721355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 393438,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 76435,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.723646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.723646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 476187,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928748,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.723646Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.723646Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 634269,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 351296,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 516713,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.727479Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.727479Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1300924,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 1927364,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 2331175,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 1769276,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 3352952,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 516463,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1436670,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1284686,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1844261,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 2723590,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.733342Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.733342Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 476351,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928912,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.740039Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.740039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 476351,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.740039Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.740039Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 985269,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.742162Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.742162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478351,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.748015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.748015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478351,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 68947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.748015Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.748015Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152474,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.749493Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.749493Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 69116,\n        \"price\": 4125.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.752098Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.752098Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390677,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.756342Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.756342Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 74947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.762255Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.762255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478351,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 76435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 74947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.762255Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.762255Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.764254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.764254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478351,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 74947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.764254Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.764254Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 962402,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.766158Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.766158Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 625573,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 313613,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 83566,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 538325,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 379064,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 952669,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 500076,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 150680,\n        \"price\": 4064.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.771039Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.771039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 254332,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 127191,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1029589,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 192419,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.776248Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.776248Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 410651,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 907605,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.778114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.778114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 183625,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.785816Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.785816Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389677,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.787801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.787801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.791026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.791026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478351,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.791026Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.791026Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 179125,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.802938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.802938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 478351,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:28.802938Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 544795,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.803011Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.803011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3465,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dfed795f-4e92-30ab-b54d-8b6cbfee9415\",\n    \"localTimestamp\": 2019-04-01T00:00:28.827983Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.802Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.828020Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.828020Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474886,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.828020Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.828020Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474765,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.837084Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.837084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474765,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.837084Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.837084Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450151,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.839402Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.839402Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450151,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 928912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.839402Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.839402Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 836084,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 1932232,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 223291,\n        \"price\": 4046.5,\n      },\n      {\n        \"amount\": 182996,\n        \"price\": 4045.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.841338Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.841338Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 228338,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.843356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.843356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1050337,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 183666,\n        \"price\": 4034,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.853313Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.853313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450151,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050337,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.853313Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.853313Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98683,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.859068Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.859068Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1159651,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 246227,\n        \"price\": 4108.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.861978Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.861978Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.870026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.870026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450151,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.870026Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.870026Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98668,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 450166,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.873753Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.873753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450166,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.873753Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.873753Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144474,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.883148Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.883148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 391518,\n        \"price\": 3939,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.883764Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.883764Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 41,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2ed74782-0adc-1da6-39ba-62bb3f04e658\",\n    \"localTimestamp\": 2019-04-01T00:00:28.907497Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.875Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450125,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.907526Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.907526Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450125,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.907526Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.907526Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 450166,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:28.907526Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 516626,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 88828,\n        \"price\": 4059.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.907560Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.907560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2718590,\n        \"price\": 4040,\n      },\n      {\n        \"amount\": 2158010,\n        \"price\": 4030,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.907562Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.907562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 8177.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.907565Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.907565Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 451125,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.916663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.916663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 451125,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75947,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.916663Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.916663Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.926100Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.926100Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 181902,\n        \"price\": 3991,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.930830Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.930830Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 516126,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.933734Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.933734Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3392952,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 796084,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.937076Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.937076Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 602769,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 98072,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.941514Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.941514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84154,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.944365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.944365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305077,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 327417,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.947192Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.947192Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632069,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 349096,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 311413,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 513926,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.953956Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.953956Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 262113,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 999221,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.956360Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.956360Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 186419,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.959020Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.959020Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.962300Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.962300Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 451125,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.962300Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.962300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2331841,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 3393618,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1285352,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 2719256,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.967669Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.967669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 751187,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 683761,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.980251Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.980251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185192,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 412651,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 290782,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 319178,\n        \"price\": 3964,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.981072Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.981072Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1009542,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.986109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.986109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 454125,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.992739Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.992739Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 454125,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:28.992739Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.992739Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 628792,\n        \"price\": 4242,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:28.999152Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:28.999152Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 457125,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.002733Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.002733Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 454125,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 389677,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 98668,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 184771,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 144474,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 215166,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 228338,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 497780,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 305077,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 99779,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 659478,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:29.002733Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 457125,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 70435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.002733Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.002733Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 454125,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 50395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:29.002733Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 629869,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 346896,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 309213,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 511726,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.008480Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.008480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 71435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.008515Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.008515Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 457125,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 71435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050582,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.008515Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.008515Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1050782,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.014346Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.014346Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 457125,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 71435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050782,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.014346Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.014346Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 210,\n    \"exchange\": \"bitmex\",\n    \"id\": \"84b5c10a-dce0-5f5e-9a9e-082be2e9845b\",\n    \"localTimestamp\": 2019-04-01T00:00:29.031135Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.004Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 3506,\n    \"close\": 4089,\n    \"closeTimestamp\": 2019-04-01T00:00:28.875Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:29.031135Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:28.005Z,\n    \"sellVolume\": 64920,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.000Z,\n    \"trades\": 11,\n    \"type\": \"trade_bar\",\n    \"volume\": 68426,\n    \"vwap\": 4088.5256189167862,\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 456915,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.031163Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.031163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 456915,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 71435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050782,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 357032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.031163Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.031163Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 625571,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 220438,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.031167Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.031167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 536795,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.045793Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.045793Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 683478,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.059092Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.059092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 811824,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.070150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.070150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 98653,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.075995Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.075995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 367032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.080057Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.080057Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 456915,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 135102,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 71435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050782,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.080057Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.080057Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 104779,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 184125,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.082541Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.082541Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 471283,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 973109,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 180224,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 103199,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 159642,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.086014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.086014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 159642,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 71435,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050782,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.086014Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.086014Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 200125,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.087845Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.087845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 71459,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.094660Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.094660Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 159642,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 71459,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050782,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.094660Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.094660Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 848741,\n        \"price\": 4126,\n      },\n      {\n        \"amount\": 69146,\n        \"price\": 4125.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.102616Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.102616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 159642,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050782,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:29.102616Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 63471,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.247108Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.247108Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144974,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 102699,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 105279,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 682978,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.268304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.268304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 215416,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 179974,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.268313Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.268313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 48,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a8385408-acad-e1b4-4f5d-fbc463f2fb60\",\n    \"localTimestamp\": 2019-04-01T00:00:29.285912Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.253Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1050734,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.285951Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.285951Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 159642,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 71459,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050734,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.285951Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.285951Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 105458,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.285954Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.285954Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 712178,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.290055Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.290055Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 127241,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.290086Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.290086Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 75981,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050764,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.305005Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.305005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 159642,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 71459,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75981,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050764,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.305005Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.305005Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 159642,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050734,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:29.305005Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 970209,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.305007Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.305007Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1935032,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 514526,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.326638Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.326638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 389303,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.328634Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.328634Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 139485,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.330153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.330153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 159642,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139485,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75981,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050764,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.330153Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.330153Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.346020Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.346020Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 159642,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75981,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050764,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.346020Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.346020Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632669,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1937832,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 517326,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.351915Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.351915Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a9b1c3ba-e1f6-5aca-1bdd-44083ebe0a16\",\n    \"localTimestamp\": 2019-04-01T00:00:29.369076Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.342Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1050761,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.369175Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.369175Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 159642,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75981,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050761,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.369175Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.369175Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144374,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.369180Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.369180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8128178,\n        \"price\": 4150,\n      },\n      {\n        \"amount\": 751487,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 3393918,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1844561,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 1908366,\n        \"price\": 4025,\n      },\n      {\n        \"amount\": 1755210,\n        \"price\": 4000,\n      },\n      {\n        \"amount\": 508457,\n        \"price\": 3975,\n      },\n      {\n        \"amount\": 1611196,\n        \"price\": 3950,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.375298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.375298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"bitmex\",\n    \"id\": \"7ccf766a-cdc4-241c-0cc7-d206cdb102fc\",\n    \"localTimestamp\": 2019-04-01T00:00:29.392835Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.364Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1050711,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.392861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.392861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 159642,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75981,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050711,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.392861Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.392861Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 160267,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.393986Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.393986Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432381,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160267,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 75981,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050711,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367032,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.393986Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.393986Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 103792,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 322616,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 76181,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 432481,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050611,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 33965,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 171726,\n        \"price\": 3986.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.399032Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.399032Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432481,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160267,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76181,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050611,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.399032Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.399032Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 70,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d8da2500-a8a8-510d-9be0-4e06c2c0817d\",\n    \"localTimestamp\": 2019-04-01T00:00:29.413065Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.389Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432411,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.413098Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.413098Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432411,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160267,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76181,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050611,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.413098Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.413098Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432481,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160267,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1050611,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:29.413098Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1159711,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 1769336,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 811884,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 3393978,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 681418,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 305137,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 517386,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 952729,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 1436730,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 683821,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.420616Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.420616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1062876,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.424208Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.424208Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432411,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160267,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76181,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1062876,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.424208Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.424208Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432449,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1062895,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.427158Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.427158Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432449,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160267,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76181,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1062895,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.427158Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.427158Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 160315,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 432497,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.433650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.433650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432497,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160315,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1062895,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.433650Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.433650Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 716678,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.440184Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.440184Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 495580,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 103079,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.453686Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.453686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 493380,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 100879,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.468136Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.468136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1064895,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 340647,\n        \"price\": 3782,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.470588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.470588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432497,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160315,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1064895,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.470588Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.470588Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 100881,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.480412Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.480412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 529778,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 69669,\n        \"price\": 4047.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.486398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.486398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193964,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 237043,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.504989Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.504989Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432497,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160315,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1064895,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:29.504989Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 98112,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.504992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.504992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2064746,\n        \"price\": 4030,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.509442Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.509442Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1067895,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.511729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.511729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432497,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 49395,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160315,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 140110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067895,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.511729Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.511729Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 692678,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.530620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.530620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 36363,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.532688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.532688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432497,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36363,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160315,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 153110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067895,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.532688Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.532688Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1301174,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 1927614,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 2332091,\n        \"price\": 4120,\n      },\n      {\n        \"amount\": 1769586,\n        \"price\": 4110,\n      },\n      {\n        \"amount\": 3394228,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 517636,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 1436980,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 1285602,\n        \"price\": 4060,\n      },\n      {\n        \"amount\": 1844811,\n        \"price\": 4050,\n      },\n      {\n        \"amount\": 2719506,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.544976Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.544976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 218338,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.557262Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.557262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 26,\n    \"exchange\": \"bitmex\",\n    \"id\": \"578cbe37-d2a5-b337-2b64-dda7fb3c1049\",\n    \"localTimestamp\": 2019-04-01T00:00:29.578047Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.550Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432471,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.578082Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.578082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432471,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36363,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160315,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 153110,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067895,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.578082Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.578082Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1259306,\n        \"price\": 4011,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.578084Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.578084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 193035,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.578087Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.578087Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432471,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36363,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 193035,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067895,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.578087Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.578087Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.578090Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.578090Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432471,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36363,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067895,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.578090Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.578090Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432486,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.600687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.600687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432486,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36363,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.600687Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.600687Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432471,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36363,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067895,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:29.600687Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 313327,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 470283,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.601839Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.601839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1149,\n        \"price\": 4416,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.611261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.611261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.615827Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.615827Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432486,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366832,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.615827Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.615827Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 366792,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 609408,\n        \"price\": 4066.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.619217Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.619217Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432486,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366792,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.619217Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.619217Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 695478,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.630437Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.630437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 192730,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 603465,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.635481Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.635481Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 139933,\n        \"price\": 3927,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.645656Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.645656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 424308,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.652874Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.652874Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 424308,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366792,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.652874Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.652874Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416130,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.656503Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.656503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416130,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366792,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.656503Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.656503Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 407952,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.659546Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.659546Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 407952,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366792,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.659546Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.659546Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 399774,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.663868Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.663868Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 399774,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366792,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.663868Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.663868Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391596,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.668941Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.668941Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391596,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366792,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.668941Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.668941Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 962209,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.676349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.676349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383418,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.678292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.678292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383418,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366792,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.678292Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.678292Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 375240,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.680727Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.680727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 375240,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366792,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.680727Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.680727Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367062,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.690276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.690276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367062,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067910,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404115,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366792,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.690276Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.690276Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 493468,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 200235,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 138881,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 98442,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 271954,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 235092,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 611388,\n        \"price\": 4066.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.690392Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.690392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367062,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.690392Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.690392Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358884,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.692700Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.692700Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358884,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.692700Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.692700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 350706,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.696592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.696592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 350706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.696592Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.696592Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141574,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 189930,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.705150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.705150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 350706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:29.705150Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 360706,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.717106Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.717106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 360706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458100,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 330305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.717106Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.717106Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 217816,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.720336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.720336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 138854,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 189890,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.734018Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.734018Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 426619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 361085,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.734049Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.734049Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 360706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 361085,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.734049Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.734049Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 361384,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.734052Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.734052Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 361384,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 361085,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.734052Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.734052Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185174,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.738133Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.738133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180140,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 389137,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 218504,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 304971,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.746366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.746366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359618,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.749085Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.749085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 361085,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.749085Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.749085Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 962709,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 179640,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 190390,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 199735,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.749111Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.749111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 963209,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 138354,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 190890,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 602965,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.759471Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.759471Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 179890,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 388887,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 218754,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 493218,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.759496Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.759496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 300934,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.759499Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.759499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 300934,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 361085,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.759499Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.759499Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 138604,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 388637,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 219004,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 492968,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.763552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.763552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 183735,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.763578Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.763578Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180056,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 76074,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 493134,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 304805,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.774162Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.774162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 300934,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76074,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 361085,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.774162Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.774162Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 309243,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.780401Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.780401Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 643217,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 680418,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.783466Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.783466Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76098,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.786686Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.786686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 300934,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 36044,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76098,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 361085,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.786686Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.786686Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34725,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 301209,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.793636Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.793636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 301209,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 34725,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76098,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 361085,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.793636Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.793636Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 644562,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 107528,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 186374,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 964602,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 634869,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 218990,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 562229,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 99642,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 255532,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 128441,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 158767,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.802737Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.802737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 301209,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 34725,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1067921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:29.802737Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180055,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 388638,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.802740Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.802740Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1938332,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.804576Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.804576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 214890,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.812764Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.812764Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645762,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 108728,\n        \"price\": 4104.5,\n      },\n      {\n        \"amount\": 187574,\n        \"price\": 4103.5,\n      },\n      {\n        \"amount\": 966802,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 637069,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221190,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 564429,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 100842,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 159967,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.817254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.817254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 216816,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.819931Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.819931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1066921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.822604Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.822604Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 301209,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 34725,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76098,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1066921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 361085,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.822604Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.822604Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371085,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.822621Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.822621Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 301209,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 34725,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76098,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1066921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 371085,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.822621Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.822621Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 19498,\n        \"price\": 3842.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.828981Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.828981Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 214840,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 250818,\n        \"price\": 4054.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.831267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.831267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 602842,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.832790Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.832790Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 636719,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 470633,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.852381Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.852381Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 23,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.860937Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.860937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 24,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.863388Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.863388Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1076921,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.869854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.869854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 301209,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 34725,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76098,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1076921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404137,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 371085,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.869854Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.869854Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 639519,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1939262,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.869923Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.869923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340305,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.876314Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.876314Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 301209,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 34725,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76098,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1076921,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.876314Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.876314Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3401,\n        \"price\": 4291,\n      },\n      {\n        \"amount\": 141981,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 544743,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 99892,\n        \"price\": 4239,\n      },\n      {\n        \"amount\": 1386106,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 322709,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 465182,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 185269,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1301097,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 594985,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 407222,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 262175,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 966756,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1939308,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 313281,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 470679,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 216778,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 180093,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 105420,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 76136,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 197156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 301240,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1076952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 13725,\n        \"price\": 3938.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.884023Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.884023Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 301240,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 34725,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76136,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1076952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.884023Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.884023Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 325567,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 239226,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.884042Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.884042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8873,\n        \"price\": 4485,\n      },\n      {\n        \"amount\": 2194,\n        \"price\": 4481,\n      },\n      {\n        \"amount\": 1334,\n        \"price\": 4477,\n      },\n      {\n        \"amount\": 694,\n        \"price\": 4473,\n      },\n      {\n        \"amount\": 31028,\n        \"price\": 4469,\n      },\n      {\n        \"amount\": 30088,\n        \"price\": 4465,\n      },\n      {\n        \"amount\": 45778,\n        \"price\": 4461,\n      },\n      {\n        \"amount\": 54625,\n        \"price\": 4457,\n      },\n      {\n        \"amount\": 2678,\n        \"price\": 4453,\n      },\n      {\n        \"amount\": 4528,\n        \"price\": 4449,\n      },\n      {\n        \"amount\": 165777,\n        \"price\": 4445,\n      },\n      {\n        \"amount\": 6978,\n        \"price\": 4441,\n      },\n      {\n        \"amount\": 1778,\n        \"price\": 4437,\n      },\n      {\n        \"amount\": 9278,\n        \"price\": 4433,\n      },\n      {\n        \"amount\": 4008,\n        \"price\": 4429,\n      },\n      {\n        \"amount\": 26295,\n        \"price\": 4425,\n      },\n      {\n        \"amount\": 11978,\n        \"price\": 4421,\n      },\n      {\n        \"amount\": 31564,\n        \"price\": 4417,\n      },\n      {\n        \"amount\": 51493,\n        \"price\": 4413,\n      },\n      {\n        \"amount\": 9528,\n        \"price\": 4409,\n      },\n      {\n        \"amount\": 22378,\n        \"price\": 4405,\n      },\n      {\n        \"amount\": 5958,\n        \"price\": 4401,\n      },\n      {\n        \"amount\": 5381,\n        \"price\": 4397,\n      },\n      {\n        \"amount\": 5372,\n        \"price\": 4393,\n      },\n      {\n        \"amount\": 81352,\n        \"price\": 4389,\n      },\n      {\n        \"amount\": 70720,\n        \"price\": 4385,\n      },\n      {\n        \"amount\": 35109,\n        \"price\": 4381,\n      },\n      {\n        \"amount\": 101976,\n        \"price\": 4377,\n      },\n      {\n        \"amount\": 3023,\n        \"price\": 4373,\n      },\n      {\n        \"amount\": 15930,\n        \"price\": 4369,\n      },\n      {\n        \"amount\": 22003,\n        \"price\": 4365,\n      },\n      {\n        \"amount\": 16778,\n        \"price\": 4361,\n      },\n      {\n        \"amount\": 6264,\n        \"price\": 4357,\n      },\n      {\n        \"amount\": 10730,\n        \"price\": 4353,\n      },\n      {\n        \"amount\": 174054,\n        \"price\": 4349,\n      },\n      {\n        \"amount\": 18738,\n        \"price\": 4345,\n      },\n      {\n        \"amount\": 8128,\n        \"price\": 4341,\n      },\n      {\n        \"amount\": 13269,\n        \"price\": 4337,\n      },\n      {\n        \"amount\": 59570,\n        \"price\": 4333,\n      },\n      {\n        \"amount\": 11298,\n        \"price\": 4329,\n      },\n      {\n        \"amount\": 22430,\n        \"price\": 4325,\n      },\n      {\n        \"amount\": 16328,\n        \"price\": 4321,\n      },\n      {\n        \"amount\": 22280,\n        \"price\": 4317,\n      },\n      {\n        \"amount\": 14187,\n        \"price\": 4313,\n      },\n      {\n        \"amount\": 8957,\n        \"price\": 4309,\n      },\n      {\n        \"amount\": 7748,\n        \"price\": 4305,\n      },\n      {\n        \"amount\": 22918,\n        \"price\": 4301,\n      },\n      {\n        \"amount\": 7416,\n        \"price\": 4297,\n      },\n      {\n        \"amount\": 67554,\n        \"price\": 4293,\n      },\n      {\n        \"amount\": 12509,\n        \"price\": 4289,\n      },\n      {\n        \"amount\": 12367,\n        \"price\": 4285,\n      },\n      {\n        \"amount\": 39256,\n        \"price\": 4281,\n      },\n      {\n        \"amount\": 57204,\n        \"price\": 4277,\n      },\n      {\n        \"amount\": 28343,\n        \"price\": 4273,\n      },\n      {\n        \"amount\": 13873,\n        \"price\": 4269,\n      },\n      {\n        \"amount\": 41576,\n        \"price\": 4265,\n      },\n      {\n        \"amount\": 12446,\n        \"price\": 4261,\n      },\n      {\n        \"amount\": 4999,\n        \"price\": 4257,\n      },\n      {\n        \"amount\": 16178,\n        \"price\": 4253,\n      },\n      {\n        \"amount\": 88272,\n        \"price\": 4249,\n      },\n      {\n        \"amount\": 137383,\n        \"price\": 4245,\n      },\n      {\n        \"amount\": 27721,\n        \"price\": 4241,\n      },\n      {\n        \"amount\": 80854,\n        \"price\": 4237,\n      },\n      {\n        \"amount\": 114047,\n        \"price\": 4233,\n      },\n      {\n        \"amount\": 85022,\n        \"price\": 4229,\n      },\n      {\n        \"amount\": 228284,\n        \"price\": 4225,\n      },\n      {\n        \"amount\": 18224,\n        \"price\": 4221,\n      },\n      {\n        \"amount\": 63386,\n        \"price\": 4217,\n      },\n      {\n        \"amount\": 475684,\n        \"price\": 4213,\n      },\n      {\n        \"amount\": 43757,\n        \"price\": 4209,\n      },\n      {\n        \"amount\": 74471,\n        \"price\": 4205,\n      },\n      {\n        \"amount\": 19618,\n        \"price\": 4201,\n      },\n      {\n        \"amount\": 202242,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 99819,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 323387,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 464171,\n        \"price\": 4185,\n      },\n      {\n        \"amount\": 56523,\n        \"price\": 4181,\n      },\n      {\n        \"amount\": 578608,\n        \"price\": 4177,\n      },\n      {\n        \"amount\": 139625,\n        \"price\": 4173,\n      },\n      {\n        \"amount\": 154485,\n        \"price\": 4169,\n      },\n      {\n        \"amount\": 465860,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 176851,\n        \"price\": 4161,\n      },\n      {\n        \"amount\": 233813,\n        \"price\": 4157,\n      },\n      {\n        \"amount\": 299816,\n        \"price\": 4153,\n      },\n      {\n        \"amount\": 638045,\n        \"price\": 4149,\n      },\n      {\n        \"amount\": 1004678,\n        \"price\": 4145,\n      },\n      {\n        \"amount\": 372963,\n        \"price\": 4141,\n      },\n      {\n        \"amount\": 242013,\n        \"price\": 4137,\n      },\n      {\n        \"amount\": 437610,\n        \"price\": 4133,\n      },\n      {\n        \"amount\": 1663103,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 752165,\n        \"price\": 4125,\n      },\n      {\n        \"amount\": 216314,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 1093783,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 305771,\n        \"price\": 4113,\n      },\n      {\n        \"amount\": 474770,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 812562,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 194642,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 1939986,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 139282,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.915334Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.915334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 301240,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 34725,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197156,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1076952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:29.915334Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 220674,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 135386,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 392534,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 38621,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 297344,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.926304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.926304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297344,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38621,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 120386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1076952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.926304Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.926304Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 107386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 210156,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.934603Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.934603Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297344,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38621,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 107386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1076952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.934603Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.934603Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 221574,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.939502Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.939502Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.940536Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.940536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297344,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38621,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 210156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 107386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.940536Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.940536Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.944428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.944428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297344,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38621,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.944428Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.944428Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296594,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.951168Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.951168Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296594,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38621,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.951168Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.951168Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.960976Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.960976Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296594,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340305,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366836,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.960976Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.960976Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 490634,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.967218Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.967218Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 526978,\n        \"price\": 4117.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.977386Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.977386Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305305,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 214340,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.977389Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.977389Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 180218,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 105295,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 340430,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366711,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.981351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.981351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296594,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340430,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366711,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:29.981351Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.981351Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 603465,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 183235,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.981376Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.981376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224374,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 308105,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.985117Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.985117Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84200,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.989720Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.989720Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 308145,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:29.992672Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:29.992672Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 356711,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.005592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.005592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296594,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 392534,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 105295,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 180218,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 135386,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 224374,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340430,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366711,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 219004,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 490634,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 308145,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 214340,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 603465,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:30.005592Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296594,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340430,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356711,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.005592Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.005592Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296594,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:30.005592Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 450001,\n        \"price\": 4031,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.013111Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.013111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296275,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.016109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.016109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296275,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340430,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356711,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.016109Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.016109Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 221204,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 310345,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.026722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.026722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13818,\n        \"price\": 3938.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.029509Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.029509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 223404,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 312545,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.033384Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.033384Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137338,\n        \"price\": 4245,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.046763Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.046763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 356294,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.046795Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.046795Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296275,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 340430,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356294,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.046795Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.046795Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 342930,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.063840Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.063840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296275,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1082952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 342930,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356294,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.063840Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.063840Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297275,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1083952,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.069864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.069864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297275,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1083952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 342930,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356294,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.069864Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.069864Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67558,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.743540Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.743540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297275,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1083952,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427619,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435045,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:30.743540Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 83906,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.746339Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.746339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 124776,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.748006Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.748006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 619465,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.757983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.757983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227094,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.759334Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.759334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 214300,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.762403Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.762403Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 409151,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.764585Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.764585Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 488468,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.767071Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.767071Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 488473,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 312540,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.768722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.768722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 639537,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1940004,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 346914,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 643235,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 313299,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 680436,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 470697,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 963227,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 227112,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 135404,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 180236,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 105313,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 392552,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1083982,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 342960,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 223434,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 488503,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 312570,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 214330,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 619495,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 183265,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 625601,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 220468,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 221220,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.776093Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.776093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297275,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1083982,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 342960,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.776093Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.776093Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84288,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.778562Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.778562Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297320,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.792870Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.792870Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297320,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1083982,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 342960,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.792870Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.792870Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 221434,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.795680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.795680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 237148,\n        \"price\": 4051,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.797990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.797990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 142444,\n        \"price\": 3553,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.803241Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.803241Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297320,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1083982,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435075,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:30.803241Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 625499,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.804666Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.804666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1085194,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.806850Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.806850Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297320,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1085194,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 342960,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.806850Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.806850Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 18001,\n        \"price\": 4204.5,\n      },\n      {\n        \"amount\": 1004428,\n        \"price\": 4145,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.814178Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.814178Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445292,\n        \"price\": 4149.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 116659,\n        \"price\": 3991.5,\n      },\n      {\n        \"amount\": 181872,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 383898,\n        \"price\": 3990.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.818705Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.818705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.821460Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.821460Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297320,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1085194,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.821460Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.821460Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297694,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.826466Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.826466Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297694,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1085194,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 427649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.826466Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.826466Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 313269,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.834632Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.834632Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 397613,\n        \"price\": 3924,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.852511Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.852511Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1084194,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.854734Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.854734Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297694,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1084194,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.854734Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.854734Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 275163,\n        \"price\": 3929,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.865675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.865675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 208472,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 951629,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.867518Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.867518Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 207372,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 950529,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.871189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.871189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 326067,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.873369Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.873369Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1074194,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.877371Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.877371Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 297694,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1074194,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.877371Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.877371Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527336,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3394038,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1939814,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 962847,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220912,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.881261Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.881261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 307694,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.889435Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.889435Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 307694,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1074194,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.889435Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.889435Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312694,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.899657Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.899657Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312694,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1074194,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.899657Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.899657Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1069194,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.904749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.904749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312694,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1069194,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.904749Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.904749Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312694,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1074194,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:30.904749Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1069421,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.910819Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.910819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312694,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1069421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.910819Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.910819Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312605,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.920861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.920861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312605,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1069421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:30.920861Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.920861Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1093653,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 645632,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 262045,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 795954,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 643105,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.925110Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.925110Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 680446,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.926310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.926310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 183161,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.941368Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.941368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90313,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 407552,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.941375Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.941375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138281,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.941377Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.941377Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 625501,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 220466,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.941845Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.941845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403010,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.948965Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.948965Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 245257,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.956641Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.956641Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 183081,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:30.958036Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.958036Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 526258,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 590630,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 616889,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 346734,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 275739,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 206017,\n        \"price\": 4062.5,\n      },\n      {\n        \"amount\": 644583,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 203147,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.032730Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.032730Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312605,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 403010,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 90313,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 180236,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 135404,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 227112,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1069421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 221434,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 488503,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 312570,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 214330,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 619495,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:31.032730Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312605,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222156,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1069421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:31.032730Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445277,\n        \"price\": 4149.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 141106,\n        \"price\": 3992.5,\n      },\n      {\n        \"amount\": 421243,\n        \"price\": 3992,\n      },\n      {\n        \"amount\": 116599,\n        \"price\": 3991.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.036607Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.036607Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 313070,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 213830,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.040063Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.040063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 488753,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 312820,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.049922Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.049922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403009,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 222157,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.062165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.062165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312605,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222157,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1069421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.062165Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.062165Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 114313,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.064813Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.064813Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 312605,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 222157,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.064813Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.064813Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 337139,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.086624Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.086624Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 337139,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.086624Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.086624Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 336841,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120034Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120034Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 336841,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 400996,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.120034Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120034Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 337139,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:31.120034Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527221,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 3393923,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1939699,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 962617,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220726,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 114146,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120094Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120094Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120098Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120098Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 336841,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 426649,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 437075,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.120098Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120098Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 468531,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120106Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 142443,\n        \"price\": 3553,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 680448,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120123Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 458750,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 406167,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 336841,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 458750,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 406167,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.120127Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120127Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 491816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 336841,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 38639,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 491816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.120131Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120131Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 21588,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.120142Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 336841,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21588,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 491816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.120142Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.120142Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 332841,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.125329Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.125329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 332841,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21588,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 72240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 491816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.125329Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.125329Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1928014,\n        \"price\": 4130,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.125366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.125366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 488677,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 182929,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 625539,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 138053,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 326143,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 83984,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 602956,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 180602,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 327569,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 950719,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 528343,\n        \"price\": 4039,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.139097Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.139097Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 157472,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.140150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.140150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 407551,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.142938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.142938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90146,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 431551,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.180220Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.180220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 234053,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.246253Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.246253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 332841,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21588,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 491816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:31.246253Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416551,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 87240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.267609Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.267609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 332841,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21588,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 491816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.267609Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.267609Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305155,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 436520,\n        \"price\": 4038,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.293724Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.293724Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 223934,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.293729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.293729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416522,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 332870,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298627Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298627Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 332870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21588,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 491816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.298627Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298627Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391926,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 474545,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 812362,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 261870,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 795804,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 642980,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 625439,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 602831,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 950569,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 233878,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 487542,\n        \"price\": 4067,\n      },\n      {\n        \"amount\": 627895,\n        \"price\": 4063,\n      },\n      {\n        \"amount\": 304905,\n        \"price\": 4058,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298686Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 342870,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 342870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21588,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 491816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.298690Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298690Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 602852,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298696Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226112,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298699Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298699Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171702,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132091,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298711Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 448777,\n        \"price\": 4121.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298713Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244696,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 136756,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298715Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298715Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 324732,\n        \"price\": 3979,\n      },\n      {\n        \"amount\": 236374,\n        \"price\": 3978,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298720Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298720Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722741,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999274,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.298733Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.298733Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 114146,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 392522,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 342870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21588,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197617,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 491816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:31.305810Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171649,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132144,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305833Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131404,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 184236,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305839Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722717,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999298,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305842Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305842Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 757917,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305850Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305850Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 197639,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305853Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 342870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21588,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197639,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 491816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.305853Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305853Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138068,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305856Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 492816,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 342870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21588,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197639,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.305864Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305864Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132401,\n        \"price\": 4248,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305873Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305873Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 343038,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.305877Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305877Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 343038,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21588,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197639,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.305877Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.305877Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 266395,\n        \"price\": 4131,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.316250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.316250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21562,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.316271Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.316271Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 343038,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21562,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197639,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87240,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.316271Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.316271Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 222216,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 135300,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 388626,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 91136,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 17666,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 346934,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.316276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.316276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346934,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17666,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197639,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91136,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.316276Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.316276Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.324278Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.324278Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346934,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 197639,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91136,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.324278Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.324278Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 164919,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.326933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.326933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346934,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164919,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.326933Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.326933Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 187012,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 621356,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 228631,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 317981,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 133470,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 346440,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 435020,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 579748,\n        \"price\": 4040.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.334784Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.334784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 621456,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.336770Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.336770Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330578,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.339806Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.339806Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164919,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 356324,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.339806Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.339806Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 564349,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.348870Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.348870Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244643,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 136809,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.348925Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.348925Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.369979Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.369979Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164919,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.369979Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.369979Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2569823,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.377781Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.377781Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 225934,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.379987Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.379987Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 484142,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.402548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.402548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164919,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492816,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:31.402548Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 492416,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.404505Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.404505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164919,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.404505Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.404505Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.440995Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.440995Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164919,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.440995Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.440995Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164934,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1309396,\n        \"price\": 3990,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.447727Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330578,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164934,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.447727Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447727Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330593,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.447754Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330593,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164934,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 374902,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.447754Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447754Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 317996,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.447757Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.447760Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330593,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164934,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398496,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.447760Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447760Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1934699,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 752917,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.447768Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447768Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330593,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164934,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.447768Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.447768Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346784,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 222166,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.515594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.515594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330593,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164934,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:31.515594Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 206172,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 193442,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 587569,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 134200,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 483042,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 618395,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 345240,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 270754,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 949369,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 232778,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.548270Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.548270Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 221243,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.594916Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.594916Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 680269,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 184415,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.595037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.595037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 204972,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 192242,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 586369,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 133100,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 481942,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 617295,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 344040,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 269554,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 948169,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 231678,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.627483Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.627483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 388597,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 330622,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.667396Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.667396Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330622,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164934,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 492416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.667396Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.667396Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 317820,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.684809Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.684809Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330622,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164934,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.684809Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.684809Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 89,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2947441f-78a3-9f67-0bf9-da015502de9c\",\n    \"localTimestamp\": 2019-04-01T00:00:31.695872Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.902Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 306,\n    \"close\": 4089,\n    \"closeTimestamp\": 2019-04-01T00:00:29.550Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:31.695872Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4089,\n    \"openTimestamp\": 2019-04-01T00:00:29.004Z,\n    \"sellVolume\": 101,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:30.000Z,\n    \"trades\": 6,\n    \"type\": \"trade_bar\",\n    \"volume\": 407,\n    \"vwap\": 4088.8759213759213,\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90146,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 412597,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.726337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.726337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330622,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164934,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:31.726337Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1939699,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 757917,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.752722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.752722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 564379,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.777754Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.777754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238143,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 129541,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.783032Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.783032Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 521636,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.828267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.828267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 447731,\n        \"price\": 4151,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.838228Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.838228Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 387597,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.892549Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.892549Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239243,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 130641,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.892584Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.892584Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164894,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.892586Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.892586Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330622,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164894,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.892586Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.892586Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 533543,\n        \"price\": 3921,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.914645Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.914645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330622,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164894,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:31.914645Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 298,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0b82310b-dfc8-5184-67e3-89db5b71d465\",\n    \"localTimestamp\": 2019-04-01T00:00:31.914699Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.013Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 89,\n    \"close\": 4089,\n    \"closeTimestamp\": 2019-04-01T00:00:30.902Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:31.914699Z,\n    \"low\": 4089,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4089,\n    \"openTimestamp\": 2019-04-01T00:00:30.902Z,\n    \"sellVolume\": 0,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.000Z,\n    \"trades\": 1,\n    \"type\": \"trade_bar\",\n    \"volume\": 89,\n    \"vwap\": 4089,\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330640,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.914704Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.914704Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330640,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164894,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.914704Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.914704Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164842,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.914708Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.914708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330640,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:31.914708Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.914708Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 133200,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.914711Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.914711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131641,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1008542,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 172205,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 185418,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:31.950782Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:31.950782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 133015,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 184230,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 89961,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 387412,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 317808,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 213818,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 617283,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 187000,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 621444,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.033215Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.033215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330640,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123864,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 387597,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 90146,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 184415,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 133200,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 221243,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 225934,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 481942,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 317820,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 213830,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 617295,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:32.033215Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330640,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.033215Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.033215Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330640,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164842,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:32.033215Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 221427,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 133199,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 184414,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 90145,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 387596,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 481954,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 317820,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 213830,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 617295,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 187012,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.033265Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.033265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 564409,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.033270Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.033270Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 112386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.033270Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.033270Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 692413,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.180227Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.180227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 164842,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:32.180227Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 585295,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.180270Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.180270Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 181842,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.194978Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194978Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.194978Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194978Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445292,\n        \"price\": 4149.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 116674,\n        \"price\": 3991.5,\n      },\n      {\n        \"amount\": 181902,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 383958,\n        \"price\": 3990.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.194983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1103589,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.194990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1103589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.194990Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194990Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 151827,\n        \"price\": 4171,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.194992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1113589,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.194996Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194996Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1113589,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.194996Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.194996Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245830,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195003Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 468571,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 692433,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1113749,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195031Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195031Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1113749,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.195031Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195031Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 791604,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195063Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 468623,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 692459,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1113957,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195067Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17646,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1113957,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.195067Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195067Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 225944,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195071Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195071Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 72302,\n        \"price\": 4251,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195078Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195078Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 17631,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195081Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17631,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95386,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1113957,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.195081Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195081Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195085Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17631,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1113957,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.195085Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195085Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 602977,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.195088Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.195088Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 17931,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218609Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17931,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1113957,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.218609Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218609Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17631,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181842,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1113957,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497416,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:32.218609Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1844813,\n        \"price\": 4050,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218614Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218614Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2571989,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218637Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218637Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 484120,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218639Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 526978,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 590990,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 617069,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 346964,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 275829,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 206197,\n        \"price\": 4062.5,\n      },\n      {\n        \"amount\": 644943,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 203867,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218642Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218642Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 388196,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218645Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 445307,\n        \"price\": 4149.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 141196,\n        \"price\": 3992.5,\n      },\n      {\n        \"amount\": 421273,\n        \"price\": 3992,\n      },\n      {\n        \"amount\": 116734,\n        \"price\": 3991.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218647Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218647Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 629319,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 923817,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 133556,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 305078,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 2719420,\n        \"price\": 4040,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218656Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17931,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181842,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1113957,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.218663Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218663Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 133609,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 305185,\n        \"price\": 4058,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181947,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1114062,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 317950,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 220856,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 603107,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 160097,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218678Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218678Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330658,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17931,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181947,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1114062,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.218678Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218678Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330700,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218682Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218682Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330700,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17931,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181947,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1114062,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.218682Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218682Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 249220,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 924007,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 680459,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 90525,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221164,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218685Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330745,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218758Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218758Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330745,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17931,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181947,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1114062,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.218758Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218758Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722665,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999350,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218779Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218779Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171575,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132218,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218782Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 468344,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 290882,\n        \"price\": 4014,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218787Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218787Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722591,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999424,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218789Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218789Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722577,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999438,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218794Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1114072,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218802Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218802Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330745,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17931,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181947,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1114072,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.218802Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218802Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 691959,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218804Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171523,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132270,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.218807Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.218807Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 276831,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 1435978,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 210363,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 528775,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 612392,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 434016,\n        \"price\": 4066,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.220784Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.220784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1154222,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.220788Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.220788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330745,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17931,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181947,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1154222,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.220788Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.220788Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 24,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.221754Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.221754Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 25,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.221767Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.221767Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171509,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132284,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.237835Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.237835Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1154227,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.242864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.242864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330745,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 17931,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181947,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 123679,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1154227,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.242864Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.242864Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 225323,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 129303,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 392092,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 119783,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 21827,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 326849,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.245812Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.245812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326849,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21827,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181947,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 119783,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1154227,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.245812Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.245812Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 249335,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 924122,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 680574,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 90755,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221350,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.250663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.250663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 643105,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.256748Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.256748Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102254,\n        \"price\": 3918,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.265446Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.265446Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181934,\n        \"price\": 4172,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1820923,\n        \"price\": 4010,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.269455Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.269455Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171482,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132311,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.272366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.272366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 119794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.274667Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.274667Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326849,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21827,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181947,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 119794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1154227,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.274667Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.274667Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 330938,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.278107Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.278107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330938,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21827,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 119794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1154227,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.278107Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.278107Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 885324,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.279468Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.279468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 792527,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.311409Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.311409Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330938,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21827,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1154227,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:32.311409Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331010,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.320151Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.320151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331010,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 21827,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 119794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1154227,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.320151Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.320151Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244591,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 136861,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.324112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.324112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22127,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.338015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.338015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331010,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22127,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 119794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1154227,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.338015Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.338015Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171373,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132420,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.340483Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.340483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152267,\n        \"price\": 4171,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172267,\n        \"price\": 4009,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.348749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.348749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 311286,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.350607Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.350607Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1155502,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.358798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.358798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331010,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22127,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 119794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1155502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.358798Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.358798Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138079,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.362679Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.362679Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331216,\n        \"price\": 4211,\n      },\n      {\n        \"amount\": 375669,\n        \"price\": 4166,\n      },\n      {\n        \"amount\": 196091,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 216145,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 526883,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 424179,\n        \"price\": 4026,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.375325Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.375325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1016543,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.383370Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.383370Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525883,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 184918,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 586406,\n        \"price\": 4052,\n      },\n      {\n        \"amount\": 424664,\n        \"price\": 4032,\n      },\n      {\n        \"amount\": 461823,\n        \"price\": 4012,\n      },\n      {\n        \"amount\": 420773,\n        \"price\": 3992,\n      },\n      {\n        \"amount\": 389173,\n        \"price\": 3972,\n      },\n      {\n        \"amount\": 353326,\n        \"price\": 3952,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.396088Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.396088Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244517,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 136935,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.421151Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.421151Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331010,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22127,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1155502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 375302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:32.421151Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 373302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.423115Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.423115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331010,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22127,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.423115Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.423115Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1167502,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.430089Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.430089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331010,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22127,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1167502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.430089Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.430089Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 55007,\n        \"price\": 3966.5,\n      },\n      {\n        \"amount\": 152229,\n        \"price\": 3965.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.436154Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.436154Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1172502,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.443954Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.443954Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331010,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22127,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1172502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.443954Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.443954Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 521647,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.445655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.445655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326010,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.448805Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.448805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326010,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22127,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1172502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.448805Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.448805Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 691036,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.454299Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.454299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722550,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999465,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.455646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.455646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1017743,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 393192,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 188112,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 622544,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.463343Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.463343Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22227,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.466391Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.466391Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326010,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22227,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1172502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371082,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.466391Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.466391Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.480803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.480803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326010,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22227,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1172502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.480803Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.480803Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346914,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 468673,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.486235Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.486235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326052,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.492021Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.492021Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22227,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1172502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373302,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.492021Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.492021Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244503,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 136949,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.494454Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.494454Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.502154Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.502154Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22227,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1172502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.502154Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.502154Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22227,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1172502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373302,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:32.502154Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2573189,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 640737,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 181802,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 949369,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 132841,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 277931,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.506829Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.506829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18428,\n        \"price\": 3897.5,\n      },\n      {\n        \"amount\": 13874,\n        \"price\": 3896.5,\n      },\n      {\n        \"amount\": 119402,\n        \"price\": 3895.5,\n      },\n      {\n        \"amount\": 1200,\n        \"price\": 3894.5,\n      },\n      {\n        \"amount\": 18643,\n        \"price\": 3893.5,\n      },\n      {\n        \"amount\": 182141,\n        \"price\": 3892.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.522564Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.522564Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316052,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.526247Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.526247Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22227,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1172502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.526247Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.526247Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 949519,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.554222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.554222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 694932,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 221427,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 94651,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 389296,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.561909Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.561909Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1172502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.561909Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.561909Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1172802,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.627762Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.627762Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1172802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397223,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.627762Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.627762Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1172502,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:32.627762Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 617992,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.627798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.627798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 397323,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.627803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.627803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1172802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397323,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.627803Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.627803Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13061,\n        \"price\": 4254,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.627810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.627810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411651,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.627818Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.627818Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 223944,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.637593Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.637593Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 979671,\n        \"price\": 3956.5,\n      },\n      {\n        \"amount\": 14487,\n        \"price\": 3934.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.654734Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.654734Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1178802,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.658546Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.658546Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1178802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397323,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.658546Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.658546Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390396,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 623644,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.681156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.681156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 658753,\n        \"price\": 3930,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.684181Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.684181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1173802,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.697059Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.697059Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1173802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 397323,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.697059Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.697059Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722441,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999574,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.703766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.703766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1173802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:32.703766Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 132721,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.707113Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.707113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171299,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132494,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.709612Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.709612Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244476,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 136976,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.717628Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.717628Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 90220,\n        \"price\": 3812,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.722508Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.722508Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1171802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398323,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.733937Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.733937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1171802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398323,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.733937Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.733937Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171275,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132518,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.769061Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.769061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1018943,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 2574389,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 189212,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 183002,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 133921,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 279031,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.782060Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.782060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722367,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999648,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.802923Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.802923Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316052,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1171802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:32.802923Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 641937,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 950719,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.806588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.806588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1259806,\n        \"price\": 4011,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.820162Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.820162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244367,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137085,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.820192Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.820192Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 659253,\n        \"price\": 3930,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.825206Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.825206Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171218,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132575,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.828695Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.828695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171197,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132596,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.834504Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.834504Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 689932,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 387896,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.837823Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.837823Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171172,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132621,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.842708Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.842708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 950844,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 628976,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 90105,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.848148Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.848148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171160,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132633,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.849393Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.849393Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 631810,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 220466,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 154405,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 301672,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.856645Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.856645Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 792677,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.858232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.858232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 955844,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 186914,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.861381Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.861381Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 91220,\n        \"price\": 3812,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.864397Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.864397Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171139,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132654,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.895374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.895374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 882900,\n        \"price\": 3970.5,\n      },\n      {\n        \"amount\": 46066,\n        \"price\": 3969.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.904232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.904232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 356101,\n        \"price\": 4212.5,\n      },\n      {\n        \"amount\": 2675122,\n        \"price\": 4148,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.908648Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.908648Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 473745,\n        \"price\": 3915,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.915260Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.915260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391326,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 473995,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 811862,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 261420,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 792277,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 642755,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 631510,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 602757,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 950319,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 231228,\n        \"price\": 4071,\n      },\n      {\n        \"amount\": 487042,\n        \"price\": 4067,\n      },\n      {\n        \"amount\": 627345,\n        \"price\": 4063,\n      },\n      {\n        \"amount\": 304585,\n        \"price\": 4058,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.929433Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.929433Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316062,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.934242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.934242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316062,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1171802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398323,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:32.934242Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.934242Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722343,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999672,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.934271Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.934271Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722286,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999729,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.941007Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.941007Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722261,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999754,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.943292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.943292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 631810,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.946326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.946326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171113,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132680,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.948642Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.948642Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244293,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137159,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.950153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.950153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722249,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999766,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.953589Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.953589Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 300944,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 522375,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.963375Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.963375Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722228,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999787,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.968236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.968236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 628950,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.972421Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.972421Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383354,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.977093Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.977093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 641755,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 312286,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.991339Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.991339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94647,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:32.994279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.994279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722207,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999808,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.016198Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.016198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316062,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 383354,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 94647,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 186914,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 129303,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 221427,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1171802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398323,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 223944,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 484120,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 317950,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 245830,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 585295,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:33.016198Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316062,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1171802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:33.016198Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316077,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.019428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.019428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316077,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1171802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398323,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.019428Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.019428Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326077,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.027244Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.027244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326077,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1171802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398323,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.027244Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.027244Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 188214,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.028391Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.028391Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.031868Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.031868Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326077,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18331,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1171802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.031868Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.031868Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383343,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 18342,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.035112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.035112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326077,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18342,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1171802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.035112Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.035112Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1166802,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.036096Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.036096Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 326077,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18342,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1166802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.036096Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.036096Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331077,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.042713Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.042713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331077,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18342,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1166802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.042713Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.042713Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 450501,\n        \"price\": 4031,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.046921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.046921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331082,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.054577Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.054577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331082,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18342,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1166802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.054577Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.054577Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244269,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137183,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.059878Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.059878Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383332,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.068047Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.068047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331082,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1166802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.068047Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.068047Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 530351,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 231256,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.071205Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.071205Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244212,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137240,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.077273Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.077273Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 238143,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 132821,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.094505Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.094505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 237043,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 131721,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.098137Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.098137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244200,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137252,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.133845Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.133845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331082,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1166802,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:33.133845Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244175,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137277,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.140129Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.140129Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 231403,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.159709Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.159709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94947,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.164260Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.164260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1167029,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.165050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.165050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331082,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1167029,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.165050Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.165050Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 181922,\n        \"price\": 4172,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1820910,\n        \"price\": 4010,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.179156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.179156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 206072,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 132821,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.184344Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.184344Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 207172,\n        \"price\": 4101.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 133921,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.186213Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.186213Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 424686,\n        \"price\": 4026,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.188615Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.188615Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331097,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1167044,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.192697Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.192697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331097,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1167044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.192697Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.192697Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 629873,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.214148Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.214148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331097,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1167044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:33.214148Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4954,\n        \"price\": 4257,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.232864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.232864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152278,\n        \"price\": 4171,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 172280,\n        \"price\": 4009,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.246845Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.246845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 237648,\n        \"price\": 4051,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.285115Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.285115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 190457,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.326167Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.326167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 219466,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.330264Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.330264Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 633445,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.335340Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.335340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722181,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999834,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.373666Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.373666Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 243830,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.378980Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.378980Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 603107,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.381534Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.381534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.398273Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.398273Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1167044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.398273Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.398273Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 500,\n        \"price\": 6133,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.403708Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.403708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1167044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497428,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:33.403708Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90405,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.409244Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.409244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 192757,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.423722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.423722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244154,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137298,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.444065Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.444065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 261595,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.453043Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.453043Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.461024Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.461024Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1167044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.461024Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.461024Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129053,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 193007,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.461054Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.461054Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.480414Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.480414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.480414Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.480414Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.483717Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.483717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.483717Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.483717Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244133,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137319,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.494324Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.494324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 231903,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.496617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.496617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 43926,\n        \"price\": 4209,\n      },\n      {\n        \"amount\": 185438,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1416411,\n        \"price\": 4134,\n      },\n      {\n        \"amount\": 692641,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 249673,\n        \"price\": 4104,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.501250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.501250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18353,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:33.501250Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 223945,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.537713Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.537713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 129442,\n        \"price\": 3912,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.550527Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.550527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2624877,\n        \"price\": 3980,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.575735Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.575735Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 18306,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.579759Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.579759Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18306,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 181753,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.579759Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.579759Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625977,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 225323,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 86509,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 387228,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 22202,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.582232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.582232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22202,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.582232Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.582232Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 387189,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 22241,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.584573Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.584573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22241,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 366546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.584573Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.584573Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 634445,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.600212Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.600212Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22241,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:33.600212Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 634795,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.602385Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.602385Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171092,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132701,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.603873Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.603873Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 244107,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137345,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.617830Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.617830Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.632147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.632147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22241,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.632147Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.632147Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22121,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.635763Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.635763Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22121,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379839,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.635763Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.635763Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 600985,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 412570,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 227323,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 587295,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 271943,\n        \"price\": 4061.5,\n      },\n      {\n        \"amount\": 250107,\n        \"price\": 4039.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.704522Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.704522Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22121,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379839,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:33.704522Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.722701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.722701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22121,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.722701Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.722701Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 487242,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.750156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.750156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36392,\n        \"price\": 4457,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 247047,\n        \"price\": 3885,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.775467Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.775467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22145,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.803140Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.803140Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22145,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.803140Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.803140Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 331121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22121,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:33.803140Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 234143,\n        \"price\": 4065.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.809697Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.809697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 950719,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.818313Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.818313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 86349,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.826485Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.826485Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1021364,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 347477,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.859893Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.859893Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 347477,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22145,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94686,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 120794,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.859893Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.859893Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390838,\n        \"price\": 4260,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.867703Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.867703Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88066,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 127410,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.871361Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.871361Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 347477,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22145,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127410,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.871361Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.871361Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.889985Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.889985Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 223427,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 132949,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 383293,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 351373,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.895854Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.895854Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351373,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127410,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.895854Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.895854Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525771,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2574277,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1939587,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 625753,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221168,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.904994Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.904994Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351373,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157044,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:33.904994Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351533,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157204,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.919758Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.919758Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351533,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127410,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.919758Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.919758Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 22026,\n        \"price\": 4907,\n      },\n      {\n        \"amount\": 23216,\n        \"price\": 4879,\n      },\n      {\n        \"amount\": 17008,\n        \"price\": 4851,\n      },\n      {\n        \"amount\": 6369,\n        \"price\": 4795,\n      },\n      {\n        \"amount\": 9267,\n        \"price\": 4767,\n      },\n      {\n        \"amount\": 4752,\n        \"price\": 4711,\n      },\n      {\n        \"amount\": 2960,\n        \"price\": 4683,\n      },\n      {\n        \"amount\": 1688,\n        \"price\": 4599,\n      },\n      {\n        \"amount\": 1469,\n        \"price\": 4571,\n      },\n      {\n        \"amount\": 595,\n        \"price\": 4543,\n      },\n      {\n        \"amount\": 34512,\n        \"price\": 4515,\n      },\n      {\n        \"amount\": 39923,\n        \"price\": 4487,\n      },\n      {\n        \"amount\": 10384,\n        \"price\": 4459,\n      },\n      {\n        \"amount\": 249264,\n        \"price\": 4431,\n      },\n      {\n        \"amount\": 21446,\n        \"price\": 4403,\n      },\n      {\n        \"amount\": 91430,\n        \"price\": 4375,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 178026,\n        \"price\": 4007,\n      },\n      {\n        \"amount\": 681430,\n        \"price\": 3983,\n      },\n      {\n        \"amount\": 1499261,\n        \"price\": 3960,\n      },\n      {\n        \"amount\": 1026359,\n        \"price\": 3936,\n      },\n      {\n        \"amount\": 129598,\n        \"price\": 3912,\n      },\n      {\n        \"amount\": 712498,\n        \"price\": 3889,\n      },\n      {\n        \"amount\": 1697188,\n        \"price\": 3865,\n      },\n      {\n        \"amount\": 17347,\n        \"price\": 3841,\n      },\n      {\n        \"amount\": 163648,\n        \"price\": 3818,\n      },\n      {\n        \"amount\": 15094,\n        \"price\": 3794,\n      },\n      {\n        \"amount\": 335853,\n        \"price\": 3770,\n      },\n      {\n        \"amount\": 232843,\n        \"price\": 3746,\n      },\n      {\n        \"amount\": 106008,\n        \"price\": 3723,\n      },\n      {\n        \"amount\": 248882,\n        \"price\": 3699,\n      },\n      {\n        \"amount\": 236718,\n        \"price\": 3675,\n      },\n      {\n        \"amount\": 35752,\n        \"price\": 3652,\n      },\n      {\n        \"amount\": 32523,\n        \"price\": 3628,\n      },\n      {\n        \"amount\": 162989,\n        \"price\": 3604,\n      },\n      {\n        \"amount\": 330424,\n        \"price\": 3581,\n      },\n      {\n        \"amount\": 218649,\n        \"price\": 3557,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.934852Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.934852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 11008,\n        \"price\": 4823,\n      },\n      {\n        \"amount\": 2752,\n        \"price\": 4739,\n      },\n      {\n        \"amount\": 1376,\n        \"price\": 4655,\n      },\n      {\n        \"amount\": 688,\n        \"price\": 4627,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.934875Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.934875Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722160,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999855,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.945688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.945688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 171037,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132756,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.948293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.948293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193107,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 127310,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.952800Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.952800Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351533,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1157204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.952800Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.952800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 223927,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 132449,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.954561Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.954561Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1156977,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.970213Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.970213Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351533,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1156977,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:33.970213Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.970213Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 467750,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 291476,\n        \"price\": 4014,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:33.991959Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:33.991959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224527,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.017415Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.017415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351533,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 383293,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 86349,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 193107,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 132449,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 223927,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1156977,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 223945,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 484120,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 317950,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 243830,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 587295,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:34.017415Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351533,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1156977,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:34.017415Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 792677,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.036203Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.036203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411804,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 525005,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 1018177,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 633263,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 550232,\n        \"price\": 4027,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.041205Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.041205Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1156677,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.043939Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.043939Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351533,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1156677,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.043939Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.043939Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 525205,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.048534Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.048534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383546,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.079150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.079150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1150677,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.088008Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.088008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351533,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150677,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.088008Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.088008Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 309056,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.270351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.270351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351533,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150677,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:34.270351Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351545,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150689,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.270358Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.270358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351545,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150689,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.270358Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.270358Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 308239,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.270363Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.270363Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 191702,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.273143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.273143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 484115,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 317955,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.278746Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.278746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 468683,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 351535,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.278765Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.278765Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351535,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150689,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.278765Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.278765Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 134009,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 230856,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.278774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.278774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 618937,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.281089Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.281089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 468688,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 351530,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.285073Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.285073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351530,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150689,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.285073Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.285073Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411359,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 524760,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 1017732,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 632373,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1093799,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.289184Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.289184Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 40839,\n        \"price\": 3909,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.295790Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.295790Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 524643,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2574160,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1939470,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 625519,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220980,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.304164Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.304164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351530,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150689,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:34.304164Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 250086,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137366,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.312302Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.312302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 232353,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.322050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.322050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 622040,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.327326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.327326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 524521,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2574038,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1939348,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 625275,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220784,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.331803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.331803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 524358,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2573875,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1939185,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 624949,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220522,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.337211Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.337211Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 54395,\n        \"price\": 3966.5,\n      },\n      {\n        \"amount\": 152841,\n        \"price\": 3965.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.340713Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.340713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 627570,\n        \"price\": 4063,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.344187Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.344187Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722105,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999910,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.356245Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.356245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416278,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 94586,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.364757Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.364757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351530,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 177857,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150689,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.364757Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.364757Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 591379,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 195786,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 623644,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 116620,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 101381,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 237365,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 515100,\n        \"price\": 4040.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.370821Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.370821Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 198301,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.372578Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.372578Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351530,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 198301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150689,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.372578Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.372578Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170964,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132829,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.373729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.373729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 116704,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.405719Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.405719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351530,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 198301,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150689,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:34.405719Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170929,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132864,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.408718Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.408718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 151981,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 683228,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.415496Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.415496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 227447,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 522375,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.434610Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.434610Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170811,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 132982,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.437412Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.437412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 250031,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137421,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.463688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.463688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170695,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133098,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.470638Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.470638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351583,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.481825Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.481825Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351583,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 198301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150689,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.481825Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.481825Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170597,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133196,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.501073Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.501073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351583,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 198301,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150689,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:34.501073Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170577,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133216,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.516803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.516803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170555,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133238,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.518086Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.518086Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 262045,\n        \"price\": 4102,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.536384Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.536384Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 722032,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 999983,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.548423Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.548423Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721997,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000018,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.553913Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.553913Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721881,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000134,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.560299Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.560299Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 77941,\n        \"price\": 4102.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.567090Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.567090Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721763,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000252,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.573338Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.573338Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1663113,\n        \"price\": 4129,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.589838Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.589838Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8177.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.603665Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.603665Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351630,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150712,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.603686Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.603686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351630,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 198301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 91962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150712,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.603686Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.603686Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61281,\n        \"price\": 4263,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.612472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.612472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 104962,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.617409Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.617409Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351630,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 94586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 104962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150712,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.617409Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.617409Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.629588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.629588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351630,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 104962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150712,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.629588Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.629588Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.633712Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.633712Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351630,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150712,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.633712Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.633712Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474220,\n        \"price\": 4109,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.643597Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.643597Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351750,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150772,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.667684Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.667684Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351750,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.667684Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.667684Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 25,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.701933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.701933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351750,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497481,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:34.701933Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 26,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.701953Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.701953Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1622569,\n        \"price\": 4170,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.717543Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.717543Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2023255,\n        \"price\": 4180,\n      },\n      {\n        \"amount\": 692006,\n        \"price\": 4158,\n      },\n      {\n        \"amount\": 195291,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 410851,\n        \"price\": 4114,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 332920,\n        \"price\": 4018,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.727516Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.727516Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497573,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.735541Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.735541Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351750,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497573,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.735541Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.735541Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.740669Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.740669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351750,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.740669Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.740669Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 487742,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.757595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.757595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721665,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000350,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.759209Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.759209Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625199,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 224277,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.762926Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.762926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249958,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137494,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.788719Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.788719Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721645,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000370,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.792131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.792131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 182,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fa93bd9b-e1b6-d38d-f4d4-65337a766e34\",\n    \"localTimestamp\": 2019-04-01T00:00:34.856750Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.830Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 298,\n    \"close\": 4089,\n    \"closeTimestamp\": 2019-04-01T00:00:31.013Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:34.856750Z,\n    \"low\": 4089,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4089,\n    \"openTimestamp\": 2019-04-01T00:00:31.013Z,\n    \"sellVolume\": 0,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:32.000Z,\n    \"trades\": 1,\n    \"type\": \"trade_bar\",\n    \"volume\": 298,\n    \"vwap\": 4089,\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351568,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.856774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.856774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351568,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.856774Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.856774Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351750,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:34.856774Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 154511,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.860561Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.860561Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249842,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137610,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.864160Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.864160Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 620651,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 197654,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.876628Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.876628Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351718,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.888652Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.888652Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 351718,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.888652Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.888652Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721623,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000392,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.893116Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.893116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249724,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137728,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.895272Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.895272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346018,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.896916Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.896916Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346018,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.896916Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.896916Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 347728,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1155332,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.920593Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.920593Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 347728,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1155332,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.920593Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.920593Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346018,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1150772,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:34.920593Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 311886,\n        \"price\": 3906,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.931099Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.931099Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 337728,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.934266Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.934266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 337728,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18249,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1155332,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.934266Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.934266Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.945788Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.945788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 337728,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185301,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1155332,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.945788Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.945788Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170510,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133283,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.947594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.947594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 125364,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.948731Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.948731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 342562,\n        \"price\": 4061,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.954539Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.954539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249626,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137826,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.961232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.961232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249591,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137861,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.964627Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.964627Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 594349,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1045936,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.969464Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.969464Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 812362,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.973104Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.973104Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 340920,\n        \"price\": 4018,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.975139Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.975139Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632272,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.984331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.984331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.986870Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.986870Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 337728,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1155332,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:34.986870Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.986870Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170461,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133332,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:34.991171Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:34.991171Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 336228,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.018616Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.018616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 337728,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 416278,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 86349,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 197654,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 132449,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 224277,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1155332,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 223945,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 484115,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 317955,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 151981,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 683228,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:35.018616Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 336228,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103962,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1155332,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.018616Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.018616Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 337728,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1155332,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:35.018616Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 228173,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 128553,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 420174,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 100066,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 22045,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 332332,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.018642Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.018642Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 332332,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22045,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 100066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1155332,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 497665,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.018642Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.018642Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1194228,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.041385Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.041385Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 332332,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22045,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 95586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 100066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1194228,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.041385Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.041385Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.044038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.044038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 332332,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22045,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1194228,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.044038Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.044038Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2620877,\n        \"price\": 3980,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.054590Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.054590Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721578,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000437,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.058106Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.058106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1194528,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.072238Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.072238Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 332332,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22045,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1194528,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.072238Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.072238Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333832,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.114069Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.114069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333832,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22045,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1194528,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.114069Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.114069Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 332332,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22045,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1194528,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:35.114069Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 249785,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 924234,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1046048,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 86573,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220704,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.114107Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.114107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102626,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.114109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.114109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1200528,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.114112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.114112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333832,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22045,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200528,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.114112Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.114112Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249571,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137881,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.747060Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.747060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333832,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 22045,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 185401,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200528,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:35.747060Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249549,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137903,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.751474Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.751474Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 86458,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.753747Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.753747Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 624547,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 224277,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 90354,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 416278,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.758499Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.758499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333832,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200528,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.758499Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.758499Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 628120,\n        \"price\": 4063,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.764727Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.764727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152104,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.775155Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.775155Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.788216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.788216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333832,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 368546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.788216Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.788216Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153078,\n        \"price\": 4171,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.790227Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.790227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411616,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 250550,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 793442,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 626077,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 569803,\n        \"price\": 4027,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.802744Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.802744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333832,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 379884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:35.802744Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 55815,\n        \"price\": 4266,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.810934Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.810934Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249504,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137948,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.818681Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.818681Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 116559,\n        \"price\": 3991.5,\n      },\n      {\n        \"amount\": 181877,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 383933,\n        \"price\": 3990.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.827304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.827304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170375,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133418,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.828780Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.828780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 378884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.829663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.829663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333832,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.829663Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.829663Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 391576,\n        \"price\": 4112,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.845670Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.845670Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 645361,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 261774,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 793171,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 631730,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.850935Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.850935Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333748,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.855829Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.855829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333748,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.855829Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.855829Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383546,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 141310,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.855849Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.855849Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333748,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 141310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.855849Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.855849Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 225200,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.862380Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.862380Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1148,\n        \"price\": 4416,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.872661Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.872661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330300,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.883690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.883690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330300,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 141310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.883690Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.883690Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 412059,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 250993,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 793614,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 626963,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.887569Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.887569Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 251110,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 924351,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1046165,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 90588,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220892,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.891110Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.891110Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721492,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000523,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.892021Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.892021Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 251232,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 924473,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1046287,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 90832,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221088,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.897621Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.897621Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586369,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 967423,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.904207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.904207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330300,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 378884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:35.904207Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 251395,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 967586,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 1046450,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 91158,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221350,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.904213Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.904213Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249455,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 137997,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.906428Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.906428Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721443,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000572,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.912599Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.912599Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.923921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.923921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330300,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 141310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.923921Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.923921Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170346,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133447,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.925140Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.925140Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 968086,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 593849,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 221850,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 154011,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.926664Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.926664Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 469188,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 626463,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.929798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.929798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128719,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 197488,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.933961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.933961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128969,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 197238,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.933973Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.933973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129219,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 196988,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.937765Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.937765Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330259,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.951306Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.951306Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330259,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 18149,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 141310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.951306Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.951306Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15264,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.961335Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.961335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330259,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15264,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 141310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.961335Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.961335Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330048,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.973201Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.973201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330048,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15264,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 141310,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.973201Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.973201Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 484077,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 195710,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 623682,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 153897,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 301020,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 116552,\n        \"price\": 4079.5,\n      },\n      {\n        \"amount\": 603221,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 182812,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 327721,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 950909,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.990683Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.990683Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:35.997400Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.997400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330048,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15264,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:35.997400Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.997400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 156188,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 679144,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 238178,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 137571,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 225265,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 172205,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 457366,\n        \"price\": 4012,\n      },\n      {\n        \"amount\": 980940,\n        \"price\": 4008.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.000676Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.000676Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330048,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15264,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 383546,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 91158,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 196988,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 129219,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 225200,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 223945,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 484077,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 317955,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 152104,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 683228,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:36.000676Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330048,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15264,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200414,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:36.000676Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 980930,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 534700,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.003430Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.003430Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330163,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200529,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.003434Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.003434Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330163,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15264,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200529,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 459671,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.003434Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.003434Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 103406,\n        \"price\": 4073.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.005956Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.005956Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 68550,\n        \"price\": 4326,\n      },\n      {\n        \"amount\": 22526,\n        \"price\": 4325,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.009612Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.009612Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 535200,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 625963,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.009627Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.009627Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.028029Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.028029Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330163,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15264,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200529,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.028029Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.028029Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 278851,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.031731Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.031731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249369,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138083,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.035615Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.035615Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 474770,\n        \"price\": 4109,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.040606Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.040606Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91058,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.047576Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.047576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632730,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 307239,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.050145Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.050145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15714,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.055285Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.055285Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330163,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15714,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200529,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.055285Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.055285Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 414320,\n        \"price\": 4007.5,\n      },\n      {\n        \"amount\": 178127,\n        \"price\": 4007,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.056594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.056594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170280,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133513,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.062757Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.062757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 448531,\n        \"price\": 4151,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.068050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.068050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170133,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133660,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.081749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.081749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.086143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.086143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330163,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15714,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200529,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.086143Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.086143Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721414,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000601,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.101415Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.101415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330163,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15714,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200529,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:36.101415Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 217089,\n        \"price\": 3903,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.152709Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.152709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721267,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000748,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.158186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.158186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 52385,\n        \"price\": 3925.5,\n      },\n      {\n        \"amount\": 1230322,\n        \"price\": 3925,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.184494Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.184494Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1456329,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 467406,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.232075Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.232075Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346813,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.237651Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.237651Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249222,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138230,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.243510Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.243510Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721201,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000814,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.245717Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.245717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 125964,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.261810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.261810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 122214,\n        \"price\": 4073.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.283803Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.283803Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 383533,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.285620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.285620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330163,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200529,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.285620Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.285620Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330263,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200629,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.306227Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.306227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330263,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200629,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.306227Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.306227Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330163,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200529,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:36.306227Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249193,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138259,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.313422Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.313422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170106,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133687,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.327536Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.327536Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 267195,\n        \"price\": 4131,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.336583Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.336583Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249127,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138325,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.358983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.358983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91038,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.366225Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.366225Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141124,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.367728Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.367728Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 315800,\n        \"price\": 4049,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.382124Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.382124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 540460,\n        \"price\": 4039,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.385608Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.385608Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170056,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133737,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.386465Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.386465Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 114,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2c72b3eb-afe6-47a0-0b10-1432cc449e24\",\n    \"localTimestamp\": 2019-04-01T00:00:36.400525Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.765Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 182,\n    \"close\": 4089,\n    \"closeTimestamp\": 2019-04-01T00:00:34.830Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:36.400525Z,\n    \"low\": 4089,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4089,\n    \"openTimestamp\": 2019-04-01T00:00:34.830Z,\n    \"sellVolume\": 0,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.000Z,\n    \"trades\": 1,\n    \"type\": \"trade_bar\",\n    \"volume\": 182,\n    \"vwap\": 4089,\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29324,\n        \"price\": 4134.5,\n      },\n      {\n        \"amount\": 2004737,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 412357,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 915410,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 469688,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 192441,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.409455Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.409455Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330263,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200629,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:36.409455Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 1221,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4f769b9d-7aaf-a909-9e52-395f9235d423\",\n    \"localTimestamp\": 2019-04-01T00:00:36.431353Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.862Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2227,\n    \"exchange\": \"bitmex\",\n    \"id\": \"51c0ab27-064e-5989-b23a-e17b0e19c3ac\",\n    \"localTimestamp\": 2019-04-01T00:00:36.431353Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.862Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384033,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.431379Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.431379Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1202673,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.442973Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.442973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330263,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202673,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.442973Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.442973Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 41,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b3110bba-df7a-b383-8c64-5d1d7fd570a5\",\n    \"localTimestamp\": 2019-04-01T00:00:36.456693Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.933Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 211,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ea9cce21-2541-7dde-a9a4-56a4b4bcc744\",\n    \"localTimestamp\": 2019-04-01T00:00:36.465136Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:35.953Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330283,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.465163Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.465163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330283,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.465163Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.465163Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327783,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.471535Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.471535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327783,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.471535Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.471535Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 13828,\n        \"price\": 4269,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.481693Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.481693Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 392176,\n        \"price\": 4112,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.486301Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.486301Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 399338,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.492329Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.492329Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327783,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.492329Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.492329Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248037,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 587295,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.552993Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.552993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327783,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377884,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:36.552993Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377890,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.559919Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.559919Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327783,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 108586,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377890,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.559919Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.559919Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 467311,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 291914,\n        \"price\": 4014,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.592141Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.592141Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 86430,\n        \"price\": 3905.5,\n      },\n      {\n        \"amount\": 47890,\n        \"price\": 3904.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.602189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.602189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327783,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377890,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:36.602189Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 246057,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.602193Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.602193Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 150430,\n        \"price\": 4064.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.606077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.606077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721151,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000864,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.610023Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.610023Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 381988,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 110630,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.619181Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.619181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327783,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110630,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377890,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.619181Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.619181Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249100,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138352,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.641066Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.641066Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 170005,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133788,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.642437Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.642437Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 373353,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.666267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.666267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327783,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110630,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373353,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.666267Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.666267Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 488612,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.680738Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.680738Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 373347,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.696655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.696655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327783,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110630,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373347,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.696655Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.696655Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327793,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.696681Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.696681Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327793,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110630,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373347,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399338,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.696681Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.696681Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 192452,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 317966,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.713292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.713292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327793,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373347,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.713292Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.713292Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327793,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373347,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:36.713292Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224600,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.740792Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.740792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1318148,\n        \"price\": 3900,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.824360Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.824360Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 381959,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 327822,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.846355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.846355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327822,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373347,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.846355Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.846355Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.871306Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.871306Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327822,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373347,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.871306Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.871306Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.871332Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.871332Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327822,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189297,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.871332Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.871332Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189307,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.871336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.871336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327822,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189307,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.871336Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.871336Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327796,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.930800Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.930800Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327796,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189307,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88066,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.930800Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.930800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327822,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189307,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:36.930800Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189952,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.952655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.952655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 116734,\n        \"price\": 3991.5,\n      },\n      {\n        \"amount\": 181902,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 383958,\n        \"price\": 3990.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.952688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.952688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 5270.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.967165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.967165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88167,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:36.986623Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.986623Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327796,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189307,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88167,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:36.986623Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.986623Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384459,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.023137Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.023137Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327796,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189307,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88167,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 381959,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 91038,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 189952,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 129219,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 224600,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 223945,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 488612,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 317966,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 248037,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 587295,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:37.023137Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327796,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189307,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:37.023137Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 330498,\n        \"price\": 4211,\n      },\n      {\n        \"amount\": 374951,\n        \"price\": 4166,\n      },\n      {\n        \"amount\": 194573,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 215427,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 522922,\n        \"price\": 4106,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 236606,\n        \"price\": 3974,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.023163Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.023163Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1992,\n        \"price\": 5270.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.054604Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.054604Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 69527,\n        \"price\": 4047.5,\n      },\n      {\n        \"amount\": 223433,\n        \"price\": 4046.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.057498Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.057498Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327727,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.057520Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.057520Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327727,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189307,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88167,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202693,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460088,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:37.057520Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.057520Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189745,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 318508,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 238449,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 603492,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.080774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.080774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327727,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189745,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88167,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:37.080774Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.080774Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721124,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000891,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.080831Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.080831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 26,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fa9e454e-913a-a12c-fa1e-300a361add46\",\n    \"localTimestamp\": 2019-04-01T00:00:37.098173Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.825Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 3700,\n    \"close\": 4089,\n    \"closeTimestamp\": 2019-04-01T00:00:35.953Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:37.098173Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:35.765Z,\n    \"sellVolume\": 114,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.000Z,\n    \"trades\": 5,\n    \"type\": \"trade_bar\",\n    \"volume\": 3814,\n    \"vwap\": 4088.985055060304,\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169951,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133842,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.098202Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.098202Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 18449,\n        \"price\": 3897.5,\n      },\n      {\n        \"amount\": 13895,\n        \"price\": 3896.5,\n      },\n      {\n        \"amount\": 119423,\n        \"price\": 3895.5,\n      },\n      {\n        \"amount\": 1221,\n        \"price\": 3894.5,\n      },\n      {\n        \"amount\": 18664,\n        \"price\": 3893.5,\n      },\n      {\n        \"amount\": 182196,\n        \"price\": 3892.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.156390Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.156390Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327727,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189745,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:37.156390Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 123938,\n        \"price\": 4063.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.156432Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.156432Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 69,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1d0a52c8-f757-a3c6-f709-db9959bfe0ba\",\n    \"localTimestamp\": 2019-04-01T00:00:37.184182Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:36.868Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 326821,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.245767Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.245767Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 322887,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 149031,\n        \"price\": 4188.5,\n      },\n      {\n        \"amount\": 600885,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 75622,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 1663013,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 271773,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 692541,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 445371,\n        \"price\": 4118.5,\n      },\n      {\n        \"amount\": 474670,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 246327,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 793564,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 586419,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 625923,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 224635,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 587255,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 195750,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 603442,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 102676,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 244151,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 210463,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 125864,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 124466,\n        \"price\": 4058.5,\n      },\n      {\n        \"amount\": 315700,\n        \"price\": 4049,\n      },\n      {\n        \"amount\": 46619,\n        \"price\": 4048.5,\n      },\n      {\n        \"amount\": 540360,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 138452,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 280061,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 34465,\n        \"price\": 3988.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.273650Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.273650Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 603463,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.332199Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.332199Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88697,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.342383Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.342383Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327727,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189745,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88697,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 367546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:37.342383Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.342383Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721073,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000942,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.347986Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.347986Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 249050,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138502,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.350406Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.350406Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 721019,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1000996,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.390286Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.390286Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248999,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138553,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.390714Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.390714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 84998,\n        \"price\": 4112.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.425837Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.425837Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 53943,\n        \"price\": 3966.5,\n      },\n      {\n        \"amount\": 153293,\n        \"price\": 3965.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.473917Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.473917Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224096,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.489248Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.489248Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.503161Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.503161Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327727,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189745,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88697,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:37.503161Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.503161Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 52593,\n        \"price\": 4272,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.662567Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.662567Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169907,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 133886,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.662593Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.662593Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169767,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134026,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.663996Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.663996Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 26,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.782287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.782287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 27,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.787496Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.787496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224996,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.787523Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.787523Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 7360,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.838871Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.838871Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169717,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134076,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:37.905189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.905189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 190918,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.007043Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.007043Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327727,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189745,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88697,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 384459,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 91038,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 189952,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 129219,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 224635,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1202912,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 224996,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 488612,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 318508,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 248037,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 587255,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:38.007043Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1091689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.013290Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.013290Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720879,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001136,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.101579Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.101579Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720835,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001180,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.306796Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.306796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2010737,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 494612,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.325167Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.325167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248945,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138607,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.386523Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.386523Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 322593,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 243953,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 595423,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 203917,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 222121,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 170223,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 83916,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.497675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.497675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 392053,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.497678Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.497678Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248901,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138651,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.502755Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502755Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1200868,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.502764Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502764Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327727,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189745,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88697,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1200868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.502764Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502764Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20342,\n        \"price\": 3897,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.502766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248761,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138791,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.502768Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502768Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1210609,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.502796Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327727,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189745,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88697,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1210609,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.502796Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502796Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 384560,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.502801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.502801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720785,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001230,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514792Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152104,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 687272,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514799Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 503981,\n        \"price\": 4107.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169479,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134314,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514820Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1855210,\n        \"price\": 4000,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514834Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514834Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3355,\n        \"price\": 4291,\n      },\n      {\n        \"amount\": 141942,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 544470,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 100165,\n        \"price\": 4239,\n      },\n      {\n        \"amount\": 1385872,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 323121,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 465665,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 185633,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1300941,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 601041,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 407105,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 261891,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 968008,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 2010815,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 307169,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 469758,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 224573,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 190014,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 90984,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 189791,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 327766,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1210648,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 13545,\n        \"price\": 3938.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514843Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514843Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327766,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189791,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1210648,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.514843Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514843Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1212692,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514846Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327766,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189791,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1212692,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.514846Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514846Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 490077,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514853Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514853Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13818,\n        \"price\": 3938.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514855Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514855Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 585019,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514857Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720740,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001275,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514860Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514860Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514862Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514862Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327766,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189791,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1212692,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.514862Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514862Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169434,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134359,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.514865Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.514865Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 260304,\n        \"price\": 3974,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529040Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529040Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 625423,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 225073,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529074Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529074Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189848,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91150,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529101Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529101Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1215692,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529103Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 327766,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189791,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1215692,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.529103Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529103Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129053,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 190014,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529106Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128803,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 190264,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529108Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529108Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128553,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 190514,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529113Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 317766,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529126Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529126Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 317766,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189791,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1215692,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460307,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.529126Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529126Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 270769,\n        \"price\": 4275,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529129Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529129Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248711,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138841,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169421,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134372,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529164Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 469258,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 625923,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720502,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001513,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529169Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529169Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 468758,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 626423,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529180Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529180Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720444,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001571,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529193Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529193Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 417292,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529197Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248666,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 138886,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529200Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529200Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1729077,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 346813,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529203Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169363,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134430,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529205Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529205Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 44644,\n        \"price\": 4209,\n      },\n      {\n        \"amount\": 186351,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1417129,\n        \"price\": 4134,\n      },\n      {\n        \"amount\": 693259,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 252831,\n        \"price\": 4104,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 190389,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91275,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.529250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.529250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102716,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548450Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548450Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248428,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 139124,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548486Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548486Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 224573,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 129053,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548510Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548510Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152234,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548512Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548512Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 628056,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548514Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720431,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001584,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548517Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548517Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 187200,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 58236,\n        \"price\": 3894,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548609Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 460156,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548612Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548612Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 317766,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189791,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1215692,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.548612Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548612Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 687372,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548616Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248415,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 139137,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548659Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548659Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248357,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 139195,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548681Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548681Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 317788,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548716Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 317788,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1215692,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.548716Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548716Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 417263,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 317817,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548720Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548720Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 317817,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1215692,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.548720Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548720Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 795205,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548731Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144026,\n        \"price\": 4278,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.548798Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.548798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169321,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134472,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.552936Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.552936Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 510,\n        \"price\": 6133,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.553015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.553015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 129285,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.553017Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.553017Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169300,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134493,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.553054Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.553054Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 211299,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.553057Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.553057Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102920,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 304994,\n        \"price\": 4058,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.553059Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.553059Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169234,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 134559,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.553066Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.553066Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 168203,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135589,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.555712Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.555712Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 417010,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.577220Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.577220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 584707,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.587268Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.587268Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 627620,\n        \"price\": 4063,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.606857Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.606857Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 317817,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1215692,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:38.606857Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 193431,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.612249Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.612249Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 154968,\n        \"price\": 4183,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.621964Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.621964Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 222319,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.625657Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.625657Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 469171,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.632557Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.632557Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720389,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001626,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.674122Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.674122Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1216192,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.676846Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.676846Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 317817,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1216192,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.676846Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.676846Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416976,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 317851,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.680197Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.680197Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 317851,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1216192,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.680197Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.680197Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720368,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001647,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.686310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.686310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 469271,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1216292,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.706079Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.706079Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 317851,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1216292,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.706079Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.706079Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 317851,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15727,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1216192,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:38.706079Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 318069,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.714347Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.714347Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 318069,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1216292,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 460156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.714347Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.714347Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 710660,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.715668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.715668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226573,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.723224Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.723224Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 318069,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1216292,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.723224Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.723224Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1206292,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.728680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.728680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 318069,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1206292,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.728680Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.728680Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137768,\n        \"price\": 4110.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.733937Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.733937Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341069,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.750199Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.750199Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341069,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1206292,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.750199Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.750199Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1204248,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.759458Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.759458Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341069,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1204248,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.759458Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.759458Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 627806,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 226823,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.769127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.769127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1194248,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.771292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.771292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341069,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1194248,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.771292Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.771292Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 425282,\n        \"price\": 3891,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.782003Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.782003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 204017,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.784709Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.784709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1193948,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.786968Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.786968Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341069,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1193948,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.786968Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.786968Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1099857,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.820041Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.820041Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341069,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1193948,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:38.820041Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1203948,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.837445Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.837445Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341069,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1203948,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.837445Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.837445Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1213948,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.840414Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.840414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341069,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1213948,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.840414Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.840414Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1207948,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.844063Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.844063Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341069,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1207948,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.844063Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.844063Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588707,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.871552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.871552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.884418Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.884418Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632040,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.904778Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.904778Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341069,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1207948,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:38.904778Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416947,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 341098,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.915037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.915037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341098,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1207948,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.915037Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.915037Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1017733,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.925114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.925114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2004815,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 484077,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.941690Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.941690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 702744,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 342394,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 223619,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 527129,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 303348,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 351983,\n        \"price\": 4043,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.965787Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.965787Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1217948,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.972296Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.972296Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341098,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1217948,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:38.972296Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.972296Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 3248.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.976773Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.976773Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 118417,\n        \"price\": 3541,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.976788Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.976788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 720302,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1001713,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.976793Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.976793Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 881684,\n        \"price\": 3970.5,\n      },\n      {\n        \"amount\": 47282,\n        \"price\": 3969.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.979741Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.979741Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248315,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 139237,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.984245Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.984245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346863,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 469221,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:38.994654Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:38.994654Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 168036,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135756,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.003635Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.003635Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341098,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 416947,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 91275,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 190389,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 129285,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 226823,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1217948,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 224996,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 484077,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 322593,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 152234,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1099857,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:39.003635Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341098,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1217948,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:39.003635Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1219992,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.020592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.020592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341098,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1219992,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369546,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:39.020592Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.020592Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 300210,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 523185,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.024142Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.024142Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.026539Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.026539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341098,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1219992,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:39.026539Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.026539Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 167979,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135813,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.036716Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.036716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 907494,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.042398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.042398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 719271,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1002743,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.047440Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.047440Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341113,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.051513Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.051513Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1219992,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:39.051513Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.051513Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248294,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 139258,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.053933Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.053933Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 160403,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1091689,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 607995,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 248052,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 158451,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 976487,\n        \"price\": 4008.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.063199Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.063199Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 469206,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.067243Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.067243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 556279,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 341851,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 546358,\n        \"price\": 4048,\n      },\n      {\n        \"amount\": 408241,\n        \"price\": 4018,\n      },\n      {\n        \"amount\": 365281,\n        \"price\": 4008,\n      },\n      {\n        \"amount\": 238733,\n        \"price\": 3998.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.084267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.084267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1220292,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.090100Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.090100Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1220292,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:39.090100Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.090100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91125,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.094869Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.094869Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 39211,\n        \"price\": 4281,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.304439Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.304439Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341113,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1220292,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:39.304439Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 157472,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.311703Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.311703Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 247263,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140288,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.311799Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.311799Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 306857,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.311804Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.311804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2010815,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 490077,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.321224Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.321224Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341263,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1220442,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.321257Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.321257Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341263,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1220442,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:39.321257Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.321257Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1226442,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.321269Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.321269Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341263,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1226442,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:39.321269Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.321269Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1430867,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.327983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.327983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341263,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1430867,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:39.327983Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.327983Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 167934,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135858,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.336988Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.336988Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 247197,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140354,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.342555Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.342555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 719104,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1002910,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.377780Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.377780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2585875,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.380806Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.380806Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 803205,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.389751Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.389751Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227823,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.401426Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.401426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341263,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1430867,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:39.401426Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 471832,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.404159Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.404159Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 471419,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.406037Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.406037Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 346813,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 471469,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.411749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.411749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 247030,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140521,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.416819Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.416819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 167883,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135909,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.431581Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.431581Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 719047,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1002967,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.441374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.441374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718996,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003018,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.450637Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.450637Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 644593,\n        \"price\": 4060.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.452172Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.452172Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246979,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140572,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.511388Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.511388Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1663013,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 230475,\n        \"price\": 4124.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.511413Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.511413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718951,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003063,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.533156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.533156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246934,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140617,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.585394Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.585394Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246877,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140674,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.590389Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.590389Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 167860,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135932,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.610045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.610045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 369146,\n        \"price\": 3888,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.621000Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.621000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 158403,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.642046Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.642046Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1445867,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 152860,\n        \"price\": 3986.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.647368Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.647368Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341263,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1445867,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:39.647368Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.647368Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152796,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 135996,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.657620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.657620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 608013,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.660364Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.660364Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 27,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.697266Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.697266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 28,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.697287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.697287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 220919,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.729129Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.729129Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341263,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15509,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1445867,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:39.729129Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227511,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.853475Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.853475Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 627306,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 228011,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.868179Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.868179Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 190223,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91291,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.870828Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.870828Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 970008,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.887527Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.887527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 416934,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.900705Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.900705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 341263,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1445867,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:39.900705Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.900705Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339553,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1441307,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.913458Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.913458Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 339553,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1441307,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:39.913458Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.913458Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 626806,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 228511,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.915792Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.915792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 340408,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446722,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.931567Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.931567Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 340408,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446722,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:39.931567Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.931567Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27312,\n        \"price\": 4284,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.940972Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.940972Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91191,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.955090Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.955090Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718887,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003127,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:39.970530Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:39.970530Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 631730,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 307857,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.025757Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.025757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 340408,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 416934,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 91191,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 190223,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 129285,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 228511,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446722,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 224996,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 490077,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 322593,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 158403,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1091689,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:40.025757Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 340408,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446722,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:40.025757Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1001421,\n        \"price\": 4138,\n      },\n      {\n        \"amount\": 199168,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 24731,\n        \"price\": 4134.5,\n      },\n      {\n        \"amount\": 164483,\n        \"price\": 4124.5,\n      },\n      {\n        \"amount\": 139274,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 311785,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.028382Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.028382Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 311785,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139274,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88751,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446722,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:40.028382Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.028382Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152744,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136048,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.051279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.051279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88451,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.054378Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.054378Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 311785,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139274,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88451,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446722,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:40.054378Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.054378Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718864,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003150,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.061053Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.061053Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 311885,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446822,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.067357Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.067357Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 311885,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139274,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88451,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446822,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:40.067357Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.067357Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246854,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140697,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.069041Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.069041Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 417234,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.119426Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.119426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 311885,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446822,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:40.119426Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246790,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140761,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.119434Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.119434Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82451,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.840631Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.840631Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 311885,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139274,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82451,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446822,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:40.840631Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.840631Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 423234,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.843400Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.843400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 328006,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.846938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.846938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 328006,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139274,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82451,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446822,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:40.846938Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.846938Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90009,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 329191,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.848671Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.848671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 329191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139274,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82451,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446822,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:40.848671Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.848671Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718812,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003202,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.886018Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.886018Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224951,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.910683Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.910683Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 329191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446822,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:40.910683Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152722,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136070,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.915165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.915165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246738,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140813,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.918856Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.918856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473756,\n        \"price\": 4147.5,\n      },\n      {\n        \"amount\": 455347,\n        \"price\": 4119.5,\n      },\n      {\n        \"amount\": 632020,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 54531,\n        \"price\": 3650.5,\n      },\n      {\n        \"amount\": 101713,\n        \"price\": 3602,\n      },\n      {\n        \"amount\": 53804,\n        \"price\": 3600.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.934858Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.934858Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 228199,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.942993Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.942993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.945061Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.945061Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 329191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139274,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446822,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:40.945061Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.945061Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1446022,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.965742Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.965742Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 329191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139274,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446022,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:40.965742Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.965742Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718790,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003224,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.972950Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.972950Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194573,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 131632,\n        \"price\": 4135.5,\n      },\n      {\n        \"amount\": 118822,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.980025Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.980025Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 118822,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446022,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:40.980025Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.980025Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 318508,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 162487,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.984376Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.984376Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:40.986856Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.986856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446022,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:40.986856Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:40.986856Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 8177.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.013150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.013150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82466,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 423234,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 90009,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 190223,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 129285,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 228199,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446022,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 224951,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 490077,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 318508,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 162487,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1091689,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:41.013150Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 189769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446022,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:41.013150Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152671,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136121,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.013192Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.013192Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152648,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136144,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.016646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.016646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152595,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136197,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.016671Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.016671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246716,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140835,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.025356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.025356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 99466,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 172769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.028651Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.028651Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 172769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1446022,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 462156,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.028651Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.028651Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718767,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003247,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.031468Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.031468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 211337,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 300286,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 608127,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 392205,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 951099,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 540260,\n        \"price\": 4039,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.035904Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.035904Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1479141,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 430055,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.038922Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.038922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 172769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1479141,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 430055,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.038922Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.038922Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 160769,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.041232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.041232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1479141,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 430055,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.041232Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.041232Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718716,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003298,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.043157Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.043157Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1513176,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.044693Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.044693Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513176,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 403886,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.044693Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.044693Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522729,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2585682,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 2010622,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 626420,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220607,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.058379Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.058379Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.058398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.058398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160769,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513176,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.058398Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.058398Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 228200,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.060147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.060147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513176,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.060147Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.060147Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1513163,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.070109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.070109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513163,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369561,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.070109Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.070109Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.078872Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.078872Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513163,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.078872Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.078872Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 594707,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.081921Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.081921Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1513508,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.083868Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.083868Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513508,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.083868Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.083868Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1510508,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.087089Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.087089Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1510508,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.087089Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.087089Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 905328,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 487911,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.089975Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.089975Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 128785,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 190723,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.094595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.094595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246665,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140886,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.138201Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.138201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 333280,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 31880,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1510508,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:41.138201Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 344062,\n        \"price\": 4061,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.138930Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.138930Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718663,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003351,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.147240Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.147240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246642,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140909,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.148639Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.148639Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127038,\n        \"price\": 4135.5,\n      },\n      {\n        \"amount\": 823313,\n        \"price\": 4135,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 349636,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.160320Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.160320Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349636,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 15522,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1510508,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.160320Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.160320Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 292999,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.165706Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.165706Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349636,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 292999,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1510508,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.165706Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.165706Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1945070,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.165747Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.165747Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 423205,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 349665,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.173519Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.173519Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 292999,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111466,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1510508,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.173519Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.173519Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1822660,\n        \"price\": 4010,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.175726Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.175726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 111766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.178595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.178595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 292999,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1510508,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373372,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.178595Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.178595Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.178610Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.178610Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 292999,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1510508,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.178610Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.178610Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152557,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136235,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.182673Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.182673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1607847,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.183423Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.183423Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 292999,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 110641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 111766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1607847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.183423Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.183423Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246589,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 140962,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.189673Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.189673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94766,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 127641,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.203136Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.203136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 292999,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1607847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.203136Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.203136Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 292999,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1607847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:41.203136Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1597847,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.207392Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.207392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 292999,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 127641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1597847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.207392Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.207392Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.207404Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.207404Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 292999,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 160768,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1597847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.207404Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.207404Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 242751,\n        \"price\": 4069,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.215411Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.215411Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 622524,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 232096,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 86113,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 427101,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 156872,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 296895,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.218676Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.218676Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 349665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 296895,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156872,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1597847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.218676Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.218676Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20440,\n        \"price\": 4287,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.238672Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.238672Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358665,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.246130Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.246130Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 296895,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156872,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1597847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.246130Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.246130Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.411723Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.411723Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 296895,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156872,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1597847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.411723Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.411723Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 296895,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156872,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1597847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 396989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:41.411723Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152534,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136258,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.430705Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.430705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 186180,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.500459Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.500459Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358665,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 296895,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156872,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1597847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:41.500459Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.508689Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.508689Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 358694,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.514912Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.514912Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358694,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 296895,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1597847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.514912Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.514912Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 320642,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.518620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.518620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358694,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320642,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1597847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.518620Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.518620Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1597547,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.532101Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.532101Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358694,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320642,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1597547,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.532101Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.532101Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718625,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003389,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.536418Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.536418Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 267089,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 411253,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 522623,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 1017627,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 631624,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158262,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.545283Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.545283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152511,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136281,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.562042Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.562042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246551,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141000,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.569973Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.569973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90655,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.578283Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.578283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1591547,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.578315Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.578315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 358694,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320642,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1591547,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.578315Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.578315Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152464,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136328,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.578321Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.578321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 102932,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.586165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.586165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359013,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.586204Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.586204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 359013,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320642,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1591547,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.586204Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.586204Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718602,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003412,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.590433Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.590433Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367191,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.594523Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.594523Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320642,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1591547,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.594523Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.594523Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141897,\n        \"price\": 4290,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.612121Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.612121Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320642,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1591547,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:41.612121Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718555,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003459,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.615426Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.615426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152142,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136650,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.627746Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.627746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 164487,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.631400Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.631400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152092,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136700,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.631424Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.631424Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246528,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141023,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.645400Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.645400Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718532,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003482,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.682060Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.682060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 13,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1e5d45d9-ab86-ae19-03f1-eee2ec471a02\",\n    \"localTimestamp\": 2019-04-01T00:00:41.699873Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.050Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 95,\n    \"close\": 4089,\n    \"closeTimestamp\": 2019-04-01T00:00:36.868Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:41.699873Z,\n    \"low\": 4089,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4089,\n    \"openTimestamp\": 2019-04-01T00:00:36.825Z,\n    \"sellVolume\": 0,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:37.000Z,\n    \"trades\": 2,\n    \"type\": \"trade_bar\",\n    \"volume\": 95,\n    \"vwap\": 4089,\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718210,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003804,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.713722Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.713722Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 132921,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1009542,\n        \"price\": 4074,\n      },\n      {\n        \"amount\": 171204,\n        \"price\": 4072.5,\n      },\n      {\n        \"amount\": 191919,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 277849,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 1457331,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 209460,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 557282,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 611388,\n        \"price\": 4066.5,\n      },\n      {\n        \"amount\": 435020,\n        \"price\": 4066,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.718009Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.718009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 227117,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.784363Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.784363Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 660552,\n        \"price\": 3910,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.817429Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.817429Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 634853,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.844324Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.844324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.851162Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.851162Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1591547,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.851162Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.851162Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1592347,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.854359Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.854359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 82766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1592347,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.854359Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.854359Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.858746Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.858746Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1592347,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.858746Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.858746Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153385,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.883419Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.883419Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 596739,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 511620,\n        \"price\": 4038,\n      },\n      {\n        \"amount\": 349735,\n        \"price\": 3998.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.901698Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.901698Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1592347,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:41.901698Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1589847,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.910727Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.910727Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:41.910727Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.910727Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718160,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003854,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.918720Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.918720Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 67509,\n        \"price\": 4293,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.944628Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.944628Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473836,\n        \"price\": 4147.5,\n      },\n      {\n        \"amount\": 455387,\n        \"price\": 4119.5,\n      },\n      {\n        \"amount\": 632040,\n        \"price\": 4099.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 55411,\n        \"price\": 3650.5,\n      },\n      {\n        \"amount\": 101753,\n        \"price\": 3602,\n      },\n      {\n        \"amount\": 53884,\n        \"price\": 3600.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.962221Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.962221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 152042,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136750,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.962245Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.962245Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 152014,\n        \"price\": 4171,\n      },\n      {\n        \"amount\": 371899,\n        \"price\": 4141,\n      },\n      {\n        \"amount\": 214363,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 244993,\n        \"price\": 4111,\n      },\n      {\n        \"amount\": 1016563,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 665821,\n        \"price\": 3965,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:41.982008Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.982008Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 904028,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 187480,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.027466Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.027466Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88766,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 427101,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 90655,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 186180,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 128785,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 232096,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 227117,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 487911,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 318508,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 164487,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1091689,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:42.027466Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589847,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393989,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:42.027466Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246206,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141345,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.043863Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.043863Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2010622,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.068833Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.068833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 326973,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.070531Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.070531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 137571,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 597053,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 182812,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 296080,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.073302Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.073302Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246156,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141395,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.086991Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.086991Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718110,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003904,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.090124Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.090124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132785,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 183480,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.094333Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.094333Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"58688777-3cbe-9d13-68f7-d29ebff4324f\",\n    \"localTimestamp\": 2019-04-01T00:00:42.353232Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:41.891Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 28,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.402951Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.402951Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 29,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.406188Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.406188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1589837,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393999,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.407155Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.407155Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367191,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156843,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88766,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589837,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 393999,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377909,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399349,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373609,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:42.407155Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.407155Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3297,\n        \"price\": 4291,\n      },\n      {\n        \"amount\": 141839,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 544296,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 100339,\n        \"price\": 4239,\n      },\n      {\n        \"amount\": 1385698,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 323295,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 465520,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 186496,\n        \"price\": 4164,\n      },\n      {\n        \"amount\": 1300796,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 601186,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 406989,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 262007,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 969921,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 2010709,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 307770,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 471556,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 232024,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 183552,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 90583,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 88838,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 367249,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 487983,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 318436,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 204104,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 211250,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 300373,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 596966,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 550008,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 269438,\n        \"price\": 4075.5,\n      },\n      {\n        \"amount\": 540405,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 141250,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 292059,\n        \"price\": 4014,\n      },\n      {\n        \"amount\": 86402,\n        \"price\": 4013.5,\n      },\n      {\n        \"amount\": 280235,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 34291,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 13644,\n        \"price\": 3938.5,\n      },\n      {\n        \"amount\": 712556,\n        \"price\": 3889,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.413359Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.413359Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367249,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589837,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:42.413359Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.413359Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 903983,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.472195Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.472195Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 391692,\n        \"price\": 3939,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.479347Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.479347Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253024,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 970114,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 904176,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 90969,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220919,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.496304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.496304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367264,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.512619Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.512619Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367264,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 88838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589837,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:42.512619Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.512619Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367249,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589837,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:42.512619Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246109,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141297,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.784814Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.784814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367264,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589837,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:42.784814Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202042,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 404633,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 99619,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 2014909,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 908376,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 136985,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 92838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38291,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156042,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 141168,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 247832,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.813644Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.813644Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367264,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 92838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589837,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:42.813644Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.813644Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246086,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141320,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.870681Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.870681Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246036,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141370,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.886128Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.886128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 471546,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 622534,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:42.902692Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.902692Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.032706Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.032706Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367264,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 92838,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 427101,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 90969,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 183552,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 136985,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 232024,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589837,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 227117,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 487983,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 318436,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 164487,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1091689,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:43.032706Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 92838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589837,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:43.032706Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.032706Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156473,\n        \"price\": 4136.5,\n      },\n      {\n        \"amount\": 818719,\n        \"price\": 4135,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.392232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.392232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589837,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:43.392232Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 156016,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136776,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.392263Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.392263Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 970069,\n        \"price\": 4098,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.395204Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.395204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 432101,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.395221Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.395221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1589037,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.395251Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.395251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 92838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589037,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:43.395251Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.395251Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1663119,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 412165,\n        \"price\": 4114,\n      },\n      {\n        \"amount\": 253130,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 803311,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 622640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158451,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.395310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.395310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718084,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003930,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.396792Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.396792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f7d561eb-419f-5d6b-14c5-ecddfd395c02\",\n    \"localTimestamp\": 2019-04-01T00:00:43.463202Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.769Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:41.891Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4088.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:43.463202Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:41.050Z,\n    \"sellVolume\": 2513,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:42.000Z,\n    \"trades\": 2,\n    \"type\": \"trade_bar\",\n    \"volume\": 2513,\n    \"vwap\": 4088.5,\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1589035,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.463229Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.463229Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 92838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589035,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:43.463229Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.463229Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589037,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:43.463229Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 753424,\n        \"price\": 3910,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.575824Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.575824Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589035,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:43.575824Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 464996,\n        \"price\": 4015,\n      },\n      {\n        \"amount\": 294373,\n        \"price\": 4014,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.624993Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.624993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 231774,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 137235,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.804186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.804186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 211203,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.837616Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.837616Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 51557,\n        \"price\": 3966.5,\n      },\n      {\n        \"amount\": 155678,\n        \"price\": 3965.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.844251Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.844251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246010,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141396,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:43.976859Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.976859Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1285146,\n        \"price\": 4060,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.035304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.035304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 92838,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 432101,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 90969,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 183552,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 137235,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 231774,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589035,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 227117,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 487983,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 318436,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 164487,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1091689,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:44.035304Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1589535,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.059325Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.059325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 92838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589535,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.059325Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.059325Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 129711,\n        \"price\": 4067.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.092009Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.092009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1590035,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.149115Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.149115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 92838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1590035,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.149115Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.149115Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1589535,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:44.149115Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 130921,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.162407Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.162407Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 577640,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 182235,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 77838,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 154641,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.284081Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.284081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 154641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 77838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1590035,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.284081Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.284081Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1590035,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377851,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:44.284081Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635853,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 306770,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.284122Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.284122Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.284143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.284143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 154641,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 77838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1590035,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.284143Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.284143Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 976981,\n        \"price\": 4122.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.284145Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.284145Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411359,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 935213,\n        \"price\": 4138,\n      },\n      {\n        \"amount\": 151877,\n        \"price\": 4136.5,\n      },\n      {\n        \"amount\": 131632,\n        \"price\": 4135.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.284150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.284150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 155548,\n        \"price\": 4169,\n      },\n      {\n        \"amount\": 602249,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 694322,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 475733,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 804374,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 671991,\n        \"price\": 3965,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301092Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1590035,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:44.301092Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 233174,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301097Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301097Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 643353,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 299270,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301106Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301106Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 154656,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301108Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301108Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 154656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 77838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1590035,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.301108Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301108Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 76838,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 368279,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301111Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 368279,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 154656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1590035,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.301111Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301111Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 298270,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 909376,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301136Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301136Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1016518,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.301138Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.301138Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419080,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.318415Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.318415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 154656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1590035,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.318415Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.318415Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 2,\n    \"exchange\": \"bitmex\",\n    \"id\": \"85a64640-106a-7617-bcb2-a823e15f242d\",\n    \"localTimestamp\": 2019-04-01T00:00:44.318480Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.418Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:42.769Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4088.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:44.318480Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:42.769Z,\n    \"sellVolume\": 2,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.000Z,\n    \"trades\": 1,\n    \"type\": \"trade_bar\",\n    \"volume\": 2,\n    \"vwap\": 4088.5,\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1590033,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.318483Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.318483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 154656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 76838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1590033,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.318483Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.318483Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.318490Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.318490Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 154656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1590033,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.318490Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.318490Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 199065,\n        \"price\": 4064,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.318522Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.318522Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"868c9682-f699-963b-7887-301ac94f4ddf\",\n    \"localTimestamp\": 2019-04-01T00:00:44.318527Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.513Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1590032,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341408Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341408Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 154656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1590032,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.341408Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341408Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2275249,\n        \"price\": 4020,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341440Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341440Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 6439,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e405b510-f247-aa28-3ea9-275722ebefc5\",\n    \"localTimestamp\": 2019-04-01T00:00:44.341446Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.549Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 7561,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1bf530d0-043b-57d3-92cc-1f14d5e9ef27\",\n    \"localTimestamp\": 2019-04-01T00:00:44.341446Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.549Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1576032,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341449Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341449Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 154656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1576032,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.341449Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341449Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 211201,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 227449,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341451Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 104720,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341454Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341454Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 104680,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341458Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341458Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 333021,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 564322,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 248052,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 230856,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341475Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341475Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 345127,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 668473,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 156473,\n        \"price\": 4136.5,\n      },\n      {\n        \"amount\": 127038,\n        \"price\": 4135.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341478Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341478Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 392205,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341480Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 523138,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341482Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341482Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1576832,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341493Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341493Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 154656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1576832,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399421,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.341493Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341493Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155865,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136927,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341498Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341498Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341502Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341502Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 154656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1576832,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.341502Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341502Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 139656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 171901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341507Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 171901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1576832,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.341507Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341507Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 9,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0ab9d078-79c8-be8f-a2ee-1419af154ada\",\n    \"localTimestamp\": 2019-04-01T00:00:44.341510Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.669Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1576823,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341512Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341512Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 171901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1576823,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.341512Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341512Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2008909,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341531Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1577623,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341533Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341533Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 419080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 171901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1577623,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.341533Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341533Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 424080,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341535Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341535Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 424080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 171901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1577623,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.341535Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341535Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 7500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f12b71b7-d4d1-0b12-5196-fefdf1585b17\",\n    \"localTimestamp\": 2019-04-01T00:00:44.341538Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:43.718Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341540Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 424080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 171901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.341540Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341540Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 557282,\n        \"price\": 4068,\n      },\n      {\n        \"amount\": 436520,\n        \"price\": 4038,\n      },\n      {\n        \"amount\": 238733,\n        \"price\": 3998.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341545Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341545Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 352813,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.341547Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.341547Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137235,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 135969,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 335657,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 424080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 335657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 78038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.360127Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360127Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155843,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136949,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360166Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360166Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155808,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 136984,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360188Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360188Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 408101,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 102038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360255Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 424080,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 335657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 102038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.360255Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360255Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 718049,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1003965,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360258Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360258Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 904376,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 405601,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360260Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360260Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426964,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360262Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360262Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426964,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 335657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 102038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.360262Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360262Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90969,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 147038,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360265Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360265Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426964,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 139656,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 147038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.360265Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360265Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 142235,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426964,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 147038,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.360279Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360279Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 206042,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 408633,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 2004709,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 900176,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 142035,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38091,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 155608,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 140968,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 247632,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360285Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360285Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426964,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 394057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.360285Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360285Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 324462,\n        \"price\": 3979,\n      },\n      {\n        \"amount\": 236643,\n        \"price\": 3978,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360290Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360290Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155551,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 137041,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360295Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717992,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004022,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360298Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360298Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 204904,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360303Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360303Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770093,\n        \"price\": 4300,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360322Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360322Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1999709,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 572640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 389057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 313436,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360325Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426964,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 377806,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.360325Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360325Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253085,\n        \"price\": 4104,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360332Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360332Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 183302,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91219,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360335Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 373269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360342Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360342Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426964,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 399321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.360342Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360342Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 317970,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 1096689,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360352Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426964,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 373269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.360352Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360352Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2004709,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 577640,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360388Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360388Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 404189,\n        \"price\": 4103,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360394Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360394Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 319270,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360399Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360399Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426964,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320657,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.360399Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360399Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185919,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360401Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360401Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360403Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360403Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91158,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 320718,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.360406Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360406Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 426964,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320718,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.360406Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.360406Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 141535,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 183802,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382076Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382076Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 602249,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 141838,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 151877,\n        \"price\": 4136.5,\n      },\n      {\n        \"amount\": 199168,\n        \"price\": 4136,\n      },\n      {\n        \"amount\": 216542,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 372869,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382114Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382114Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 157472,\n        \"price\": 4292,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 471541,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 577645,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382167Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382167Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 500,\n        \"price\": 6133,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382177Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382177Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245953,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141453,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94358,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382196Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717841,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004173,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522492,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2585551,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 2004578,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 577383,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220707,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382210Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382210Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 191919,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382214Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382214Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1091689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 466965,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382219Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 466965,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320718,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570123,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389057,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.382219Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382219Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1570133,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382221Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 466965,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320718,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570133,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.382221Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382221Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717819,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004195,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382226Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155516,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 137076,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382229Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382229Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522355,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2585414,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 2004441,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 577109,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220485,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.382234Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.382234Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717784,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004230,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.385717Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.385717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 392158,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.387938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.387938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245931,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141475,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.394231Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.394231Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245896,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141510,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.403664Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.403664Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 466965,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320718,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1570133,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:44.403664Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1510133,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.413552Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.413552Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 466965,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320718,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1510133,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.413552Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.413552Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 227949,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 219985,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.423812Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.423812Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94347,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.425829Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.425829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 466965,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1510133,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.425829Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.425829Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155495,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 137097,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.427680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.427680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245745,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141661,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.430511Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.430511Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 482035,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.445848Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.445848Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 482035,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1510133,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.445848Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.445848Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 481990,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.448668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.448668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 481990,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1510133,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.448668Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.448668Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1510134,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 951098,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.455837Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.455837Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 481990,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1510134,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.455837Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.455837Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155455,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 137137,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.456254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.456254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1513134,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.478065Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.478065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 481990,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513134,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.478065Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.478065Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 185919,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.480510Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.480510Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 89,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2eeaef4d-3ec3-efb6-b137-fda3f002f6f9\",\n    \"localTimestamp\": 2019-04-01T00:00:44.498950Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.468Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:43.718Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4088.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:44.498950Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:43.418Z,\n    \"sellVolume\": 21512,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.000Z,\n    \"trades\": 6,\n    \"type\": \"trade_bar\",\n    \"volume\": 21512,\n    \"vwap\": 4088.5,\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1513045,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.498986Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.498986Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 481990,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513045,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.498986Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.498986Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.498990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.498990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245710,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141696,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.498993Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.498993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 543683,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 169125,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.520765Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.520765Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 481990,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513045,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:44.520765Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 543696,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.532577Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.532577Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 216442,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 482090,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.556480Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.556480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 482090,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513045,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.556480Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.556480Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717763,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004251,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.561448Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.561448Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 543708,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.566604Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.566604Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484446,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.588053Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.588053Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484446,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513045,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.588053Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.588053Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.594472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.594472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484446,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513045,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.594472Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.594472Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522143,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2585202,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 2004229,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 576685,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 219645,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.630345Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.630345Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484446,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1513045,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:44.630345Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 287442,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.636730Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.636730Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717723,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004291,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.638026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.638026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1503045,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.656295Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.656295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484446,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1503045,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.656295Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.656295Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 411359,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 75622,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 246609,\n        \"price\": 4137,\n      },\n      {\n        \"amount\": 194573,\n        \"price\": 4136,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.657592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.657592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 543833,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.659105Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.659105Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1018204,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.686316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.686316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484446,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1018204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.686316Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.686316Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 29,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.691435Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.691435Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 62,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.691461Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.691461Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 459978,\n        \"price\": 4117.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.691472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.691472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245689,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141717,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.694147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.694147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1008204,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.704005Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.704005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484446,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1008204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.704005Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.704005Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 484446,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1018204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:44.704005Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 514447,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.706922Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.706922Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 514447,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1008204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.706922Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.706922Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 353179,\n        \"price\": 4107,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.710954Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.710954Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 998204,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.712321Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.712321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 514447,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 998204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.712321Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.712321Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 988204,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.729844Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.729844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 514447,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 320729,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 146838,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 988204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.729844Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.729844Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 229278,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 145431,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 368973,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.760421Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.760421Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 988204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.760421Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.760421Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 466541,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 389547,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 314270,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.802356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.802356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 988204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389547,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 404321,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.802356Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.802356Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 988204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 392047,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:44.802356Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 150431,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 1101689,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.813336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.813336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 988204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389547,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 371969,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.813336Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.813336Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.818553Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.818553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 988204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389547,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.818553Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.818553Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 368673,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.821196Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.821196Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 389247,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.831092Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.831092Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 988204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.831092Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.831092Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 975939,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.840845Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.840845Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142156,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 975939,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.840845Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.840845Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155398,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 137194,\n        \"price\": 3985.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.859057Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.859057Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 142456,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.868728Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.868728Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 142456,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 975939,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.868728Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.868728Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 368573,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.888453Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.888453Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 362573,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.888476Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.888476Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.895990Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.895990Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 975939,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 389247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.895990Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.895990Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.899503Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.899503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 975939,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.899503Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.899503Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 229528,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 150181,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.908305Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.908305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 518343,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 975939,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:44.908305Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 517488,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 970524,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.916555Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.916555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 517488,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156901,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 970524,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.916555Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.916555Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.933997Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.933997Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 517488,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 970524,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.933997Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.933997Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522618,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 971664,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.935522Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.935522Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 522618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 971664,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.935522Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.935522Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245649,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141757,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.943207Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.943207Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 268803,\n        \"price\": 4019,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.962389Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.962389Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582618,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.980307Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.980307Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 971664,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:44.980307Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.980307Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1254077,\n        \"price\": 4018.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:44.989983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:44.989983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1149,\n        \"price\": 4416,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.003640Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.003640Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 362573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 94347,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 287442,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 150181,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 229528,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 971664,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 227117,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 487983,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 314270,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 164487,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1101689,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:45.003640Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 971664,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:45.003640Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1244943,\n        \"price\": 4018.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.008733Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.008733Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 971675,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.019509Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.019509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316833,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 971675,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:45.019509Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.019509Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 227132,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.019534Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.019534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 309736,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.023810Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.023810Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.023833Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.023833Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 971675,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:45.023833Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.023833Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1009495,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.027282Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.027282Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 492518,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:45.043308Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.043308Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 905176,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.283003Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.283003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 362573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 94347,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 287442,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 150181,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 229528,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 971675,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 227132,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 492518,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 309736,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 164487,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1101689,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:48.283003Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:46.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 582618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 971675,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:48.283003Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 254702,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 395305,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.290263Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.290263Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 182812,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 296080,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.290278Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.290278Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 242013,\n        \"price\": 4137,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.291362Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.291362Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 796374,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.615394Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.615394Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2573202,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.619374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.619374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 584618,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.628342Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.628342Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 584618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 971675,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 373537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.628342Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.628342Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1769541,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.631292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.631292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 717666,\n        \"price\": 4023,\n      },\n      {\n        \"amount\": 1004348,\n        \"price\": 4022,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.646499Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.646499Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 913092,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 212849,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 344042,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 160099,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 629268,\n        \"price\": 4063,\n      },\n      {\n        \"amount\": 548006,\n        \"price\": 4048,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.649496Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.649496Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.661060Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.661060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 584618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 971675,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.661060Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.661060Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245592,\n        \"price\": 4039.5,\n      },\n      {\n        \"amount\": 141814,\n        \"price\": 4038.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.673561Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.673561Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 191919,\n        \"price\": 4072,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.675786Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.675786Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1091689,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.675802Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.675802Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253216,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 970200,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 913223,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 94609,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 219857,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.682992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.682992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1031416,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.683014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.683014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 584618,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031416,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.683014Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.683014Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 129700,\n        \"price\": 4067.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.684483Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.684483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253353,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 970337,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 913360,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 94883,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220079,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.688128Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.688128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586118,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.693016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.693016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586118,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031416,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.693016Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.693016Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586129,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.693042Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.693042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586129,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031416,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.693042Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.693042Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 345127,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 1001421,\n        \"price\": 4138,\n      },\n      {\n        \"amount\": 287442,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 362573,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.695170Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.695170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 521966,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2573025,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 2004052,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 576331,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 219793,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.706668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.706668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586129,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031416,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:48.706668Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1031208,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.739970Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.739970Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586129,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031208,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.739970Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.739970Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169136,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.766541Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.766541Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1031048,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.766576Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.766576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586129,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 150734,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031048,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.766576Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.766576Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 169247,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 342073,\n        \"price\": 4058,\n      },\n      {\n        \"amount\": 1091578,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.766596Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.766596Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 212887,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 333097,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 543947,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 392310,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 951288,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 168429,\n        \"price\": 4041.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.766600Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.766600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253563,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 970547,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 913570,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 95303,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 220133,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.768838Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.768838Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 979640,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 273920,\n        \"price\": 4100.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.774324Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.774324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.779353Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.779353Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586129,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1031048,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.779353Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.779353Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1030248,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.789028Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.789028Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586129,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1030248,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.789028Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.789028Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586155,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.799936Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.799936Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586155,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1030248,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.799936Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.799936Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417375,\n        \"price\": 4018,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.807828Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.807828Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586155,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1030248,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383247,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:48.807828Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 521778,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2572837,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 2003864,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 575955,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 219831,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.841864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.841864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1030243,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383252,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.870272Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.870272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586155,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1030243,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383252,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.870272Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.870272Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1030233,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.870324Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.870324Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586155,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1030233,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.870324Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.870324Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 168847,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 296480,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.876931Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.876931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 3196.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.878209Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.878209Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097189,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.878215Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.878215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 408241,\n        \"price\": 4018,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.880463Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.880463Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 642353,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 299270,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.888629Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.888629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 83928,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.894190Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.894190Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 125387,\n        \"price\": 4057,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.900797Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.900797Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586155,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1030233,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:48.900797Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 286045,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.903292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.903292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 593912,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.911332Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.911332Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2250,\n        \"price\": 4446,\n      },\n      {\n        \"amount\": 1283549,\n        \"price\": 4250,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.929123Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.929123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 140634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1006233,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.948287Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.948287Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586155,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316848,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1006233,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.948287Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.948287Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 229527,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 316849,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.962709Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.962709Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586155,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1006233,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.962709Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.962709Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1002785,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.995001Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.995001Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586155,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002785,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.995001Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.995001Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 309236,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 205404,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.995018Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.995018Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588155,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.995027Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.995027Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588155,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002785,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:48.995027Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.995027Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 524322,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 123928,\n        \"price\": 4079.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:48.995031Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.995031Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588955,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.005656Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.005656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588155,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140634,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 362573,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 95303,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 286045,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 150181,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 229527,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002785,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 227132,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 492518,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 309236,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 164487,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1097189,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:49.005656Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588955,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002785,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.005656Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.005656Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 588155,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002785,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:49.005656Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589955,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.027456Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027456Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589955,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002785,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.027456Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027456Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 237148,\n        \"price\": 4051,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.027465Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027465Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 104641,\n        \"price\": 3926.5,\n      },\n      {\n        \"amount\": 1252898,\n        \"price\": 3925,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.027468Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.027470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589955,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 316849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002785,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.027470Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027470Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.027472Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027472Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589955,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002785,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.027472Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027472Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 912570,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 467541,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.027477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.027477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 968347,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 591712,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 224932,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 307036,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 217631,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 522122,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.060445Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.060445Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 966147,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 589512,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222732,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 304836,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 215431,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 519922,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.060468Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.060468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.060475Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.060475Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002785,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.060475Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.060475Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.060477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.060477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 96,\n        \"price\": 31,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.060480Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.060480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1002744,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.084548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.084548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002744,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.084548Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.084548Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8177.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.084580Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.084580Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 222743,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.084584Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.084584Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100,\n        \"price\": 7359.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.084597Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.084597Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1002533,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.125559Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.125559Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002533,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 406821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.125559Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.125559Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002744,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:49.125559Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 3448,\n    \"exchange\": \"bitmex\",\n    \"id\": \"44a7d1e2-7bf2-4019-6096-33db998029a6\",\n    \"localTimestamp\": 2019-04-01T00:00:49.180538Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:48.960Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:44.468Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4088.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:49.180538Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:44.468Z,\n    \"sellVolume\": 89,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:45.000Z,\n    \"trades\": 1,\n    \"type\": \"trade_bar\",\n    \"volume\": 89,\n    \"vwap\": 4088.5,\n  },\n  {\n    \"amount\": 41,\n    \"exchange\": \"bitmex\",\n    \"id\": \"32dd2c5a-68ed-3a23-40dd-a84534e5c725\",\n    \"localTimestamp\": 2019-04-01T00:00:49.223353Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.045Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:48.960Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4088.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:49.223353Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:48.960Z,\n    \"sellVolume\": 3448,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.000Z,\n    \"trades\": 1,\n    \"type\": \"trade_bar\",\n    \"volume\": 3448,\n    \"vwap\": 4088.5,\n  },\n  {\n    \"buyVolume\": 9117,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:49.045Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 100,\n    \"kind\": \"tick\",\n    \"localTimestamp\": 2019-04-01T00:00:49.223353Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_100ticks\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:24.840Z,\n    \"sellVolume\": 164955,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.045Z,\n    \"trades\": 100,\n    \"type\": \"trade_bar\",\n    \"volume\": 174072,\n    \"vwap\": 4088.52618743968,\n  },\n  {\n    \"amount\": 211,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e964b76b-ed53-3324-c723-aec53dafc908\",\n    \"localTimestamp\": 2019-04-01T00:00:49.246435Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.077Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 586712,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 2000134,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 226727,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 302036,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 520338,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.311337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.311337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002533,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:49.311337Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 583912,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 1997334,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 224007,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 301996,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 517538,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.319447Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.319447Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 218307,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.319481Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.319481Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 6723,\n        \"price\": 4317,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 4278.5,\n      },\n      {\n        \"amount\": 24122,\n        \"price\": 4246.5,\n      },\n      {\n        \"amount\": 39186,\n        \"price\": 4219.5,\n      },\n      {\n        \"amount\": 146032,\n        \"price\": 4197.5,\n      },\n      {\n        \"amount\": 290742,\n        \"price\": 4179,\n      },\n      {\n        \"amount\": 92298,\n        \"price\": 4163.5,\n      },\n      {\n        \"amount\": 104288,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 344073,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 266336,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 601826,\n        \"price\": 4123.5,\n      },\n      {\n        \"amount\": 1093269,\n        \"price\": 4117,\n      },\n      {\n        \"amount\": 391902,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 503785,\n        \"price\": 4107.5,\n      },\n      {\n        \"amount\": 253423,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 979540,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222628,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 205249,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 517327,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 549719,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 234693,\n        \"price\": 4071.5,\n      },\n      {\n        \"amount\": 434467,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 125096,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 236079,\n        \"price\": 4051,\n      },\n      {\n        \"amount\": 166938,\n        \"price\": 4041.5,\n      },\n      {\n        \"amount\": 2062665,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 404587,\n        \"price\": 4016,\n      },\n      {\n        \"amount\": 1310165,\n        \"price\": 3999,\n      },\n      {\n        \"amount\": 318778,\n        \"price\": 3979,\n      },\n      {\n        \"amount\": 1346763,\n        \"price\": 3955,\n      },\n      {\n        \"amount\": 223776,\n        \"price\": 3926,\n      },\n      {\n        \"amount\": 5611,\n        \"price\": 3891.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.342467Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.342467Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 396821,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.364532Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.364532Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002533,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 396821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.364532Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.364532Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 69,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1c6cc00b-1aa4-8c31-d181-0d1962e448b2\",\n    \"localTimestamp\": 2019-04-01T00:00:49.385316Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.358Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1002464,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.385352Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.385352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002464,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 383262,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 396821,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.385352Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.385352Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 381218,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398864,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.394014Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.394014Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002464,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381218,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398864,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.394014Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.394014Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90761,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.414701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.414701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002464,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381218,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:49.414701Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 365332,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.426222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.426222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 26,\n    \"exchange\": \"bitmex\",\n    \"id\": \"43ddd1bf-f091-385e-c577-2c91a5733280\",\n    \"localTimestamp\": 2019-04-01T00:00:49.445300Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.418Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1002438,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.445349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.445349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002438,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381218,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398864,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.445349Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.445349Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1159498,\n        \"price\": 4115,\n      },\n      {\n        \"amount\": 521565,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 2572624,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1997121,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 575742,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 463625,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.449663Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.449663Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 256028,\n        \"price\": 4114.5,\n      },\n      {\n        \"amount\": 305986,\n        \"price\": 4113,\n      },\n      {\n        \"amount\": 645151,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 164427,\n        \"price\": 4106.5,\n      },\n      {\n        \"amount\": 261802,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 274126,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 642153,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 467742,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 164287,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 213088,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 168642,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 392516,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 191709,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 278060,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 434252,\n        \"price\": 4066,\n      },\n      {\n        \"amount\": 150645,\n        \"price\": 4064.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.452127Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.452127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.454483Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.454483Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318849,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002438,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398864,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.454483Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.454483Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 318951,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.456321Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.456321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002438,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398864,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.456321Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.456321Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1002364,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.458255Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.458255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 318951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 145780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002364,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398864,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.458255Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.458255Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.463656Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.463656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 138634,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002364,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398864,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.463656Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.463656Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1957121,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 479922,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.477293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.477293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2532624,\n        \"price\": 4100,\n      },\n      {\n        \"amount\": 1917121,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 439922,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 142812,\n        \"price\": 4077.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.482341Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.482341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 543912,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 399922,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.484757Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.484757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 327284,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 614935,\n        \"price\": 4076,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.489723Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.489723Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 103677,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.505511Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.505511Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103677,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002364,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398864,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.505511Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.505511Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1002364,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:49.505511Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1917021,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.511625Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.511625Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 644994,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 261645,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 796217,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 641839,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.515835Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.515835Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90595,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 365498,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 492352,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 164453,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.522293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.522293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 217807,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 150681,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 163953,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 213588,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.526124Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.526124Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1096689,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 228449,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.526150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.526150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 217557,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 150931,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 492102,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 1096939,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.529667Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.529667Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 907570,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158953,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 200249,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 218449,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.534331Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.534331Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1000320,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.536820Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.536820Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103677,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1000320,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372269,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398864,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.536820Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.536820Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.541824Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.541824Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103677,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1000320,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398864,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.541824Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.541824Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 461742,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 540947,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.549839Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.549839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 285545,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91095,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 301496,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 200749,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.556495Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.556495Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 217057,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 151431,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 158453,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 201249,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.559068Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.559068Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90970,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 103802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 398739,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 222753,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.563310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.563310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144780,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1000320,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398739,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.563310Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.563310Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90804,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 365664,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222587,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 158619,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.563334Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.563334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90554,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 365914,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222337,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 158869,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.565504Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.565504Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 285295,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 366164,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 222087,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 301746,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.568316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.568316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.571718Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.571718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1000320,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398739,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.571718Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.571718Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 352579,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 252873,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 261145,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 795767,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 1916621,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 575392,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 213288,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 540597,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 614535,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 159649,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 1456831,\n        \"price\": 4070,\n      },\n      {\n        \"amount\": 463075,\n        \"price\": 4067,\n      },\n      {\n        \"amount\": 198465,\n        \"price\": 4064,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.584017Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.584017Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 103802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1000320,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371537,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.584017Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.584017Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2544624,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.590340Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.590340Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 923197,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 586852,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.594198Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.594198Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 803767,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.597797Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.597797Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202242,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 404833,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 99819,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 103992,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 323495,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 147431,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 590770,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1000620,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 34091,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 151398,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 137168,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 243832,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.616527Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.616527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590770,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1000620,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.616527Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.616527Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1000320,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:49.616527Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 990620,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.629295Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.629295Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 590770,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 990620,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.629295Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.629295Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"efa0c4da-e8e0-d10c-b3e4-214db5a7c439\",\n    \"localTimestamp\": 2019-04-01T00:00:49.647346Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.624Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589770,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.647456Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.647456Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589770,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 990620,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.647456Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.647456Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 529770,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.656267Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.656267Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 529770,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 990620,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.656267Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.656267Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527770,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.672861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.672861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527770,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 990620,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.672861Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.672861Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 284795,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 91054,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.690964Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.690964Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.698067Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.698067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 3196.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.704117Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.704117Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527770,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 990620,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:49.704117Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367561,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.712786Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.712786Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 990640,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.718316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.718316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527770,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 156916,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 990640,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.718316Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.718316Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 348042,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 323284,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.724548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.724548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 232306,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.726223Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.726223Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.733203Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.733203Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527770,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 136472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 990640,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.733203Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.733203Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 333257,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.744346Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.744346Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527870,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.749021Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.749021Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 136472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 990640,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.749021Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.749021Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 575377,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.755503Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.755503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 333465,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.758111Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.758111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 237249,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 2581493,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.763254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.763254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 650130,\n        \"price\": 4016.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.766027Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.766027Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 145061,\n        \"price\": 3998.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.773438Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.773438Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 461752,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 575367,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.781177Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.781177Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 461757,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 575362,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.782696Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.782696Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 990844,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.792204Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.792204Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 527870,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 136472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 990844,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.792204Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.792204Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 528670,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.796143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.796143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 528670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 136472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 990844,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.796143Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.796143Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 264080,\n        \"price\": 4131,\n      },\n      {\n        \"amount\": 408997,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 519309,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 977284,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 639583,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 116576,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.803753Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.803753Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 528670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 136472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 990844,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 372314,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:49.803753Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 956809,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 404578,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.809108Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.809108Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 528670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 136472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 144576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 956809,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404578,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.809108Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.809108Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 148472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.809153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.809153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 528670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 148472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 956809,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 404578,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.809153Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.809153Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 917913,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 442360,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.811999Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.811999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 528670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 148472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 132576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 917913,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442360,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.811999Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.811999Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 252055,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 400293,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.812026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.812026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 115576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 165472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.814244Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.814244Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 528670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 165472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 115576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 917913,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442360,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.814244Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.814244Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.816366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.816366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 528670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 165472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 115576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 99802,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.816366Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.816366Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131632,\n        \"price\": 4135.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.818062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.818062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100114,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.819539Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.819539Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 528670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 165472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 115576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 100114,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.819539Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.819539Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 90054,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.826673Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.826673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 335665,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 519527,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.834734Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.834734Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20350,\n        \"price\": 4391.5,\n      },\n      {\n        \"amount\": 355851,\n        \"price\": 4212.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.839717Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.839717Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 169431,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.854357Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.854357Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 548670,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.875191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.875191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 548670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 165472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 115576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 100114,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 371737,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.875191Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.875191Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 589052,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 355013,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 494302,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 161069,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 337865,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 521727,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.879398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.879398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 504302,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.882931Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.882931Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94596,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.894115Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.894115Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 224087,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.894153Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.894153Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91837,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.897592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.897592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 357813,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.903450Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.903450Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 548670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 165472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:49.903450Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 298270,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 462757,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.919026Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.919026Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 591852,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 361543,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 172231,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 163869,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 524527,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.923801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.923801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 131921,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1008495,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.955250Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.955250Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.962620Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.962620Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 548670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319951,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 165472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 115576,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 100114,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381206,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398439,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.962620Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.962620Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3250,\n        \"price\": 4291,\n      },\n      {\n        \"amount\": 141800,\n        \"price\": 4290,\n      },\n      {\n        \"amount\": 544020,\n        \"price\": 4240,\n      },\n      {\n        \"amount\": 17974,\n        \"price\": 4239.5,\n      },\n      {\n        \"amount\": 1385461,\n        \"price\": 4190,\n      },\n      {\n        \"amount\": 185356,\n        \"price\": 4189.5,\n      },\n      {\n        \"amount\": 465323,\n        \"price\": 4165,\n      },\n      {\n        \"amount\": 78304,\n        \"price\": 4164.5,\n      },\n      {\n        \"amount\": 1300638,\n        \"price\": 4140,\n      },\n      {\n        \"amount\": 344231,\n        \"price\": 4139.5,\n      },\n      {\n        \"amount\": 404071,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 78059,\n        \"price\": 4102.5,\n      },\n      {\n        \"amount\": 923118,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 591931,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 298199,\n        \"price\": 4095.5,\n      },\n      {\n        \"amount\": 907641,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 216994,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 172294,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 91782,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 400348,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 115623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 319990,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 381269,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 224158,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 301675,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 201328,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 218370,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 168760,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 142694,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 167096,\n        \"price\": 4041.5,\n      },\n      {\n        \"amount\": 514942,\n        \"price\": 4040.5,\n      },\n      {\n        \"amount\": 650327,\n        \"price\": 4016.5,\n      },\n      {\n        \"amount\": 264398,\n        \"price\": 4015.5,\n      },\n      {\n        \"amount\": 116971,\n        \"price\": 3991.5,\n      },\n      {\n        \"amount\": 383721,\n        \"price\": 3990.5,\n      },\n      {\n        \"amount\": 1309159,\n        \"price\": 3990,\n      },\n      {\n        \"amount\": 108676,\n        \"price\": 3940.5,\n      },\n      {\n        \"amount\": 1083833,\n        \"price\": 3940,\n      },\n      {\n        \"amount\": 5650,\n        \"price\": 3891.5,\n      },\n      {\n        \"amount\": 104626,\n        \"price\": 3890.5,\n      },\n      {\n        \"amount\": 123000,\n        \"price\": 3889.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.965983Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.965983Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 548670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 165472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 115623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 100114,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381269,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.965983Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.965983Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550670,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.972070Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.972070Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 165472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 115623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 100114,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381269,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.972070Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.972070Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 34,\n        \"price\": 31,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.975861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.975861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 935213,\n        \"price\": 4138,\n      },\n      {\n        \"amount\": 1994094,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 1851069,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 427087,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 367616,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 132842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.985984Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.985984Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 165472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 115623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381269,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.985984Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.985984Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.995675Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.995675Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381269,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:49.995675Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.995675Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 155700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 184994,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 221454,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 231759,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 305217,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 557167,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 536065,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 147224,\n        \"price\": 4077.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:49.997248Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:49.997248Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 21757,\n        \"price\": 4314.5,\n      },\n      {\n        \"amount\": 104732,\n        \"price\": 4276,\n      },\n      {\n        \"amount\": 64097,\n        \"price\": 4244,\n      },\n      {\n        \"amount\": 69055,\n        \"price\": 4217,\n      },\n      {\n        \"amount\": 408882,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 139073,\n        \"price\": 4176.5,\n      },\n      {\n        \"amount\": 178917,\n        \"price\": 4161,\n      },\n      {\n        \"amount\": 2676598,\n        \"price\": 4148,\n      },\n      {\n        \"amount\": 243067,\n        \"price\": 4137,\n      },\n      {\n        \"amount\": 272526,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 214901,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 256412,\n        \"price\": 4114.5,\n      },\n      {\n        \"amount\": 591264,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 812558,\n        \"price\": 4105,\n      },\n      {\n        \"amount\": 207312,\n        \"price\": 4101.5,\n      },\n      {\n        \"amount\": 594807,\n        \"price\": 4098.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 185109,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 305372,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 147435,\n        \"price\": 4077.5,\n      },\n      {\n        \"amount\": 122503,\n        \"price\": 4073.5,\n      },\n      {\n        \"amount\": 243150,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 124491,\n        \"price\": 4063.5,\n      },\n      {\n        \"amount\": 126708,\n        \"price\": 4056.5,\n      },\n      {\n        \"amount\": 47688,\n        \"price\": 4048.5,\n      },\n      {\n        \"amount\": 541896,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 185638,\n        \"price\": 4027.5,\n      },\n      {\n        \"amount\": 89309,\n        \"price\": 4013.5,\n      },\n      {\n        \"amount\": 75951,\n        \"price\": 3996.5,\n      },\n      {\n        \"amount\": 118360,\n        \"price\": 3976.5,\n      },\n      {\n        \"amount\": 636913,\n        \"price\": 3952.5,\n      },\n      {\n        \"amount\": 172159,\n        \"price\": 3923.5,\n      },\n      {\n        \"amount\": 728128,\n        \"price\": 3889,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.025839Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.025839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132842,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 367616,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 91782,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 252055,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 172294,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 216994,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381269,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 224158,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 504302,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 301675,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 155700,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1096939,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:50.025839Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 884794,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381269,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:50.025839Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.032444Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.032444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 381269,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473619,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.032444Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.032444Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 418895,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435837,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.043144Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.043144Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418895,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435837,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.043144Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.043144Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136782,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 87842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.047255Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.047255Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 319990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418895,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435837,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.047255Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.047255Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.052860Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.052860Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418895,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435837,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.052860Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.052860Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 594131,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 429287,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 506502,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 157900,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.056961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.056961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 116247,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.062038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.062038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253050,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 923295,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 907818,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 137136,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 232045,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.119760Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.119760Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550670,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418895,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435837,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:50.119760Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 111397,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.119774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.119774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 110344,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.119784Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.119784Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d8bd4d45-5f81-8e3e-d49b-56afc8cd8f6d\",\n    \"localTimestamp\": 2019-04-01T00:00:50.165876Z,\n    \"price\": 4089,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.128Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 1000,\n    \"close\": 4089,\n    \"closeTimestamp\": 2019-04-01T00:00:49.624Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:50.165876Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:49.045Z,\n    \"sellVolume\": 347,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.000Z,\n    \"trades\": 5,\n    \"type\": \"trade_bar\",\n    \"volume\": 1347,\n    \"vwap\": 4088.871195248701,\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550667,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.170688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.170688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550667,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418895,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435837,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.170688Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.170688Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 109379,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.171006Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.171006Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367605,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 550678,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.171013Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.171013Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 550678,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418895,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435837,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.171013Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.171013Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549928,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.184296Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184296Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549928,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418895,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435837,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.184296Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184296Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 467757,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 162900,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 231370,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.184335Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184335Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 163100,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 231570,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 136968,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 243632,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.184348Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 108874,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.184351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 596931,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 175014,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 163140,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 559967,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.184355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 59199,\n        \"price\": 3941.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.184358Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.184358Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 108409,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.186531Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.186531Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 418958,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.189005Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.189005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549928,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418958,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435837,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.189005Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.189005Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.197626Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.197626Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549928,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 87842,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.197626Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.197626Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253238,\n        \"price\": 4104,\n      },\n      {\n        \"amount\": 923483,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 908006,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 137512,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 232347,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.206773Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.206773Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549928,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 883998,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:50.206773Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 153263,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.217016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.217016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94037,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890193,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.227913Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.227913Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549928,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94037,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890193,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.227913Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.227913Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 305941,\n        \"price\": 4113,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.240253Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.240253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549931,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.246406Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.246406Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549931,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 178472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94037,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890193,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.246406Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.246406Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770767,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.251500Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.251500Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549931,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94037,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890193,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.251500Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.251500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 368605,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.258104Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.258104Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107285,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.264453Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.264453Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 277711,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.266402Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.266402Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 272544,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.270785Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.270785Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 107087,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.275033Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.275033Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137612,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.285011Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.285011Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 93062,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.285042Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.285042Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 271425,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.286526Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.286526Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 87321,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.305279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.305279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549931,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890193,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:50.305279Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 270399,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.315424Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.315424Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 269870,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.321817Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.321817Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 269380,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.330851Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.330851Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 459258,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 590904,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 631860,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 429107,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 269290,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 206017,\n        \"price\": 4062.5,\n      },\n      {\n        \"amount\": 644233,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 203147,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.351528Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.351528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549131,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.353701Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.353701Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94037,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890193,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.353701Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.353701Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 268941,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.366276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.366276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 263774,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.373510Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.373510Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 216494,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 175514,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.376074Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.376074Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175264,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 252305,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.378232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.378232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 262655,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.379729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.379729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 261458,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.385292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.385292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94349,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.388834Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.388834Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 549131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94349,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890193,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.388834Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.388834Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 261252,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.390794Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.390794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 246304,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.392509Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.392509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 501967,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.396658Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.396658Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.398618Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.398618Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94349,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890193,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 369951,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.398618Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.398618Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 245278,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.407602Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.407602Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890193,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:50.407602Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 323995,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 148531,\n        \"price\": 4188.5,\n      },\n      {\n        \"amount\": 602349,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 75522,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 1663219,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 272426,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 694422,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 445271,\n        \"price\": 4118.5,\n      },\n      {\n        \"amount\": 475833,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 246227,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 770817,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 594757,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 575402,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 216459,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1096979,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 185069,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 536115,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 168710,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 243250,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 209360,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 87421,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 124366,\n        \"price\": 4058.5,\n      },\n      {\n        \"amount\": 315800,\n        \"price\": 4049,\n      },\n      {\n        \"amount\": 47588,\n        \"price\": 4048.5,\n      },\n      {\n        \"amount\": 541996,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 141714,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 280735,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 33591,\n        \"price\": 3988.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.407617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.407617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 239168,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.408160Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.408160Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 922983,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 597431,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 231070,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 232847,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.409984Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.409984Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 238639,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.411683Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.411683Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 238149,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.415319Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.415319Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 536127,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.422732Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.422732Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.427383Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.427383Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94349,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890193,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.427383Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.427383Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 236952,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.430595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.430595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 236746,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.435038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.435038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 221798,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.437928Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.437928Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137862,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 368355,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.443293Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.443293Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 215688,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.443319Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.443319Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 368480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 94224,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.444813Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.444813Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94224,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890193,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.444813Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.444813Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 89,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6a8c7131-d51b-415d-2117-8debf5476f21\",\n    \"localTimestamp\": 2019-04-01T00:00:50.475670Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.447Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 890104,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.475711Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.475711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94224,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890104,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.475711Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.475711Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 890212,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.475716Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.475716Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94224,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890212,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.475716Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.475716Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189140,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.497274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.497274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 892712,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.504686Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.504686Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94224,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892712,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.504686Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.504686Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 890212,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:50.504686Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189102,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 221492,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 230994,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 305448,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 399808,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 536241,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 168558,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 323436,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 296290,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 951478,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.504710Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.504710Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 557235,\n        \"price\": 4068,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.544038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.544038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 232295,\n        \"price\": 4071,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.562351Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.562351Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 221494,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 230992,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.595679Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.595679Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211726,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892839,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 301989,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 233004,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 536398,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.625429Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.625429Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211726,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94224,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892839,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.625429Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.625429Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211472,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892712,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 418978,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:50.625429Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189569,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.632736Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.632736Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 392115,\n        \"price\": 4112,\n      },\n      {\n        \"amount\": 404284,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 1851282,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 575615,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 466856,\n        \"price\": 4067,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.641131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.641131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211726,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892839,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.641131Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.641131Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 510,\n        \"price\": 6133,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.646082Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.646082Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675231,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.712999Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.712999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675231,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211726,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892839,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.712999Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.712999Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 609131,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211726,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892839,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:50.712999Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 632083,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 305699,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.738570Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.738570Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 39,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d19fe993-d248-9240-8559-52ef906b0e6d\",\n    \"localTimestamp\": 2019-04-01T00:00:50.791577Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.766Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 892800,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.791611Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.791611Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675231,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211726,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892800,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.791611Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.791611Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227338,\n        \"price\": 4143,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.863655Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.863655Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675231,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211726,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892800,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:50.863655Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 408952,\n        \"price\": 4116,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.865603Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.865603Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1148,\n        \"price\": 4416,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.870661Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.870661Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189672,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.893755Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.893755Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676031,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.906422Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.906422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676031,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211726,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892800,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:50.906422Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.906422Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 175576,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:50.906431Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:50.906431Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 985890,\n        \"price\": 4128,\n      },\n      {\n        \"amount\": 308196,\n        \"price\": 4113,\n      },\n      {\n        \"amount\": 406539,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 925238,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 177831,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 95941,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.002044Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.002044Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676031,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211726,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 368480,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 137862,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 252305,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 175576,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 216459,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892800,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 224158,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 501967,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 301989,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 189102,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1096979,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:51.002044Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676031,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211726,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892800,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:51.002044Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 968177,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 554491,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.017721Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.017721Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 501982,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.020016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.020016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.024370Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.024370Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676031,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 892800,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.024370Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.024370Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 1442,\n    \"exchange\": \"bitmex\",\n    \"id\": \"48567cf9-01df-a455-020e-00ede0294f65\",\n    \"localTimestamp\": 2019-04-01T00:00:51.064496Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.033Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 3,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:50.766Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4089,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:51.064496Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4089,\n    \"openTimestamp\": 2019-04-01T00:00:50.128Z,\n    \"sellVolume\": 128,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.000Z,\n    \"trades\": 3,\n    \"type\": \"trade_bar\",\n    \"volume\": 131,\n    \"vwap\": 4088.5114503816794,\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 891358,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.064534Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064534Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676031,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 891358,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.064534Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064534Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 706,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a1ac1795-0b2f-be82-dae4-08d40b2d08c1\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 590,\n    \"exchange\": \"bitmex\",\n    \"id\": \"4b54e323-cfe5-ffd4-d681-d5e0fe55837f\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"09778f7b-6ec0-9565-1157-d0bf2a109de5\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 55,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0aa198e9-9013-ded0-3ba9-d30ecf095e3a\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 204,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2bd9ebd8-21a2-4f49-f5eb-c4fb17e7beac\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 29,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fec1f347-d852-1d94-c828-7b38418500ae\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 19,\n    \"exchange\": \"bitmex\",\n    \"id\": \"8375dc7d-89af-63c1-1671-9a48168b41d4\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 192,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ef999dc7-e39a-20a7-37a3-bafcba3590a6\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f4d2a0df-01b3-9516-4070-43912ac53851\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 716,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f437e921-676a-6226-8e79-53f199edb1c0\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5856,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3237ba20-e22c-fd78-c9e1-3b022391735e\",\n    \"localTimestamp\": 2019-04-01T00:00:51.095862Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.064Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 882979,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.095934Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.095934Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676031,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 882979,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.095934Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.095934Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676020,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.105140Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.105140Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676020,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 882979,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.105140Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.105140Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676031,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 882979,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:51.105140Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 42770,\n    \"exchange\": \"bitmex\",\n    \"id\": \"31ca1631-cacb-4410-a822-950779fc4af5\",\n    \"localTimestamp\": 2019-04-01T00:00:51.135508Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.089Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 840209,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.135540Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.135540Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676020,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 840209,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 419105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.135540Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.135540Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 230792,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 243832,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.135594Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.135594Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214459,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.135601Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.135601Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676020,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 840209,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.135601Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.135601Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 101374,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c11dd521-e412-0cdd-6c47-017df0de1a52\",\n    \"localTimestamp\": 2019-04-01T00:00:51.152480Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.123Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 204,\n    \"exchange\": \"bitmex\",\n    \"id\": \"9d5e2e93-4bbc-2e6c-6c73-e49177cd8a53\",\n    \"localTimestamp\": 2019-04-01T00:00:51.152480Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.123Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3058,\n    \"exchange\": \"bitmex\",\n    \"id\": \"e3dee635-5ef1-76aa-975e-cd687b1b3dac\",\n    \"localTimestamp\": 2019-04-01T00:00:51.152480Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.123Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 735573,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.152509Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.152509Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676020,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 735573,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.152509Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.152509Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 467657,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 735473,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.156430Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.156430Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676020,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94437,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 735473,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.156430Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.156430Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94641,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.164608Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.164608Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676020,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94641,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 735473,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.164608Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.164608Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 274118,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 2544624,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.164651Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.164651Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 188902,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 137168,\n        \"price\": 3984.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.164653Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.164653Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 741544,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.171111Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.171111Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676020,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94641,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 741544,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.171111Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.171111Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 171831,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.171143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.171143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 367013,\n        \"price\": 4129.5,\n      },\n      {\n        \"amount\": 676021,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.176762Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.176762Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676021,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94641,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 741544,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374487,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.176762Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.176762Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 103792,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 323795,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 94841,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 741244,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 374287,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 33791,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 151598,\n        \"price\": 3986.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.182410Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.182410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94841,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 741244,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.182410Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.182410Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 683774,\n        \"price\": 4065,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.187330Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.187330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 2443,\n    \"exchange\": \"bitmex\",\n    \"id\": \"0863e5c1-9c2f-7ddc-f3a3-a52c03bb0e9c\",\n    \"localTimestamp\": 2019-04-01T00:00:51.220440Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.189Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 738801,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.220470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.220470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94841,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 738801,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.220470Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.220470Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 741244,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:51.220470Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1928014,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 150798,\n        \"price\": 4112.5,\n      },\n      {\n        \"amount\": 363563,\n        \"price\": 4096.5,\n      },\n      {\n        \"amount\": 697619,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.220474Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.220474Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 197839,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 213328,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 247122,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 216676,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 352573,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 142905,\n        \"price\": 4077.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.237003Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.237003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 4499,\n    \"exchange\": \"bitmex\",\n    \"id\": \"c4ccf79c-5ca9-f3a0-fd4c-360c946bf1bc\",\n    \"localTimestamp\": 2019-04-01T00:00:51.286746Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.256Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3334,\n    \"exchange\": \"bitmex\",\n    \"id\": \"652bbc15-1c4b-b114-ab2c-dc1811cce8fd\",\n    \"localTimestamp\": 2019-04-01T00:00:51.286746Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.256Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 730968,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.286772Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.286772Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211741,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94841,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 730968,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.286772Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.286772Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 94649,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.286780Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.286780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94649,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 730968,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.286780Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.286780Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 562,\n    \"exchange\": \"bitmex\",\n    \"id\": \"964f7eea-1b22-a478-4c20-8b3f1ee91184\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3223,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3e16d1de-6727-383e-4c80-a98292ea6aca\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1346,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dc5c2eef-2d6d-0c6c-9185-d8974c818b04\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1534,\n    \"exchange\": \"bitmex\",\n    \"id\": \"6f54ab62-33e0-b3aa-2019-13eb94d7157b\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 10000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"26dd38d0-15bb-662c-4d71-4b0b72a9cfea\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 22,\n    \"exchange\": \"bitmex\",\n    \"id\": \"be3e45c5-eabd-c13d-5b66-715399122fec\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 19482,\n    \"exchange\": \"bitmex\",\n    \"id\": \"edc1587e-2b6d-53d7-b314-5048ec874722\",\n    \"localTimestamp\": 2019-04-01T00:00:51.311811Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.274Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 694799,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.311863Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.311863Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94649,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 694799,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 374287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.311863Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.311863Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 730968,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:51.311863Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 370287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.311900Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.311900Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94649,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 694799,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 370287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.311900Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.311900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305288,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.311903Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.311903Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 7182,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d5954145-e923-9c7b-f717-0d9a0d110fc5\",\n    \"localTimestamp\": 2019-04-01T00:00:51.326512Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.293Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 687617,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.326543Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.326543Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94649,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 687617,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 370287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.326543Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.326543Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 3703,\n    \"exchange\": \"bitmex\",\n    \"id\": \"bc3734db-47dc-8132-7e4f-90c2e0878de9\",\n    \"localTimestamp\": 2019-04-01T00:00:51.336273Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.310Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 683914,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.336310Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.336310Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94649,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 683914,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 370287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.336310Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.336310Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 6694,\n    \"exchange\": \"bitmex\",\n    \"id\": \"88899cac-f564-5aa4-56b0-486a9aba3e74\",\n    \"localTimestamp\": 2019-04-01T00:00:51.358346Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.321Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 677220,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.358371Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.358371Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 676121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94649,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 677220,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 370287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.358371Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.358371Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305080,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.358374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.358374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 686121,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.358383Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.358383Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 686121,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94649,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 677220,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 370287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.358383Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.358383Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 167935,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.375422Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.375422Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94649,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 677220,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 370287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.375422Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.375422Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 213330,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.378551Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.378551Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1438,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3c9c72f8-d741-a85f-1988-0e48e56fb4a3\",\n    \"localTimestamp\": 2019-04-01T00:00:51.396140Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.368Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 675782,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.396164Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.396164Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 94649,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 675782,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 370287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.396164Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.396164Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135749,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.396173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.396173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 459978,\n        \"price\": 4117.5,\n      },\n      {\n        \"amount\": 591264,\n        \"price\": 4109.5,\n      },\n      {\n        \"amount\": 632040,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 363743,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 215778,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 206197,\n        \"price\": 4062.5,\n      },\n      {\n        \"amount\": 644593,\n        \"price\": 4060.5,\n      },\n      {\n        \"amount\": 203867,\n        \"price\": 4050.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.404223Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.404223Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 675782,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:51.404223Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70893,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.414980Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.414980Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 70893,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 675782,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 370287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.414980Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.414980Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1846282,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 570615,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 393376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 1091979,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.421938Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.421938Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 70893,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 675782,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 393376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 370287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.421938Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.421938Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 697931,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.422703Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.422703Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3430,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ab3105fb-8079-67e5-a405-d8949fbc000e\",\n    \"localTimestamp\": 2019-04-01T00:00:51.462083Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.432Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 672352,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.462119Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.462119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 70893,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672352,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 393376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 370287,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.462119Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.462119Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 252295,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 224148,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.462133Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.462133Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.466211Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.466211Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 70893,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672352,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 393376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.466211Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.466211Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1096512,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.485875Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.485875Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 252305,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 247132,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.494940Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.494940Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211409,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 336422,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.511954Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.511954Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 336422,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211409,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 70893,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672352,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 393376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.511954Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.511954Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 334990,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 212125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672352,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:51.511954Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 694377,\n        \"price\": 4119,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.514109Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.514109Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 1101512,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.523112Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.523112Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 336422,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211409,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 70893,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672352,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.523112Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.523112Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 559979,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.528173Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.528173Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 70593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.529548Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.529548Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 336422,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211409,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 70593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672352,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.529548Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.529548Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 702931,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 172935,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.557674Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.557674Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211709,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.582226Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.582226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 336422,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211709,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 70593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672352,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.582226Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.582226Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 217709,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.589355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.589355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 336422,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 217709,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 70593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672352,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.589355Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.589355Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 368490,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 197849,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.593592Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.593592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 64593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.595503Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.595503Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 336422,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 217709,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 64593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672352,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.595503Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.595503Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 672512,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.599286Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.599286Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 336422,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 217709,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 64593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672512,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.599286Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.599286Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 213328,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 247134,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.607069Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.607069Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 336422,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 217709,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672512,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:51.607069Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 130921,\n        \"price\": 4074.5,\n      },\n      {\n        \"amount\": 1009495,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.607077Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.607077Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 216362,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 339115,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.626071Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.626071Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 339115,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 216362,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 64593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672512,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.626071Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.626071Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 213139,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 345561,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.631612Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.631612Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 345561,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213139,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 64593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672512,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.631612Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.631612Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 672546,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.645856Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.645856Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 345561,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213139,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 64593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672546,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.645856Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.645856Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 672754,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.653988Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.653988Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 345561,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 213139,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 64593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672754,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.653988Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.653988Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 348629,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.671171Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.671171Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348629,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 64593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672754,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435812,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.671171Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.671171Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 303733,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.692568Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.692568Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 774865,\n        \"price\": 4099,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.692607Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.692607Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.694047Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.694047Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348629,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 102623,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 64593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672754,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.694047Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.694047Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473657,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 355573,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.703050Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.703050Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348629,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672754,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:51.703050Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 910172,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.732102Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.732102Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 127038,\n        \"price\": 4135.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.734415Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.734415Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 702929,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.743647Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.743647Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164935,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.745323Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.745323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1334325,\n        \"price\": 4062,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.827708Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.827708Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 351573,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 327436,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.841629Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.841629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1024495,\n        \"price\": 4074,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.861638Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.861638Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34597,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.891773Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.891773Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348629,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34597,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 64593,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672754,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.891773Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.891773Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.911150Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.911150Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348629,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34597,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 672754,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.911150Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.911150Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"20b191bd-5b3f-72a5-16df-b16646cced0b\",\n    \"localTimestamp\": 2019-04-01T00:00:51.921542Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.900Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 667754,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.921574Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.921574Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348629,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34597,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667754,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.921574Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.921574Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 977658,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.935138Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.935138Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:51.988272Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.988272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667754,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:51.988272Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:51.988272Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690117,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667854,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.004876Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.004876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 368490,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 135749,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 252305,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 164935,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 214459,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667754,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 224148,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 501982,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 303733,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 188902,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1101512,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:52.004876Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690117,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667854,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.004876Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.004876Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690017,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667754,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:52.004876Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 131207,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.007336Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.007336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 373032,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.022364Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.022364Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 667868,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.046366Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.046366Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690117,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.046366Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.046366Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 372981,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 690168,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.055304Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.055304Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690168,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.055304Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.055304Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690268,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667968,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.140038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.140038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690268,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667968,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.140038Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.140038Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690168,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417105,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435832,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:52.140038Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473652,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 214464,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.142147Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.142147Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 390921,\n        \"price\": 4122,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.148065Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.148065Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 228148,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.157524Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.157524Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435842,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.197451Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.197451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690268,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667968,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435842,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.197451Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.197451Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 295890,\n        \"price\": 4076.5,\n      },\n      {\n        \"amount\": 951878,\n        \"price\": 4075,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.219804Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.219804Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 690268,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667968,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435842,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:52.219804Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1826282,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.223181Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.223181Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674147,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.238793Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.238793Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674147,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 667968,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435842,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.238793Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.238793Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 178335,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.248476Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.248476Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 234464,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.255425Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.255425Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674247,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 668068,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.279242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.279242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674247,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 668068,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435842,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.279242Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.279242Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674651,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 668472,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.286673Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.286673Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674651,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 668472,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435842,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.286673Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.286673Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 436034,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.303866Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.303866Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674651,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 132619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 668472,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 436034,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.303866Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.303866Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674651,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 668472,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435842,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:52.303866Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 156619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692472,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.318850Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.318850Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674651,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 156619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692472,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 436034,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.318850Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.318850Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674671,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.321080Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.321080Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674671,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 156619,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 436034,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.321080Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.321080Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 81602,\n        \"price\": 4389,\n      },\n      {\n        \"amount\": 17751,\n        \"price\": 4204.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.365600Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.365600Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 158773,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.397623Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.397623Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674671,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 158773,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 436034,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.397623Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.397623Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 502133,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.405505Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.405505Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674671,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 436034,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:52.405505Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 813026,\n        \"price\": 4105,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.446485Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.446485Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1096979,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.449844Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.449844Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 632629,\n        \"price\": 4036.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.455220Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.455220Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 95894,\n        \"price\": 4059,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.462408Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.462408Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 473642,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 234474,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.465434Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.465434Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 308267,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.468067Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.468067Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 130909,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.492104Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.492104Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 202042,\n        \"price\": 4197,\n      },\n      {\n        \"amount\": 408682,\n        \"price\": 4195,\n      },\n      {\n        \"amount\": 99619,\n        \"price\": 4193,\n      },\n      {\n        \"amount\": 1831882,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 915772,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 183935,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 39191,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156998,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 142568,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 249232,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.494365Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.494365Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 674671,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 436034,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.494365Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.494365Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675360,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.500083Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.500083Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675360,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 436034,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.500083Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.500083Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 436750,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.529135Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.529135Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675360,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 436750,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.529135Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.529135Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 679358,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.612288Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.612288Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 679358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 436750,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.612288Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.612288Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 675360,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 436750,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:52.612288Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 213628,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.612321Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.612321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 438096,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.643189Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.643189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 679358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 438096,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.643189Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.643189Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 403743,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 599979,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.646426Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.646426Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 441319,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.650232Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.650232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 679358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417095,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 441319,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.650232Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.650232Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 443743,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 639979,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.652852Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.652852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 672040,\n        \"price\": 4099.5,\n      },\n      {\n        \"amount\": 483743,\n        \"price\": 4096.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 679979,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 367436,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.681258Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.681258Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.685087Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.685087Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 679358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 441319,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.685087Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.685087Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 699770,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.718669Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.718669Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 699770,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 441319,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.718669Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.718669Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 679358,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 441319,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:52.718669Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749702,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.720829Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.720829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749702,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 348645,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 211605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 441319,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.720829Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.720829Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.738097Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.738097Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749702,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 441319,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.738097Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.738097Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.739959Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.739959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749702,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 34580,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.739959Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.739959Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 366334,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 84998,\n        \"price\": 4112.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.754705Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.754705Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 230666,\n        \"price\": 4076.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.762201Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.762201Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 137268,\n        \"price\": 4110.5,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.768805Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.768805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749702,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.768805Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.768805Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184535,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.789828Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.789828Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 752120,\n        \"price\": 4125,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.791442Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.791442Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 373981,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.805627Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.805627Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 749702,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:52.805627Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 237249,\n        \"price\": 4100.5,\n      },\n      {\n        \"amount\": 2581493,\n        \"price\": 4100,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.812971Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.812971Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 364196,\n        \"price\": 3971,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.815433Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.815433Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 751340,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.834227Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.834227Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 751340,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 692492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.834227Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.834227Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 251305,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.863687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.863687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3071,\n    \"exchange\": \"bitmex\",\n    \"id\": \"2e530cff-c8b6-33b5-58e5-ca91b3ed11d2\",\n    \"localTimestamp\": 2019-04-01T00:00:52.882254Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.854Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:51.900Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4088.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:52.882254Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:51.033Z,\n    \"sellVolume\": 231119,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.000Z,\n    \"trades\": 32,\n    \"type\": \"trade_bar\",\n    \"volume\": 231119,\n    \"vwap\": 4088.5,\n  },\n  {\n    \"amount\": 221,\n    \"exchange\": \"bitmex\",\n    \"id\": \"ed78360b-59d9-a66f-0663-693192d10c93\",\n    \"localTimestamp\": 2019-04-01T00:00:52.882254Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.854Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 8708,\n    \"exchange\": \"bitmex\",\n    \"id\": \"d284cb2b-2f27-3679-2b3d-da2f33eaca84\",\n    \"localTimestamp\": 2019-04-01T00:00:52.882254Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.854Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 680492,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.882281Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.882281Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 751340,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 680492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.882281Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.882281Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 752506,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.882292Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.882292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 752506,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 680492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.882292Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.882292Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.924313Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.924313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 752506,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:52.924313Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.924313Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 752506,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 680492,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:52.924313Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1770165,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:52.961997Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:52.961997Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 769766,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.041609Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.041609Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 752506,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 373981,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 131207,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 251305,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 184535,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 234474,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 228148,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 502133,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 308267,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 188902,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1096979,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:53.041609Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 769766,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.041609Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.041609Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 752506,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442853,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:53.041609Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 442553,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.063687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.063687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 769766,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 164173,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442553,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.063687Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.063687Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 169080,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.066236Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.066236Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 769766,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 169080,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442553,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.066236Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.066236Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 773194,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.086059Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.086059Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 773194,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 169080,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442553,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.086059Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.086059Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 774964,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.089504Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.089504Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 774964,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 169080,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442553,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.089504Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.089504Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778703,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.092582Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.092582Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 169080,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 442553,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 435074,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.092582Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.092582Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 479723,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.095276Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.095276Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 169080,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 479723,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.095276Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.095276Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 470988,\n        \"price\": 4056,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.105786Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.105786Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 479723,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:53.105786Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 473723,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.127973Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.127973Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 169080,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473723,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.127973Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.127973Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 296588,\n        \"price\": 4131.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.255681Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.255681Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473723,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:53.255681Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 925238,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 597430,\n        \"price\": 4097.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.257326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.257326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 168876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.338749Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.338749Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 168876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689200,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473723,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.338749Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.338749Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.341680Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.341680Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 168876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473723,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.341680Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.341680Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 473733,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.401068Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.401068Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 35080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 168876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473733,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.401068Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.401068Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473723,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:53.401068Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.405826Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.405826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 778703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 168876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473733,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.405826Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.405826Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.409172Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.409172Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 168876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473733,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.409172Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.409172Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 11,\n    \"exchange\": \"bitmex\",\n    \"id\": \"16d794b5-db61-362f-83b1-9423d06556f2\",\n    \"localTimestamp\": 2019-04-01T00:00:53.430376Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.409Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:52.854Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4088.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:53.430376Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:52.854Z,\n    \"sellVolume\": 12000,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.000Z,\n    \"trades\": 3,\n    \"type\": \"trade_bar\",\n    \"volume\": 12000,\n    \"vwap\": 4088.5,\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 689393,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.430410Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.430410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 168876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379469,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473733,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.430410Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.430410Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 985845,\n        \"price\": 4128,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.430416Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.430416Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379318,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.443814Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.443814Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 168876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379318,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 473733,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.443814Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.443814Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 463733,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.446959Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.446959Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 168876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379318,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463733,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.446959Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.446959Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1285082,\n        \"price\": 4060,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.462001Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.462001Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 129636,\n        \"price\": 4067.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.493113Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.493113Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 399820,\n        \"price\": 4080.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.517861Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.517861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379318,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463733,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:53.517861Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 130845,\n        \"price\": 4074.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.524327Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.524327Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 155158,\n        \"price\": 4169,\n      },\n      {\n        \"amount\": 601959,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 214511,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 475443,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 406149,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 1831492,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1284392,\n        \"price\": 4060,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.543185Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.543185Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379350,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.580381Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.580381Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 168876,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379350,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463733,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.580381Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.580381Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 140105,\n        \"price\": 4077.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.587575Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.587575Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 343739,\n        \"price\": 3971,\n      },\n      {\n        \"amount\": 692448,\n        \"price\": 3965,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.697208Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.697208Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194605,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379350,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463733,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:53.697208Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 128711,\n        \"price\": 4053,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.742572Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.742572Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 300518,\n        \"price\": 4113.5,\n      },\n      {\n        \"amount\": 1897044,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 637393,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 636119,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 136148,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.758194Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.758194Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136148,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379350,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463733,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.758194Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.758194Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"de25f971-0fa8-cadf-16a9-24aa08090187\",\n    \"localTimestamp\": 2019-04-01T00:00:53.778304Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.755Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 688393,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.778330Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.778330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136148,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379350,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463733,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.778330Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.778330Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 644119,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.778334Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.778334Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 668119,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.782266Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.782266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.787656Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.787656Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136148,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379350,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.787656Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.787656Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1896844,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 915572,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 184335,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38991,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156798,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 142368,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 249032,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.797131Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.797131Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379350,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.797131Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.797131Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.813852Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.813852Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398376,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.813852Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.813852Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379350,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:53.813852Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 147982,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.827591Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.827591Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 27085,\n        \"price\": 4211.5,\n      },\n      {\n        \"amount\": 101617,\n        \"price\": 4191,\n      },\n      {\n        \"amount\": 182690,\n        \"price\": 4170.5,\n      },\n      {\n        \"amount\": 102983,\n        \"price\": 4150.5,\n      },\n      {\n        \"amount\": 1927144,\n        \"price\": 4130,\n      },\n      {\n        \"amount\": 1769730,\n        \"price\": 4110,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 600385,\n        \"price\": 4069.5,\n      },\n      {\n        \"amount\": 82305,\n        \"price\": 4049.5,\n      },\n      {\n        \"amount\": 2061360,\n        \"price\": 4030,\n      },\n      {\n        \"amount\": 422308,\n        \"price\": 4010.5,\n      },\n      {\n        \"amount\": 179727,\n        \"price\": 3991,\n      },\n      {\n        \"amount\": 89094,\n        \"price\": 3971.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.867780Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.867780Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.888897Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.888897Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 536413,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.911728Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.911728Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:53.911728Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:53.929382Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.929382Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:53.929382Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:53.929382Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 351280,\n        \"price\": 3971,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.012558Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.012558Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 373981,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 131207,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 251305,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 184335,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 234474,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688393,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 228148,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 502133,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 308267,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 188902,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1096979,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:54.012558Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 652037,\n        \"price\": 4027,\n      },\n      {\n        \"amount\": 501130,\n        \"price\": 4007.5,\n      },\n      {\n        \"amount\": 172934,\n        \"price\": 3997.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.014721Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.014721Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 264035,\n        \"price\": 4131,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.042999Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.042999Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 448,\n    \"exchange\": \"bitmex\",\n    \"id\": \"908e8718-921a-ab6a-c860-f9fdccf54c77\",\n    \"localTimestamp\": 2019-04-01T00:00:54.058293Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.033Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:53.755Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4088.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:54.058293Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:53.409Z,\n    \"sellVolume\": 1011,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.000Z,\n    \"trades\": 2,\n    \"type\": \"trade_bar\",\n    \"volume\": 1011,\n    \"vwap\": 4088.5,\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 687945,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.058321Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.058321Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 135948,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 687945,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.058321Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.058321Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2275749,\n        \"price\": 4020,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.074253Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.074253Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 234290,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 184151,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 251121,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 131023,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 373797,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502121,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 308255,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 188890,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1096967,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 197837,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.099444Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.099444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1896876,\n        \"price\": 4097,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.253373Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.253373Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 687945,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:54.253373Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 184336,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 251306,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 131208,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 373982,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 136133,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 308267,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 188902,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1096979,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 197849,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 213640,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.270488Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.270488Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 780703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136133,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 687945,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.270488Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.270488Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 5000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"67ec590b-f23f-1b24-8e68-7a05f09168f3\",\n    \"localTimestamp\": 2019-04-01T00:00:54.270491Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.250Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 682945,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.270494Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.270494Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136133,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 682945,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.270494Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.270494Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 472642,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 669119,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.270498Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.270498Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 234292,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.279444Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.279444Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 88670,\n        \"price\": 4313.5,\n      },\n      {\n        \"amount\": 157336,\n        \"price\": 4276.5,\n      },\n      {\n        \"amount\": 73754,\n        \"price\": 4239.5,\n      },\n      {\n        \"amount\": 88361,\n        \"price\": 4203,\n      },\n      {\n        \"amount\": 402841,\n        \"price\": 4166,\n      },\n      {\n        \"amount\": 1677164,\n        \"price\": 4129,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 285615,\n        \"price\": 4055.5,\n      },\n      {\n        \"amount\": 1262697,\n        \"price\": 4018.5,\n      },\n      {\n        \"amount\": 332373,\n        \"price\": 3982,\n      },\n      {\n        \"amount\": 507003,\n        \"price\": 3945,\n      },\n      {\n        \"amount\": 329104,\n        \"price\": 3908,\n      },\n      {\n        \"amount\": 94132,\n        \"price\": 3871.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.279451Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.279451Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1034500,\n        \"price\": 4188,\n      },\n      {\n        \"amount\": 535283,\n        \"price\": 4165.5,\n      },\n      {\n        \"amount\": 65588,\n        \"price\": 4143.5,\n      },\n      {\n        \"amount\": 461577,\n        \"price\": 4121.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 664030,\n        \"price\": 4046,\n      },\n      {\n        \"amount\": 598270,\n        \"price\": 4024.5,\n      },\n      {\n        \"amount\": 632753,\n        \"price\": 4002.5,\n      },\n      {\n        \"amount\": 561542,\n        \"price\": 3981,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.282326Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.282326Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 184818,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 193765,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 230804,\n        \"price\": 4082.5,\n      },\n      {\n        \"amount\": 224840,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 321404,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 432464,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 647339,\n        \"price\": 4080,\n      },\n      {\n        \"amount\": 347042,\n        \"price\": 4078,\n      },\n      {\n        \"amount\": 549319,\n        \"price\": 4076,\n      },\n      {\n        \"amount\": 1827115,\n        \"price\": 4010,\n      },\n      {\n        \"amount\": 565250,\n        \"price\": 4007.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.289761Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.289761Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 291998,\n        \"price\": 4131.5,\n      },\n      {\n        \"amount\": 135754,\n        \"price\": 4092,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.292348Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.292348Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3126,\n        \"price\": 3375.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.293935Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.293935Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.301355Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.301355Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136133,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.301355Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.301355Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 682945,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:54.301355Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 373816,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 136299,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.310200Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.310200Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136299,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.310200Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.310200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 369274,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.311774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.311774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 214140,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 230304,\n        \"price\": 4082.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.324119Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.324119Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 140840,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.327398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.327398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33080,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140840,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.327398Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.327398Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3125,\n        \"price\": 3375.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.357632Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.357632Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.360413Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.360413Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140840,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.360413Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.360413Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1285082,\n        \"price\": 4060,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.371668Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.371668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1844766,\n        \"price\": 4050,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.377977Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.377977Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 280906,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.403586Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.403586Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:54.403586Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 464642,\n        \"price\": 4094.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.461126Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.461126Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097479,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 193265,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.479116Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.479116Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 369149,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.483039Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.483039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227325,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.483039Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.483039Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.485917Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.485917Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.485917Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.485917Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 507687,\n        \"price\": 3975,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.485953Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.485953Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 135504,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 369399,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.489924Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.489924Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 308517,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 184568,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.489957Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.489957Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 1200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"287bf1ad-e27e-d075-7394-6fb4c9f8fcb3\",\n    \"localTimestamp\": 2019-04-01T00:00:54.510159Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.484Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 688204,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.510186Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.510186Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688204,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.510186Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.510186Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775703,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 689404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:54.510186Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775903,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688404,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.510191Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.510191Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775903,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.510191Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.510191Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 347030,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.512599Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.512599Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 214470,\n        \"price\": 4121,\n      },\n      {\n        \"amount\": 694418,\n        \"price\": 4119,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.558646Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.558646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 707475,\n        \"price\": 4055,\n      },\n      {\n        \"amount\": 219456,\n        \"price\": 4052.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.597417Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.597417Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775920,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.653370Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.653370Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775920,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.653370Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.653370Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775903,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:54.653370Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 164919,\n        \"price\": 4167,\n      },\n      {\n        \"amount\": 243457,\n        \"price\": 4137,\n      },\n      {\n        \"amount\": 694808,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 352969,\n        \"price\": 4107,\n      },\n      {\n        \"amount\": 978048,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 915962,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.692963Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.692963Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 280956,\n        \"price\": 4070.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.709718Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.709718Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775920,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227125,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 688404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:54.709718Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1417084,\n        \"price\": 4134,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.715307Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.715307Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 372899,\n        \"price\": 4141,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.751695Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.751695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1831324,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 734623,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.766826Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.766826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 303935,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 218722,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.772767Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.772767Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 303699,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 218958,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.796927Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.796927Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72,\n        \"price\": 2,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.802103Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.802103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 698404,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.822107Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.822107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775920,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 227125,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 698404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.822107Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.822107Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 758623,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.824398Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.824398Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.840766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.840766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775920,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 698404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.840766Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.840766Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232525,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 371166,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.891774Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.891774Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770790,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 697264,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.919927Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.919927Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 770790,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 697264,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.919927Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.919927Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 775920,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 698404,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:54.919927Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 159649,\n        \"price\": 4073,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.926156Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.926156Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 771006,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.928447Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.928447Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 771006,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 697264,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.928447Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.928447Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 3447,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f8b4a7b3-859a-40b0-44d9-97afb0a75b58\",\n    \"localTimestamp\": 2019-04-01T00:00:54.948211Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.922Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 693817,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.948240Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.948240Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 771006,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 693817,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.948240Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.948240Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776706,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.948243Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.948243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 693817,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.948243Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.948243Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 572392,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.948246Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.948246Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776706,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572392,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.948246Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.948246Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776865,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572551,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.959520Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.959520Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776865,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572551,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.959520Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.959520Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776890,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.962285Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.962285Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776890,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572551,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.962285Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.962285Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1831124,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 915762,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 184136,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38791,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156598,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 142168,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 248832,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:54.965963Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.965963Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776890,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572551,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:54.965963Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:54.965963Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 508457,\n        \"price\": 3975,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.016356Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.016356Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776890,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 371166,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 135504,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 251306,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 184136,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 232525,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572551,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 228148,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 502121,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 303699,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 184568,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1097479,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:55.016356Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776890,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572551,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:55.016356Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91350,\n        \"price\": 4240.5,\n      },\n      {\n        \"amount\": 94217,\n        \"price\": 4156.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.023060Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.023060Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 253306,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.025769Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.025769Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 854491,\n        \"price\": 4047,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.029316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.029316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776880,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.048629Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.048629Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776880,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572551,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.048629Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.048629Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 8177.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.058593Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.058593Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2082700,\n        \"price\": 4176,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.292514Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.292514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776880,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226966,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572551,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:55.292514Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 260606,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.297081Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.297081Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.303726Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.303726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776880,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572551,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 365751,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.303726Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.303726Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.313555Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.313555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776880,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572551,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.313555Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.313555Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 766623,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.313581Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.313581Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 370166,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.313585Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.313585Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 218996,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 321480,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 536527,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 367588,\n        \"price\": 4077,\n      },\n      {\n        \"amount\": 952068,\n        \"price\": 4075,\n      },\n      {\n        \"amount\": 166996,\n        \"price\": 4041.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.315782Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.315782Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 572510,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.326349Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.326349Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776880,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 572510,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.326349Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.326349Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 36430,\n        \"price\": 4394,\n      },\n      {\n        \"amount\": 129488,\n        \"price\": 4196,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.329737Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.329737Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 243412,\n        \"price\": 4137,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.350622Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.350622Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 562510,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.354243Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.354243Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776880,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 562510,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.354243Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.354243Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 562299,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.399013Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.399013Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776880,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 562299,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.399013Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.399013Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777112,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 562531,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.402266Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.402266Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777112,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 562531,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.402266Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.402266Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 776880,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 562299,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:55.402266Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 303499,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.495216Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.495216Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 41,\n    \"exchange\": \"bitmex\",\n    \"id\": \"fe9139f1-9328-f26a-0908-5585f50331bc\",\n    \"localTimestamp\": 2019-04-01T00:00:55.502495Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.306Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:54.922Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4088.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:55.502495Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:54.033Z,\n    \"sellVolume\": 10095,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.000Z,\n    \"trades\": 4,\n    \"type\": \"trade_bar\",\n    \"volume\": 10095,\n    \"vwap\": 4088.5,\n  },\n  {\n    \"amount\": 211,\n    \"exchange\": \"bitmex\",\n    \"id\": \"67847157-34c5-5885-9dfc-6b6239151bd9\",\n    \"localTimestamp\": 2019-04-01T00:00:55.502525Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.349Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 321492,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.511671Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.511671Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777112,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 562531,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:55.511671Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 562371,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.527982Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.527982Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777112,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 562371,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.527982Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.527982Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 502630,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.541254Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.541254Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777112,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502630,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.541254Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.541254Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 186999,\n        \"price\": 4143.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.573309Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.573309Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 408223,\n        \"price\": 4116,\n      },\n      {\n        \"amount\": 518580,\n        \"price\": 4106,\n      },\n      {\n        \"amount\": 977319,\n        \"price\": 4101,\n      },\n      {\n        \"amount\": 635935,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 552275,\n        \"price\": 4068,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.578226Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.578226Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 65588,\n        \"price\": 4143.5,\n      },\n      {\n        \"amount\": 898523,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.585949Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.585949Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 898523,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502630,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.585949Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.585949Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.603252Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.603252Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 898523,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502630,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.603252Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.603252Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 898523,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226734,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502630,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:55.603252Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 536877,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.638602Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.638602Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1091531,\n        \"price\": 4044,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.666128Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.666128Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 69,\n    \"exchange\": \"bitmex\",\n    \"id\": \"1a0c41d4-0325-d5b4-4366-18731a51da1a\",\n    \"localTimestamp\": 2019-04-01T00:00:55.691719Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.668Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 502561,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.691744Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.691744Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 898523,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502561,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.691744Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.691744Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 898623,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502661,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.702578Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.702578Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 898623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502661,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.702578Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.702578Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 898523,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502561,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:55.702578Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.738337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.738337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502661,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 379375,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 463688,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.738337Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.738337Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 189182,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 227162,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 220758,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 153897,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 305168,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 399820,\n        \"price\": 4080.5,\n      },\n      {\n        \"amount\": 569509,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.776291Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.776291Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417224,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.781251Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.781251Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502661,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417224,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.781251Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.781251Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 502453,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.787222Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.787222Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502453,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417224,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.787222Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.787222Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417384,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.831132Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.831132Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502453,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417384,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.831132Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.831132Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502453,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417224,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:55.831132Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 502427,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.865313Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.865313Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502427,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417384,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:55.865313Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.865313Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 26,\n    \"exchange\": \"bitmex\",\n    \"id\": \"5b96aad6-eee4-5f1d-abc7-0ff55066b803\",\n    \"localTimestamp\": 2019-04-01T00:00:55.865357Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.841Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 500,\n        \"price\": 6133,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.895617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.895617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 569520,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.951362Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.951362Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502427,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417384,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:55.951362Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157897,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 363588,\n        \"price\": 4077,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.982855Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.982855Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1300593,\n        \"price\": 4140,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.984341Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.984341Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157791,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:55.986062Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:55.986062Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 507427,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.003183Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.003183Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 370166,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 135504,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 260606,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 184136,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 232525,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 502427,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417384,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 228148,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 502121,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 303499,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 184568,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1097479,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:56.003183Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 507427,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417384,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355529,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:56.003183Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.003183Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.011731Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.011731Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 507427,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417384,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:56.011731Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.011731Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417592,\n        \"price\": 4088,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.066864Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.066864Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 507427,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417592,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:56.066864Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.066864Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232515,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 184146,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.134729Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.134729Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 507427,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417592,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426518,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:56.134729Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417587,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426523,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.138822Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.138822Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226634,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 507427,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417587,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426523,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398176,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:56.138822Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.138822Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 261233,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 636023,\n        \"price\": 4096,\n      },\n      {\n        \"amount\": 184234,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.176981Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.176981Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 507427,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417587,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426523,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:56.176981Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.176981Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"amount\": 1500,\n    \"exchange\": \"bitmex\",\n    \"id\": \"af6ede84-68a2-3e83-e64e-61ff7bb8d198\",\n    \"localTimestamp\": 2019-04-01T00:00:56.277245Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.208Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:55.841Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4088.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:56.277245Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:55.306Z,\n    \"sellVolume\": 347,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.000Z,\n    \"trades\": 4,\n    \"type\": \"trade_bar\",\n    \"volume\": 347,\n    \"vwap\": 4088.5,\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 505927,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.277279Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.277279Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 505927,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417587,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426523,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:56.277279Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.277279Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 507427,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 417587,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 426523,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:56.277279Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 635023,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.283926Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.283926Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.285792Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.285792Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 505927,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:56.285792Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.285792Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1830924,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 915562,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 184034,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 140565,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38591,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156398,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 141968,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 248632,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.295016Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.295016Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140565,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 505927,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:56.295016Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.295016Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 512421,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.296688Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.296688Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140565,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 512421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:56.296688Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.296688Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1056567,\n        \"price\": 4041,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.306148Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.306148Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 512421,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:56.306148Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 183534,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 261106,\n        \"price\": 4092.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.318860Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.318860Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 30,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.387018Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.387018Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 232510,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 183539,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.415775Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.415775Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 168546,\n        \"price\": 4078.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.515687Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.515687Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 221758,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.553134Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.553134Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 308925,\n        \"price\": 4113,\n      },\n      {\n        \"amount\": 406878,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 925967,\n        \"price\": 4098,\n      },\n      {\n        \"amount\": 184997,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 557235,\n        \"price\": 4068,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.601477Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.601477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 569531,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.601514Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.601514Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 227293,\n        \"price\": 4143,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.625259Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.625259Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 238148,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.690165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.690165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 138817,\n        \"price\": 3976.5,\n      },\n      {\n        \"amount\": 671991,\n        \"price\": 3965,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.714993Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.714993Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 185297,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.722830Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.722830Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 492121,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.768009Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.768009Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 701119,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 298006,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.807339Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.807339Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 220758,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.831272Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.831272Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 512461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.926685Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.926685Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140565,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 512461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:56.926685Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.926685Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 436473,\n        \"price\": 4038,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.945297Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.945297Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 226962,\n        \"price\": 4083,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:56.992242Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:56.992242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.019636Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.019636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33284,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140565,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 370166,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 135504,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 261106,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 185297,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 298006,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 512461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 238148,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 492121,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 303499,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 184568,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1097479,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:57.019636Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140565,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 512461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.019636Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.019636Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 512461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:57.019636Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 303514,\n        \"price\": 4085,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.022093Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.022093Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 478440,\n        \"price\": 4007.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.069045Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.069045Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 306699,\n        \"price\": 4095.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.101023Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.101023Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 73,\n        \"price\": 3,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 2,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.187316Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.187316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 186220,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.189796Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.189796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 15000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"b9a85ed2-9c67-7069-1737-9bb5a59d0de8\",\n    \"localTimestamp\": 2019-04-01T00:00:57.211572Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.184Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 0,\n    \"close\": 4088.5,\n    \"closeTimestamp\": 2019-04-01T00:00:56.208Z,\n    \"exchange\": \"bitmex\",\n    \"high\": 4088.5,\n    \"interval\": 1000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2019-04-01T00:00:57.211572Z,\n    \"low\": 4088.5,\n    \"name\": \"trade_bar_1000ms\",\n    \"open\": 4088.5,\n    \"openTimestamp\": 2019-04-01T00:00:56.208Z,\n    \"sellVolume\": 1500,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.000Z,\n    \"trades\": 1,\n    \"type\": \"trade_bar\",\n    \"volume\": 1500,\n    \"vwap\": 4088.5,\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 497461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.211608Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.211608Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140565,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 497461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.211608Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.211608Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.211617Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.211617Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140565,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 497461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.211617Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.211617Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 507461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.218875Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.218875Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140565,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 507461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.218875Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.218875Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1831124,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 915762,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 186420,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38791,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156598,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 142168,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 248832,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.224385Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.224385Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 507461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.224385Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.224385Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 508461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.228475Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.228475Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 508461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.228475Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.228475Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 523461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.230256Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.230256Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 523461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.230256Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.230256Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1929164,\n        \"price\": 4146,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.261829Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.261829Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 199182,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.272258Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.272258Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 54625,\n        \"price\": 4457,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 262940,\n        \"price\": 3885,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.306337Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.306337Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 523461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:57.306337Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 203265,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 216676,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 224817,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 215828,\n        \"price\": 4070.5,\n      },\n      {\n        \"amount\": 1822660,\n        \"price\": 4010,\n      },\n      {\n        \"amount\": 980940,\n        \"price\": 4008.5,\n      },\n      {\n        \"amount\": 429409,\n        \"price\": 4008,\n      },\n      {\n        \"amount\": 414320,\n        \"price\": 4007.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.309233Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.309233Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 3340,\n    \"exchange\": \"bitmex\",\n    \"id\": \"3f73f50c-ca4f-2d6c-c74a-c4b51ade690a\",\n    \"localTimestamp\": 2019-04-01T00:00:57.326259Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.300Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1660,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a9989abb-d027-0998-ee7a-84d54f89e728\",\n    \"localTimestamp\": 2019-04-01T00:00:57.326259Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.300Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 518461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.326283Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.326283Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140765,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 518461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.326283Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.326283Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1831324,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 915962,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 186620,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 38991,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156798,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 142368,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 249032,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.337979Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.337979Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 140965,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 518461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.337979Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.337979Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1831524,\n        \"price\": 4097,\n      },\n      {\n        \"amount\": 916162,\n        \"price\": 4095,\n      },\n      {\n        \"amount\": 186820,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 141165,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 39191,\n        \"price\": 3988.5,\n      },\n      {\n        \"amount\": 156998,\n        \"price\": 3986.5,\n      },\n      {\n        \"amount\": 142568,\n        \"price\": 3984.5,\n      },\n      {\n        \"amount\": 249232,\n        \"price\": 3982.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.355289Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.355289Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 141165,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 518461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.355289Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.355289Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 528461,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.466862Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.466862Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 141165,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 528461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.466862Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.466862Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 518461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:57.466862Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 157803,\n        \"price\": 4081.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.512695Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.512695Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 528461,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:57.512695Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 628847,\n        \"price\": 4035,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.612605Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.612605Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 6850,\n    \"exchange\": \"bitmex\",\n    \"id\": \"a2083c96-0704-27b7-8f2e-be63cba73f30\",\n    \"localTimestamp\": 2019-04-01T00:00:57.759740Z,\n    \"price\": 4088.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.734Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 521611,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.759778Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.759778Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 893623,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 141165,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 521611,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.759778Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.759778Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772212,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.759785Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.759785Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772212,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 141165,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 521611,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.759785Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.759785Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 530121,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.770330Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.770330Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772212,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 141165,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530121,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.770330Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.770330Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 378165,\n        \"price\": 4003.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.795560Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.795560Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 398446,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.874826Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.874826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772212,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398446,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 141165,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530121,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398494,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.874826Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.874826Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772212,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 365730,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 226810,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530121,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:57.874826Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 638000,\n        \"price\": 4149,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.905975Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.905975Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772212,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398446,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530121,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:57.905975Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:57.910374Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.910374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772212,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398446,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 141165,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530121,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:57.910374Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:57.910374Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.053985Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.053985Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772212,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398446,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 141165,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 370166,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 135504,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 261106,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 186820,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 298006,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530121,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 238148,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 492121,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 303514,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 184568,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1097479,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:58.053985Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772212,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 141165,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530121,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:58.053985Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.053985Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.103636Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.103636Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772212,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530121,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:58.103636Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.103636Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772212,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530121,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:58.103636Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.100Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 374708,\n        \"price\": 4091.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.128030Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.128030Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772312,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530221,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.150219Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.150219Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530221,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448940,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395264,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:58.150219Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.150219Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 92779,\n        \"price\": 4102.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.180992Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.180992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 448950,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395254,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.185225Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.185225Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530221,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448950,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395254,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:58.185225Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.185225Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.204412Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.204412Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530221,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:58.204412Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.204412Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530221,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448950,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395254,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:58.204412Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.200Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 7359.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.217165Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.217165Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 424617,\n        \"price\": 4032,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.225876Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.225876Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 239393,\n        \"price\": 4111,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.302726Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.302726Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 772312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530221,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:58.302726Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.300Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777312,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.341041Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.341041Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 530221,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:58.341041Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.341041Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 525221,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.341073Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.341073Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 525221,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:58.341073Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.341073Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 159649,\n        \"price\": 4073,\n      },\n      {\n        \"amount\": 256861,\n        \"price\": 4072,\n      },\n      {\n        \"amount\": 426764,\n        \"price\": 4010.5,\n      },\n      {\n        \"amount\": 1040623,\n        \"price\": 4008.5,\n      },\n      {\n        \"amount\": 365281,\n        \"price\": 4008,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.386320Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.386320Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 525621,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.412468Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.412468Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 525621,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:58.412468Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.412468Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 525221,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:58.412468Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 298016,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 186810,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.454654Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.454654Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 298021,\n        \"price\": 4093.5,\n      },\n      {\n        \"amount\": 186805,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.483038Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.483038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 644732,\n        \"price\": 4108,\n      },\n      {\n        \"amount\": 260971,\n        \"price\": 4102,\n      },\n      {\n        \"amount\": 774603,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 634499,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.502425Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.502425Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194090,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 525621,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:58.502425Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.500Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 569519,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.507143Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.507143Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 707020,\n        \"price\": 4055,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.509665Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.509665Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194055,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.519318Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.519318Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194055,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 525621,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:58.519318Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.519318Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1096979,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 203765,\n        \"price\": 4083.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.534840Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.534840Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 303264,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 184818,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.534869Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.534869Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1599341,\n        \"price\": 4152,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.543085Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.543085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 304968,\n        \"price\": 4081,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.618470Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.618470Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194055,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 525621,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:58.618470Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.600Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.636103Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.636103Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194055,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 525621,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:58.636103Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.636103Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 515621,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.638015Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.638015Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194055,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515621,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:58.638015Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.638015Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 347050,\n        \"price\": 4078,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.641352Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.641352Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 916512,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.660932Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.660932Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 248370,\n        \"price\": 4086,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.703553Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.703553Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777312,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194055,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515621,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:58.703553Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515656,\n        \"price\": 4088.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.800733Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.800733Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194055,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515656,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:58.800733Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.800733Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 492136,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.812039Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.812039Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 256916,\n        \"price\": 4029,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:58.873290Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.873290Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 298006,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.023274Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.023274Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194055,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n      {\n        \"amount\": 374708,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 135504,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 261106,\n        \"price\": 4092.5,\n      },\n      {\n        \"amount\": 186805,\n        \"price\": 4093,\n      },\n      {\n        \"amount\": 298021,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515656,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n      {\n        \"amount\": 248370,\n        \"price\": 4086,\n      },\n      {\n        \"amount\": 492136,\n        \"price\": 4085.5,\n      },\n      {\n        \"amount\": 303264,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 184818,\n        \"price\": 4084.5,\n      },\n      {\n        \"amount\": 1096979,\n        \"price\": 4084,\n      },\n    ],\n    \"depth\": 10,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-04-01T00:00:59.023274Z,\n    \"name\": \"book_snapshot_10_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194055,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515656,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 448955,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395249,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:59.023274Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:58.900Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 634399,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.091056Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.091056Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 914882,\n        \"price\": 4155,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.343588Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.343588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8327,\n        \"price\": 4397.5,\n      },\n      {\n        \"amount\": 4151098,\n        \"price\": 4200,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.361714Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.361714Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 449147,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395057,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.368068Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.368068Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194055,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515656,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 449147,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395057,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:59.368068Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.368068Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 78022,\n        \"price\": 4229,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.412652Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.412652Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194055,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515656,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 449147,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395057,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:59.412652Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.400Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1097979,\n        \"price\": 4084,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.416961Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.416961Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 216688,\n        \"price\": 4082,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.505377Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.505377Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 243312,\n        \"price\": 4137,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.537035Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.537035Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 194479,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 449359,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 303788,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 216950,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 569781,\n        \"price\": 4079,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.601576Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.601576Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194479,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 449359,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 395057,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:59.601576Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.601576Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 205725,\n        \"price\": 4062.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.605766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.605766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 305788,\n        \"price\": 4085,\n      },\n      {\n        \"amount\": 182818,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.605788Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.605788Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 450075,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 394341,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.643632Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.643632Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194479,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33299,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 450075,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 394341,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:59.643632Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.643632Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.661417Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.661417Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194479,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 450075,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 394341,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:59.661417Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.661417Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 72,\n        \"price\": 4,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 3,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.687757Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.687757Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 424639,\n        \"price\": 4026,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.695123Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.695123Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 453298,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 391118,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.699325Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.699325Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194479,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 453298,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 391118,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:59.699325Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.699325Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 454644,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 389772,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.701595Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.701595Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194479,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136624,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 454644,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 389772,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:59.701595Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.701595Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194479,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 453298,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 391118,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:59.701595Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.700Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 136724,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.708713Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.708713Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194479,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136724,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 454644,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 389772,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:59.708713Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.708713Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 456178,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 388238,\n        \"price\": 4087.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.781528Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.781528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194479,\n        \"price\": 4090,\n      },\n      {\n        \"amount\": 33095,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 136724,\n        \"price\": 4091,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 456178,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 388238,\n        \"price\": 4087.5,\n      },\n      {\n        \"amount\": 398539,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 355539,\n        \"price\": 4086.5,\n      },\n    ],\n    \"depth\": 5,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-04-01T00:00:59.781528Z,\n    \"name\": \"book_snapshot_5_0ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.781528Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 323295,\n        \"price\": 4189,\n      },\n      {\n        \"amount\": 149031,\n        \"price\": 4188.5,\n      },\n      {\n        \"amount\": 601859,\n        \"price\": 4139,\n      },\n      {\n        \"amount\": 75622,\n        \"price\": 4138.5,\n      },\n      {\n        \"amount\": 1677064,\n        \"price\": 4129,\n      },\n      {\n        \"amount\": 272526,\n        \"price\": 4128.5,\n      },\n      {\n        \"amount\": 694708,\n        \"price\": 4119,\n      },\n      {\n        \"amount\": 445371,\n        \"price\": 4118.5,\n      },\n      {\n        \"amount\": 475343,\n        \"price\": 4109,\n      },\n      {\n        \"amount\": 246327,\n        \"price\": 4108.5,\n      },\n      {\n        \"amount\": 774553,\n        \"price\": 4099,\n      },\n      {\n        \"amount\": 594807,\n        \"price\": 4098.5,\n      },\n      {\n        \"amount\": 701079,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 298041,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1097939,\n        \"price\": 4084,\n      },\n      {\n        \"amount\": 203805,\n        \"price\": 4083.5,\n      },\n      {\n        \"amount\": 569731,\n        \"price\": 4079,\n      },\n      {\n        \"amount\": 168596,\n        \"price\": 4078.5,\n      },\n      {\n        \"amount\": 243150,\n        \"price\": 4069,\n      },\n      {\n        \"amount\": 209460,\n        \"price\": 4068.5,\n      },\n      {\n        \"amount\": 95794,\n        \"price\": 4059,\n      },\n      {\n        \"amount\": 124466,\n        \"price\": 4058.5,\n      },\n      {\n        \"amount\": 315700,\n        \"price\": 4049,\n      },\n      {\n        \"amount\": 47688,\n        \"price\": 4048.5,\n      },\n      {\n        \"amount\": 541896,\n        \"price\": 4039,\n      },\n      {\n        \"amount\": 141814,\n        \"price\": 4038.5,\n      },\n      {\n        \"amount\": 280235,\n        \"price\": 3989,\n      },\n      {\n        \"amount\": 39691,\n        \"price\": 3988.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.870766Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.870766Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 777347,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 398346,\n        \"price\": 4089.5,\n      },\n      {\n        \"amount\": 194479,\n        \"price\": 4090,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 515868,\n        \"price\": 4088.5,\n      },\n      {\n        \"amount\": 456178,\n        \"price\": 4088,\n      },\n      {\n        \"amount\": 388238,\n        \"price\": 4087.5,\n      },\n    ],\n    \"depth\": 3,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 100,\n    \"localTimestamp\": 2019-04-01T00:00:59.870766Z,\n    \"name\": \"book_snapshot_3_100ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.800Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1149,\n        \"price\": 4416,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.883568Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.883568Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 218796,\n        \"price\": 4083,\n      },\n      {\n        \"amount\": 225114,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 422308,\n        \"price\": 4010.5,\n      },\n      {\n        \"amount\": 1045076,\n        \"price\": 4008.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.896843Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.896843Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 647459,\n        \"price\": 4080,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:59.908243Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:59.908243Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`compute(messages, types) should produce correct book snapshots based on provided messages 1`] = `\n[\n  {\n    \"amount\": 200,\n    \"exchange\": \"bitmex\",\n    \"id\": \"asd\",\n    \"localTimestamp\": 2019-08-01T00:00:00.132Z,\n    \"price\": 1000,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:00.132Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20,\n        \"price\": 200,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 120,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 20,\n        \"price\": 119,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-08-01T00:00:00.132Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:00.132Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 120,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 200,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 20,\n        \"price\": 119,\n      },\n      {\n        \"amount\": undefined,\n        \"price\": undefined,\n      },\n    ],\n    \"depth\": 2,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-08-01T00:00:00.132Z,\n    \"name\": \"book_snapshot_2_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:00.132Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 120,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 20,\n        \"price\": 119,\n      },\n    ],\n    \"depth\": 1,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-08-01T00:00:00.132Z,\n    \"name\": \"quotes\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:00.132Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10,\n        \"price\": 120,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-08-01T00:00:10.132Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:10.132Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10,\n        \"price\": 120,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 20,\n        \"price\": 119,\n      },\n    ],\n    \"depth\": 1,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-08-01T00:00:10.132Z,\n    \"name\": \"quotes\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:10.132Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10,\n        \"price\": 201,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-08-01T00:00:12.132Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:12.132Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10,\n        \"price\": 120,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 200,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 20,\n        \"price\": 119,\n      },\n      {\n        \"amount\": undefined,\n        \"price\": undefined,\n      },\n    ],\n    \"depth\": 2,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-08-01T00:00:12.132Z,\n    \"name\": \"book_snapshot_2_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:11.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 220,\n        \"price\": 200,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-08-01T00:00:12.132Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:12.132Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20,\n        \"price\": 120,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-08-01T00:00:13.132Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:13.132Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10,\n        \"price\": 120,\n      },\n      {\n        \"amount\": 220,\n        \"price\": 200,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 20,\n        \"price\": 119,\n      },\n      {\n        \"amount\": undefined,\n        \"price\": undefined,\n      },\n    ],\n    \"depth\": 2,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 1000,\n    \"localTimestamp\": 2019-08-01T00:00:13.132Z,\n    \"name\": \"book_snapshot_2_1000ms\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:13.000Z,\n    \"type\": \"book_snapshot\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 10,\n        \"price\": 120,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 20,\n        \"price\": 120,\n      },\n    ],\n    \"depth\": 1,\n    \"exchange\": \"bitmex\",\n    \"grouping\": undefined,\n    \"interval\": 0,\n    \"localTimestamp\": 2019-08-01T00:00:13.132Z,\n    \"name\": \"quotes\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-08-01T00:00:13.132Z,\n    \"type\": \"book_snapshot\",\n  },\n]\n`;\n\nexports[`compute(messages, types) should produce correct trade bars based on provided messages 1`] = `\n[\n  {\n    \"amount\": 1273,\n    \"exchange\": \"dydx\",\n    \"id\": undefined,\n    \"localTimestamp\": 2024-06-23T03:06:00.158Z,\n    \"price\": 0.3394,\n    \"side\": \"buy\",\n    \"symbol\": \"CRV-USD\",\n    \"timestamp\": 2024-06-23T03:05:59.988Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 65,\n    \"exchange\": \"dydx\",\n    \"id\": undefined,\n    \"localTimestamp\": 2024-06-23T03:06:00.173Z,\n    \"price\": 0.3387,\n    \"side\": \"buy\",\n    \"symbol\": \"CRV-USD\",\n    \"timestamp\": 2024-06-23T03:05:59.981Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 65,\n    \"exchange\": \"dydx\",\n    \"id\": undefined,\n    \"localTimestamp\": 2024-06-23T03:06:02.173Z,\n    \"price\": 0.3387,\n    \"side\": \"buy\",\n    \"symbol\": \"CRV-USD\",\n    \"timestamp\": 2024-06-23T03:06:01.981Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"buyVolume\": 1338,\n    \"close\": 0.3394,\n    \"closeTimestamp\": 2024-06-23T03:05:59.988Z,\n    \"exchange\": \"dydx\",\n    \"high\": 0.3394,\n    \"interval\": 60000,\n    \"kind\": \"time\",\n    \"localTimestamp\": 2024-06-23T03:06:02.173Z,\n    \"low\": 0.3387,\n    \"name\": \"trade_bar_1_minute\",\n    \"open\": 0.3394,\n    \"openTimestamp\": 2024-06-23T03:05:59.988Z,\n    \"sellVolume\": 0,\n    \"symbol\": \"CRV-USD\",\n    \"timestamp\": 2024-06-23T03:06:00.000Z,\n    \"trades\": 2,\n    \"type\": \"trade_bar\",\n    \"volume\": 1338,\n    \"vwap\": 0.3393659940209267,\n  },\n]\n`;\n"
  },
  {
    "path": "test/__snapshots__/mappers.test.ts.snap",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`map binance-european-options messages 1`] = `\n[\n  {\n    \"amount\": 0.01,\n    \"exchange\": \"binance-european-options\",\n    \"id\": \"15\",\n    \"localTimestamp\": 2023-10-01T00:00:00.081Z,\n    \"price\": 2.64,\n    \"side\": \"sell\",\n    \"symbol\": \"DOGE-231006-0.06-C\",\n    \"timestamp\": 2023-10-01T00:00:08.134Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map binance-european-options messages 2`] = `\n[\n  {\n    \"amount\": 0.1,\n    \"exchange\": \"binance-european-options\",\n    \"id\": \"144\",\n    \"localTimestamp\": 2023-10-01T00:00:00.081Z,\n    \"price\": 5,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-231001-27500-C\",\n    \"timestamp\": 2023-10-01T00:00:25.333Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map binance-european-options messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 8.28,\n        \"price\": 65,\n      },\n      {\n        \"amount\": 38.88,\n        \"price\": 70,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 7.31,\n        \"price\": 60,\n      },\n    ],\n    \"exchange\": \"binance-european-options\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2023-10-01T00:00:00.081Z,\n    \"symbol\": \"BTC-231027-34000-C\",\n    \"timestamp\": 2023-10-01T00:00:00.038Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map binance-european-options messages 4`] = `[]`;\n\nexports[`map binance-european-options messages 5`] = `[]`;\n\nexports[`map binance-european-options messages 6`] = `\n[\n  {\n    \"bestAskAmount\": 5.8,\n    \"bestAskIV\": 0.47609568,\n    \"bestAskPrice\": 3950,\n    \"bestBidAmount\": 2.55,\n    \"bestBidIV\": 0.3804034,\n    \"bestBidPrice\": 3000,\n    \"delta\": -0.34807987,\n    \"exchange\": \"binance-european-options\",\n    \"expirationDate\": 2024-09-27T08:00:00.000Z,\n    \"gamma\": 0.00003213,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2023-10-01T00:00:00.081Z,\n    \"markIV\": undefined,\n    \"markPrice\": 3475,\n    \"openInterest\": undefined,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 25000,\n    \"symbol\": \"BTC-240927-25000-P\",\n    \"theta\": -5.86856986,\n    \"timestamp\": 2023-10-01T00:00:00.043Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"BTCUSDT\",\n    \"underlyingPrice\": 26963.13461538,\n    \"vega\": 99.30558193,\n  },\n]\n`;\n\nexports[`map binance-european-options messages 7`] = `[]`;\n\nexports[`map binance-european-options messages 8`] = `[]`;\n\nexports[`map binance-european-options messages 9`] = `[]`;\n\nexports[`map binance-european-options messages 10`] = `\n[\n  {\n    \"bestAskAmount\": 5.8,\n    \"bestAskIV\": 0.47601342,\n    \"bestAskPrice\": 3950,\n    \"bestBidAmount\": 2.55,\n    \"bestBidIV\": 0.38032115,\n    \"bestBidPrice\": 3000,\n    \"delta\": -0.3481579,\n    \"exchange\": \"binance-european-options\",\n    \"expirationDate\": 2024-09-27T08:00:00.000Z,\n    \"gamma\": 0.00003214,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2023-10-01T00:00:00.081Z,\n    \"markIV\": undefined,\n    \"markPrice\": 3475,\n    \"openInterest\": 7,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 25000,\n    \"symbol\": \"BTC-240927-25000-P\",\n    \"theta\": -5.86741979,\n    \"timestamp\": 2023-10-01T00:00:48.036Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"BTCUSDT\",\n    \"underlyingPrice\": 26960.90703297,\n    \"vega\": 99.30504228,\n  },\n]\n`;\n\nexports[`map binance-european-options messages v2 1`] = `\n[\n  {\n    \"amount\": 1.54,\n    \"exchange\": \"binance-european-options\",\n    \"id\": \"200\",\n    \"localTimestamp\": 2025-12-17T00:00:00.081Z,\n    \"price\": 1420,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-251219-89000-C\",\n    \"timestamp\": 2025-12-17T14:57:00.778Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map binance-european-options messages v2 2`] = `\n[\n  {\n    \"amount\": 3.9,\n    \"exchange\": \"binance-european-options\",\n    \"id\": \"18\",\n    \"localTimestamp\": 2025-12-17T00:00:00.081Z,\n    \"price\": 600,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-251218-89000-P\",\n    \"timestamp\": 2025-12-17T14:57:02.509Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map binance-european-options messages v2 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 70,\n        \"price\": 18.8,\n      },\n      {\n        \"amount\": 240.88,\n        \"price\": 20.6,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 150.23,\n        \"price\": 16.6,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 16.4,\n      },\n    ],\n    \"exchange\": \"binance-european-options\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2025-12-17T00:00:00.081Z,\n    \"symbol\": \"ETH-251219-3100-C\",\n    \"timestamp\": 2025-12-17T14:56:59.928Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map binance-european-options messages v2 4`] = `\n[\n  {\n    \"askAmount\": 96.37,\n    \"askPrice\": 6.4,\n    \"bidAmount\": 38.47,\n    \"bidPrice\": 5.8,\n    \"exchange\": \"binance-european-options\",\n    \"localTimestamp\": 2025-12-17T00:00:00.081Z,\n    \"symbol\": \"ETH-251218-3100-C\",\n    \"timestamp\": 2025-12-17T14:56:59.927Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map binance-european-options messages v2 5`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": undefined,\n    \"bestAskPrice\": undefined,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": undefined,\n    \"bestBidPrice\": undefined,\n    \"delta\": -0.56213899,\n    \"exchange\": \"binance-european-options\",\n    \"expirationDate\": 2025-12-19T08:00:00.000Z,\n    \"gamma\": 1.12832706,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2025-12-17T00:00:00.081Z,\n    \"markIV\": 2.6,\n    \"markPrice\": 19.0314,\n    \"openInterest\": undefined,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 2.05,\n    \"symbol\": \"XRP-251219-2.05-P\",\n    \"theta\": -0.04023754,\n    \"timestamp\": 2025-12-17T14:57:00.260Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"XRPUSDT\",\n    \"underlyingPrice\": 1.96239445,\n    \"vega\": 0.00052941,\n  },\n]\n`;\n\nexports[`map binance-european-options messages v2 6`] = `[]`;\n\nexports[`map binance-european-options messages v2 7`] = `[]`;\n\nexports[`map binance-european-options messages v2 8`] = `\n[\n  {\n    \"bestAskAmount\": 3.5,\n    \"bestAskIV\": 0.88,\n    \"bestAskPrice\": 1460,\n    \"bestBidAmount\": 5,\n    \"bestBidIV\": 0.85,\n    \"bestBidPrice\": 1440,\n    \"delta\": 0.75,\n    \"exchange\": \"binance-european-options\",\n    \"expirationDate\": 2025-12-19T08:00:00.000Z,\n    \"gamma\": 0.002,\n    \"lastPrice\": 1420,\n    \"localTimestamp\": 2025-12-17T00:00:00.081Z,\n    \"markIV\": 0.86,\n    \"markPrice\": 1450.5,\n    \"openInterest\": 123.45,\n    \"optionType\": \"call\",\n    \"rho\": undefined,\n    \"strikePrice\": 89000,\n    \"symbol\": \"BTC-251219-89000-C\",\n    \"theta\": -0.05,\n    \"timestamp\": 2025-12-17T14:57:01.000Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"BTCUSDT\",\n    \"underlyingPrice\": 104334.60217391,\n    \"vega\": 0.15,\n  },\n]\n`;\n\nexports[`map bitget messages 1`] = `\n[\n  {\n    \"amount\": 0.001373,\n    \"exchange\": \"bitget\",\n    \"id\": \"1235671058980749319\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"price\": 72389.99,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2024-10-31T00:00:58.796Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map bitget messages 2`] = `[]`;\n\nexports[`map bitget messages 3`] = `[]`;\n\nexports[`map bitget messages 4`] = `\n[\n  {\n    \"amount\": 22.75,\n    \"exchange\": \"bitget\",\n    \"id\": \"1235671063632220170\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"price\": 4.987,\n    \"side\": \"sell\",\n    \"symbol\": \"RENDERUSDT\",\n    \"timestamp\": 2024-10-31T00:00:59.905Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map bitget messages 5`] = `[]`;\n\nexports[`map bitget messages 6`] = `[]`;\n\nexports[`map bitget messages 7`] = `[]`;\n\nexports[`map bitget messages 8`] = `\n[\n  {\n    \"askAmount\": 0.00408,\n    \"askPrice\": 72377.25,\n    \"bidAmount\": 1.1646,\n    \"bidPrice\": 72354.67,\n    \"exchange\": \"bitget\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"BTCUSDC\",\n    \"timestamp\": 2024-10-31T00:00:59.984Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map bitget messages 9`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 7.03,\n        \"price\": 0.7146,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 20.98,\n        \"price\": 0.7139,\n      },\n    ],\n    \"exchange\": \"bitget\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"MANTAUSDT\",\n    \"timestamp\": 2024-11-07T07:15:59.993Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map bitget-futures messages 1`] = `[]`;\n\nexports[`map bitget-futures messages 2`] = `[]`;\n\nexports[`map bitget-futures messages 3`] = `\n[\n  {\n    \"amount\": 447,\n    \"exchange\": \"bitget-futures\",\n    \"id\": \"1235671063871070209\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"price\": 0.168385,\n    \"side\": \"buy\",\n    \"symbol\": \"DOGEUSD\",\n    \"timestamp\": 2024-10-31T00:00:59.962Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map bitget-futures messages 4`] = `[]`;\n\nexports[`map bitget-futures messages 5`] = `[]`;\n\nexports[`map bitget-futures messages 6`] = `\n[\n  {\n    \"askAmount\": 10230,\n    \"askPrice\": 0.3555,\n    \"bidAmount\": 112096,\n    \"bidPrice\": 0.3553,\n    \"exchange\": \"bitget-futures\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"ADAUSDT\",\n    \"timestamp\": 2024-10-31T00:00:59.988Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map bitget-futures messages 7`] = `[]`;\n\nexports[`map bitget-futures messages 8`] = `\n[\n  {\n    \"exchange\": \"bitget-futures\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": 2024-10-31T08:00:00.000Z,\n    \"indexPrice\": 0.47080586,\n    \"lastPrice\": 0.4706,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"markPrice\": 0.4705,\n    \"openInterest\": 8572031.1,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"STORJUSDT\",\n    \"timestamp\": 2024-10-31T00:00:23.155Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map bitget-futures messages 9`] = `\n[\n  {\n    \"exchange\": \"bitget-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 72327.926666,\n    \"lastPrice\": 73733.7,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"markPrice\": 73731.8,\n    \"openInterest\": 57.714,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSDZ24\",\n    \"timestamp\": 2024-10-31T00:00:23.217Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map bitget-futures messages 10`] = `\n[\n  {\n    \"askAmount\": 4.58,\n    \"askPrice\": 1.4138,\n    \"bidAmount\": undefined,\n    \"bidPrice\": undefined,\n    \"exchange\": \"bitget-futures\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"AQTUSDT\",\n    \"timestamp\": 2024-11-06T02:32:10.169Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map bitget-futures messages 11`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 641.4443,\n        \"price\": 0.47256,\n      },\n      {\n        \"amount\": 3074.3765,\n        \"price\": 0.47257,\n      },\n      {\n        \"amount\": 2677.56,\n        \"price\": 0.47377,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 18.7835,\n        \"price\": 0.47242,\n      },\n    ],\n    \"exchange\": \"bitget-futures\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"YGGUSDT\",\n    \"timestamp\": 2024-11-07T07:15:59.972Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map bitnomial messages 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 19010,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 19038,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 5,\n        \"price\": 18835,\n      },\n    ],\n    \"exchange\": \"bitnomial\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"symbol\": \"BUSH23\",\n    \"timestamp\": 2023-01-12T20:03:06.479197Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map bitnomial messages 2`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 18861,\n      },\n    ],\n    \"exchange\": \"bitnomial\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"symbol\": \"BUIH23\",\n    \"timestamp\": 2023-01-12T20:03:10.190357Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map bitnomial messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 5,\n        \"price\": 19045,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitnomial\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"symbol\": \"BUSH23\",\n    \"timestamp\": 2023-01-12T20:03:10.653716Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map bitnomial messages 4`] = `\n[\n  {\n    \"amount\": 10,\n    \"exchange\": \"bitnomial\",\n    \"id\": \"7148460953766461527\",\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"price\": 19000,\n    \"side\": \"buy\",\n    \"symbol\": \"BUSZ2\",\n    \"timestamp\": 2022-09-28T16:06:39.022836Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map bybit spot messages 1`] = `[]`;\n\nexports[`map bybit spot messages 2`] = `[]`;\n\nexports[`map bybit spot messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 555.8,\n        \"price\": 0.00002951,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 25862.5,\n        \"price\": 0.00002949,\n      },\n    ],\n    \"exchange\": \"bybit-spot\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"symbol\": \"BITBTC\",\n    \"timestamp\": 2022-07-31T23:59:59.986Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map bybit spot messages 4`] = `\n[\n  {\n    \"amount\": 1.4,\n    \"exchange\": \"bybit-spot\",\n    \"id\": \"2280000000007453966\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 1678.54,\n    \"side\": \"buy\",\n    \"symbol\": \"ETHUSDT\",\n    \"timestamp\": 2022-08-01T00:00:00.103Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map bybit spot messages 5`] = `\n[\n  {\n    \"askAmount\": 0.001651,\n    \"askPrice\": 23293.37,\n    \"bidAmount\": 0.052479,\n    \"bidPrice\": 23293.19,\n    \"exchange\": \"bybit-spot\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2022-08-01T00:00:00.113Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map bybit spot messages 6`] = `\n[\n  {\n    \"amount\": 0.041732,\n    \"exchange\": \"bybit-spot\",\n    \"id\": \"2290000000050703789\",\n    \"localTimestamp\": 2023-04-05T00:00:59.464Z,\n    \"price\": 28165.38,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2023-04-05T00:00:47.524Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.008513,\n    \"exchange\": \"bybit-spot\",\n    \"id\": \"2290000000050703790\",\n    \"localTimestamp\": 2023-04-05T00:00:59.464Z,\n    \"price\": 28165.38,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2023-04-05T00:00:47.524Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.042384,\n    \"exchange\": \"bybit-spot\",\n    \"id\": \"2290000000050703791\",\n    \"localTimestamp\": 2023-04-05T00:00:59.464Z,\n    \"price\": 28165.38,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2023-04-05T00:00:47.524Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.055371,\n    \"exchange\": \"bybit-spot\",\n    \"id\": \"2290000000050703792\",\n    \"localTimestamp\": 2023-04-05T00:00:59.464Z,\n    \"price\": 28165.38,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2023-04-05T00:00:47.524Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map bybit spot messages 7`] = `\n[\n  {\n    \"amount\": 0.00433,\n    \"exchange\": \"bybit-spot\",\n    \"id\": \"2240000000041223438\",\n    \"localTimestamp\": 2023-04-05T00:00:59.464Z,\n    \"price\": 28528.98,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSDC\",\n    \"timestamp\": 2023-04-05T10:02:59.998Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map bybit spot messages 8`] = `\n[\n  {\n    \"askAmount\": 0.996816,\n    \"askPrice\": 28165.08,\n    \"bidAmount\": 0.175231,\n    \"bidPrice\": 28165.07,\n    \"exchange\": \"bybit-spot\",\n    \"localTimestamp\": 2023-04-05T00:00:59.464Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2023-04-05T00:00:06.504Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map bybit spot messages 9`] = `\n[\n  {\n    \"askAmount\": 0.996816,\n    \"askPrice\": 28165.08,\n    \"bidAmount\": 0.166754,\n    \"bidPrice\": 28165.07,\n    \"exchange\": \"bybit-spot\",\n    \"localTimestamp\": 2023-04-05T00:00:59.464Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2023-04-05T00:00:06.615Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map bybit spot messages 10`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.506829,\n        \"price\": 28162.58,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.07562,\n        \"price\": 28162.57,\n      },\n    ],\n    \"exchange\": \"bybit-spot\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2023-04-05T00:00:59.464Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2023-04-05T00:00:08.065Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map bybit spot messages 11`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 28184.33,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.177474,\n        \"price\": 28161.04,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 28145.71,\n      },\n    ],\n    \"exchange\": \"bybit-spot\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2023-04-05T00:00:59.464Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2023-04-05T00:00:08.085Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map coinbase-international messages 1`] = `\n[\n  {\n    \"amount\": 3.584,\n    \"exchange\": \"coinbase-international\",\n    \"id\": \"374491378496831495\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"price\": 177.202,\n    \"side\": \"buy\",\n    \"symbol\": \"SOL-PERP\",\n    \"timestamp\": 2024-10-30T10:55:02.347Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map coinbase-international messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 2969.1,\n        \"price\": 6.66,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 58.5,\n        \"price\": 4.802,\n      },\n    ],\n    \"exchange\": \"coinbase-international\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"TON-PERP\",\n    \"timestamp\": 2024-11-07T00:00:00.015Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map coinbase-international messages 3`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 15468,\n        \"price\": 0.3444,\n      },\n    ],\n    \"exchange\": \"coinbase-international\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"CATI-PERP\",\n    \"timestamp\": 2024-11-07T00:00:59.974Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map coinbase-international messages 4`] = `\n[\n  {\n    \"askAmount\": 6000,\n    \"askPrice\": 0.19724,\n    \"bidAmount\": 5116,\n    \"bidPrice\": 0.19717,\n    \"exchange\": \"coinbase-international\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"DOGE-PERP\",\n    \"timestamp\": 2024-11-07T00:00:59.965Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map coinbase-international messages 5`] = `\n[\n  {\n    \"exchange\": \"coinbase-international\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 3.925562264285714,\n    \"lastPrice\": 177.202,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"markPrice\": 3.927,\n    \"openInterest\": 76677.9,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"SOL-PERP\",\n    \"timestamp\": 2024-11-06T01:59:59.155Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map coinbase-international messages 6`] = `\n[\n  {\n    \"exchange\": \"coinbase-international\",\n    \"fundingRate\": 0.000005,\n    \"fundingTimestamp\": 2024-11-06T02:00:00.000Z,\n    \"indexPrice\": 3.925562264285714,\n    \"lastPrice\": 177.202,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"markPrice\": 3.927,\n    \"openInterest\": 76677.9,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"SOL-PERP\",\n    \"timestamp\": 2024-11-06T01:59:59.155Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map coinbase-international messages 7`] = `\n[\n  {\n    \"exchange\": \"coinbase-international\",\n    \"fundingRate\": -0.000017,\n    \"fundingTimestamp\": 2024-11-06T02:00:00.000Z,\n    \"indexPrice\": 3.925562264285714,\n    \"lastPrice\": 177.202,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"markPrice\": 3.927,\n    \"openInterest\": 76677.9,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"SOL-PERP\",\n    \"timestamp\": 2024-11-06T02:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map coinbase-international messages 8`] = `\n[\n  {\n    \"exchange\": \"coinbase-international\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 1.03709828725,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"markPrice\": 1.0344,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"APE-PERP\",\n    \"timestamp\": 2024-10-31T09:36:02.342Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map crypto-com messages 1`] = `[]`;\n\nexports[`map crypto-com messages 2`] = `\n[\n  {\n    \"amount\": 0.1,\n    \"exchange\": \"crypto-com\",\n    \"id\": \"2552833531650627600\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 0.00737,\n    \"side\": \"buy\",\n    \"symbol\": \"RSR_USDT\",\n    \"timestamp\": 2022-05-30T13:26:07.912Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 6.9,\n    \"exchange\": \"crypto-com\",\n    \"id\": \"2552833547970376700\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 0.00737,\n    \"side\": \"buy\",\n    \"symbol\": \"RSR_USDT\",\n    \"timestamp\": 2022-05-30T13:26:08.398Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map crypto-com messages 3`] = `\n[\n  {\n    \"amount\": 0.04,\n    \"exchange\": \"crypto-com\",\n    \"id\": \"2733854056108316700\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 0.4272,\n    \"side\": \"sell\",\n    \"symbol\": \"GODS_USDT\",\n    \"timestamp\": 2022-07-31T23:59:59.941Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map crypto-com messages 4`] = `\n[\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": 7905.8,\n    \"bidAmount\": undefined,\n    \"bidPrice\": 7892.58,\n    \"exchange\": \"crypto-com\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"symbol\": \"YFI_USDT\",\n    \"timestamp\": 2022-05-30T13:26:45.936Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map crypto-com messages 5`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 9.8577,\n        \"price\": 97.685,\n      },\n      {\n        \"amount\": 0.005,\n        \"price\": 302.01,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 7.5202,\n        \"price\": 97.44,\n      },\n    ],\n    \"exchange\": \"crypto-com\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"symbol\": \"AAVE_USDT\",\n    \"timestamp\": 2022-07-31T23:59:59.918Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map crypto-com messages 6`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 696.434,\n        \"price\": 8.6427,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4.694,\n        \"price\": 8.6143,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8.6135,\n      },\n    ],\n    \"exchange\": \"crypto-com\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"symbol\": \"DOT_USDT\",\n    \"timestamp\": 2022-08-01T00:00:00.046Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map crypto-com messages 7`] = `\n[\n  {\n    \"amount\": 0.04,\n    \"exchange\": \"crypto-com\",\n    \"id\": \"2733854073183727600\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 23297.35,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2022-08-01T00:00:00.449Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.04,\n    \"exchange\": \"crypto-com\",\n    \"id\": \"2733854074175694000\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 23297.35,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2022-08-01T00:00:00.479Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.04,\n    \"exchange\": \"crypto-com\",\n    \"id\": \"2733854074994198500\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 23297.35,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2022-08-01T00:00:00.503Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map crypto-com messages 8`] = `\n[\n  {\n    \"exchange\": \"crypto-com\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 4.6121,\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 55851,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"APEUSD-PERP\",\n    \"timestamp\": 2022-11-01T16:31:43.754Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 131,\n    \"askPrice\": 4.6148,\n    \"bidAmount\": 25,\n    \"bidPrice\": 4.6121,\n    \"exchange\": \"crypto-com\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"symbol\": \"APEUSD-PERP\",\n    \"timestamp\": 2022-11-01T16:31:43.754Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map crypto-com messages 9`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1312,\n        \"price\": 0.136338,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 0.116116,\n      },\n    ],\n    \"exchange\": \"crypto-com\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"symbol\": \"DOGE_USDT\",\n    \"timestamp\": 2022-11-01T16:31:43.772Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map crypto-com messages 10`] = `\n[\n  {\n    \"amount\": 0.01163,\n    \"exchange\": \"crypto-com\",\n    \"id\": \"4611686018428108636\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 20432.51,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2022-11-01T16:31:54.770Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map crypto-com messages 11`] = `\n[\n  {\n    \"amount\": 0.0244,\n    \"exchange\": \"crypto-com\",\n    \"id\": \"4611686018471467093\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 20439.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSD-PERP\",\n    \"timestamp\": 2022-11-01T16:31:16.193Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.005,\n    \"exchange\": \"crypto-com\",\n    \"id\": \"4611686018471467093\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 20439.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSD-PERP\",\n    \"timestamp\": 2022-11-01T16:31:16.193Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.1,\n    \"exchange\": \"crypto-com\",\n    \"id\": \"4611686018471467093\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 20439.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSD-PERP\",\n    \"timestamp\": 2022-11-01T16:31:16.193Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.005,\n    \"exchange\": \"crypto-com\",\n    \"id\": \"4611686018471467093\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 20439.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSD-PERP\",\n    \"timestamp\": 2022-11-01T16:31:16.193Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map dydx-v4 messages 1`] = `\n[\n  {\n    \"amount\": 79.2,\n    \"exchange\": \"dydx-v4\",\n    \"id\": \"0165e5e30000000200000002\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"price\": 25.22,\n    \"side\": \"buy\",\n    \"symbol\": \"AVAX-USD\",\n    \"timestamp\": 2024-08-22T23:59:58.855Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map dydx-v4 messages 2`] = `\n[\n  {\n    \"amount\": 0.002,\n    \"exchange\": \"dydx-v4\",\n    \"id\": \"0165e5e40000000200000002\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"price\": 60397,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2024-08-22T23:59:59.851Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3.9,\n    \"exchange\": \"dydx-v4\",\n    \"id\": \"014f495a0000000200000005\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"price\": 22.87,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2024-08-04T07:34:50.628Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3.9,\n    \"exchange\": \"dydx-v4\",\n    \"id\": \"014f495a0000000200000005\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"price\": 22.87,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2024-08-04T07:34:50.628Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`map dydx-v4 messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 3220,\n        \"price\": 0.155,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 35520,\n        \"price\": 0.1547,\n      },\n    ],\n    \"exchange\": \"dydx-v4\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"GRT-USD\",\n    \"timestamp\": 2024-08-23T00:00:00.498Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map dydx-v4 messages 4`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 11.21,\n      },\n    ],\n    \"exchange\": \"dydx-v4\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"GRT-USD\",\n    \"timestamp\": 2024-08-23T00:00:00.498Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map dydx-v4 messages 5`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 66.12,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"dydx-v4\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"EGLD-USD\",\n    \"timestamp\": 2024-08-23T00:00:00.498Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map dydx-v4 messages 6`] = `\n[\n  {\n    \"exchange\": \"dydx-v4\",\n    \"fundingRate\": 0.00001351666666666667,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 22.87,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"markPrice\": 60387.51779,\n    \"openInterest\": 648.2389,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2024-08-23T00:00:00.498Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"exchange\": \"dydx-v4\",\n    \"fundingRate\": 0.00001051666666666667,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"markPrice\": 2623.2521,\n    \"openInterest\": 15395.279,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"ETH-USD\",\n    \"timestamp\": 2024-08-23T00:00:00.498Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map dydx-v4 messages 7`] = `\n[\n  {\n    \"exchange\": \"dydx-v4\",\n    \"fundingRate\": 0.00001051666666666667,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"markPrice\": 2623.2521,\n    \"openInterest\": 15398.406,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"ETH-USD\",\n    \"timestamp\": 2024-08-23T00:00:00.498Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map dydx-v4 messages 8`] = `\n[\n  {\n    \"exchange\": \"dydx-v4\",\n    \"fundingRate\": 0.00001051666666666667,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"markPrice\": 2623.3521,\n    \"openInterest\": 15398.406,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"ETH-USD\",\n    \"timestamp\": 2024-08-23T00:00:00.498Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map hyperliquid messages 1`] = `[]`;\n\nexports[`map hyperliquid messages 2`] = `\n[\n  {\n    \"amount\": 9.1,\n    \"exchange\": \"hyperliquid\",\n    \"id\": \"809065877559592\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"price\": 1.9014,\n    \"side\": \"sell\",\n    \"symbol\": \"FXS\",\n    \"timestamp\": 2024-10-29T00:00:59.558Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map hyperliquid messages 3`] = `[]`;\n\nexports[`map hyperliquid messages 4`] = `\n[\n  {\n    \"amount\": 0.00714,\n    \"exchange\": \"hyperliquid\",\n    \"id\": \"696560709859024\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"price\": 69998,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC\",\n    \"timestamp\": 2024-10-29T00:00:07.572Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map hyperliquid messages 5`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [],\n    \"exchange\": \"hyperliquid\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"SHIA\",\n    \"timestamp\": 2024-10-29T00:00:07.687Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map hyperliquid messages 6`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 2.9,\n        \"price\": 59.811,\n      },\n      {\n        \"amount\": 17.6,\n        \"price\": 59.832,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3.4,\n        \"price\": 59.8,\n      },\n      {\n        \"amount\": 1.6,\n        \"price\": 59.778,\n      },\n    ],\n    \"exchange\": \"hyperliquid\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"BANANA\",\n    \"timestamp\": 2024-10-29T00:00:07.687Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map hyperliquid messages 7`] = `\n[\n  {\n    \"exchange\": \"hyperliquid\",\n    \"fundingRate\": 0.00004863,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 0.1995,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"markPrice\": 0.19963,\n    \"openInterest\": 18617460,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"MOODENG\",\n    \"timestamp\": 2024-08-23T00:00:00.498Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map hyperliquid messages 8`] = `[]`;\n\nexports[`map hyperliquid messages 9`] = `\n[\n  {\n    \"askAmount\": 50,\n    \"askPrice\": 0.97934,\n    \"bidAmount\": 4144.6,\n    \"bidPrice\": 0.97925,\n    \"exchange\": \"hyperliquid\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"@162\",\n    \"timestamp\": 2025-06-26T14:41:59.838Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map hyperliquid messages 10`] = `\n[\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": undefined,\n    \"bidAmount\": 3.87947,\n    \"bidPrice\": 107575,\n    \"exchange\": \"hyperliquid\",\n    \"localTimestamp\": 2024-08-23T00:00:00.498Z,\n    \"symbol\": \"BTC\",\n    \"timestamp\": 2025-06-26T14:41:59.838Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map kucoin messages 1`] = `[]`;\n\nexports[`map kucoin messages 2`] = `[]`;\n\nexports[`map kucoin messages 3`] = `[]`;\n\nexports[`map kucoin messages 4`] = `\n[\n  {\n    \"amount\": 0.00001255,\n    \"exchange\": \"kucoin\",\n    \"id\": \"62fade002e113d292303a18b\",\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"price\": 24093.9,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2022-08-16T00:00:00.026914Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map kucoin messages 5`] = `\n[\n  {\n    \"amount\": 12.9629,\n    \"exchange\": \"kucoin\",\n    \"id\": \"455391760226305\",\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"price\": 0.000001094,\n    \"side\": \"sell\",\n    \"symbol\": \"LMR-BTC\",\n    \"timestamp\": 2022-08-16T00:00:00.023000Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map kucoin messages 6`] = `\n[\n  {\n    \"amount\": 66.5603,\n    \"exchange\": \"kucoin\",\n    \"id\": \"62fade212e113d325d5cf21d\",\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"price\": 0.37587,\n    \"side\": \"sell\",\n    \"symbol\": \"XRP-USDT\",\n    \"timestamp\": 2022-08-16T00:00:33.110362Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map kucoin messages 7`] = `\n[\n  {\n    \"askAmount\": 404.3024,\n    \"askPrice\": 0.9052,\n    \"bidAmount\": 202.2365,\n    \"bidPrice\": 0.9027,\n    \"exchange\": \"kucoin\",\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"symbol\": \"APE3S-USDT\",\n    \"timestamp\": 2022-08-16T00:00:19.966Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map kucoin messages 8`] = `[]`;\n\nexports[`map kucoin messages 9`] = `[]`;\n\nexports[`map kucoin messages 10`] = `[]`;\n\nexports[`map kucoin messages 11`] = `[]`;\n\nexports[`map kucoin messages 12`] = `[]`;\n\nexports[`map kucoin messages 13`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.64205639,\n        \"price\": 24088.7,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 24088.8,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 7.07264171,\n        \"price\": 24088.6,\n      },\n      {\n        \"amount\": 0.00007756,\n        \"price\": 24046,\n      },\n      {\n        \"amount\": 0.12,\n        \"price\": 12,\n      },\n    ],\n    \"exchange\": \"kucoin\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2022-08-16T00:00:00.464Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map kucoin messages 14`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 12,\n        \"price\": 24088.8,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"kucoin\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2022-08-16T00:00:00.464Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map kucoin messages 15`] = `[]`;\n\nexports[`map kucoin messages 16`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.35127929,\n        \"price\": 27309.8,\n      },\n    ],\n    \"exchange\": \"kucoin\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2023-06-01T00:23:00.002Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map kucoin-futures messages 1`] = `\n[\n  {\n    \"amount\": 10,\n    \"exchange\": \"kucoin-futures\",\n    \"id\": \"1701197946092\",\n    \"localTimestamp\": 2024-01-22T00:00:00.081Z,\n    \"price\": 93.624,\n    \"side\": \"sell\",\n    \"symbol\": \"SOLUSDTM\",\n    \"timestamp\": 2024-01-19T23:59:59.998Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map kucoin-futures messages 2`] = `[]`;\n\nexports[`map kucoin-futures messages 3`] = `[]`;\n\nexports[`map kucoin-futures messages 4`] = `[]`;\n\nexports[`map kucoin-futures messages 5`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 30,\n        \"price\": 0.21557,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 0.20645,\n      },\n    ],\n    \"exchange\": \"kucoin-futures\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2024-01-22T00:00:00.081Z,\n    \"symbol\": \"MYROUSDTM\",\n    \"timestamp\": 2024-01-22T00:00:00.081Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map kucoin-futures messages 6`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3,\n        \"price\": 0.3,\n      },\n    ],\n    \"exchange\": \"kucoin-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2024-01-22T00:00:00.081Z,\n    \"symbol\": \"MYROUSDTM\",\n    \"timestamp\": 2024-01-20T00:00:00.010Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map kucoin-futures messages 7`] = `\n[\n  {\n    \"askAmount\": 250,\n    \"askPrice\": 24.08,\n    \"bidAmount\": 260,\n    \"bidPrice\": 24.067,\n    \"exchange\": \"kucoin-futures\",\n    \"localTimestamp\": 2024-01-22T00:00:00.081Z,\n    \"symbol\": \"AUCTIONUSDTM\",\n    \"timestamp\": 2024-01-20T00:00:00.078Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map kucoin-futures messages 8`] = `[]`;\n\nexports[`map kucoin-futures messages 9`] = `\n[\n  {\n    \"amount\": 1,\n    \"exchange\": \"kucoin-futures\",\n    \"id\": \"1728107666597\",\n    \"localTimestamp\": 2024-01-22T00:00:00.081Z,\n    \"price\": 39615,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSDTM\",\n    \"timestamp\": 2024-01-24T04:01:03.101Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map kucoin-futures messages 10`] = `\n[\n  {\n    \"exchange\": \"kucoin-futures\",\n    \"fundingRate\": 0.000038,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 39615,\n    \"localTimestamp\": 2024-01-22T00:00:00.081Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 9295921,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"XBTUSDTM\",\n    \"timestamp\": 2024-01-24T04:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map kucoin-futures messages 11`] = `\n[\n  {\n    \"exchange\": \"kucoin-futures\",\n    \"fundingRate\": 0.000038,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 39615.44,\n    \"lastPrice\": 39615,\n    \"localTimestamp\": 2024-01-22T00:00:00.081Z,\n    \"markPrice\": 39610.11,\n    \"openInterest\": 9295921,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"XBTUSDTM\",\n    \"timestamp\": 2024-01-24T04:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map kucoin-futures messages 12`] = `\n[\n  {\n    \"exchange\": \"kucoin-futures\",\n    \"fundingRate\": 0.000039,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 39615.44,\n    \"lastPrice\": 39615,\n    \"localTimestamp\": 2024-01-22T00:00:00.081Z,\n    \"markPrice\": 39610.11,\n    \"openInterest\": 9295921,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"XBTUSDTM\",\n    \"timestamp\": 2024-01-24T04:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map kucoin-futures messages 13`] = `\n[\n  {\n    \"exchange\": \"kucoin-futures\",\n    \"fundingRate\": 0.000039,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 39618,\n    \"lastPrice\": 39615,\n    \"localTimestamp\": 2024-01-22T00:00:00.081Z,\n    \"markPrice\": 39612.67,\n    \"openInterest\": 9295921,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"XBTUSDTM\",\n    \"timestamp\": 2024-01-24T04:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map kucoin-futures messages 14`] = `\n[\n  {\n    \"exchange\": \"kucoin-futures\",\n    \"fundingRate\": 0.000038,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 39618,\n    \"lastPrice\": 39615,\n    \"localTimestamp\": 2024-01-22T00:00:00.081Z,\n    \"markPrice\": 39612.67,\n    \"openInterest\": 9295921,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"XBTUSDTM\",\n    \"timestamp\": 2024-01-24T04:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map kucoin-futures messages 15`] = `\n[\n  {\n    \"exchange\": \"kucoin-futures\",\n    \"fundingRate\": 0.000032,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 39618,\n    \"lastPrice\": 39615,\n    \"localTimestamp\": 2024-01-22T00:00:00.081Z,\n    \"markPrice\": 39612.67,\n    \"openInterest\": 9295921,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"XBTUSDTM\",\n    \"timestamp\": 2024-01-24T04:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map okex-spreads messages 1`] = `\n[\n  {\n    \"amount\": 13430,\n    \"exchange\": \"okex-spreads\",\n    \"id\": \"2102504804202430464\",\n    \"localTimestamp\": 2023-12-22T00:00:00.081Z,\n    \"price\": 64.9,\n    \"side\": \"sell\",\n    \"symbol\": \"ETH-USD-SWAP_ETH-USD-240329\",\n    \"timestamp\": 2023-12-21T10:50:52.033Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map okex-spreads messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 11000,\n        \"price\": 1328,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 18100,\n        \"price\": 1314,\n      },\n      {\n        \"amount\": 50000,\n        \"price\": 1313.5,\n      },\n    ],\n    \"exchange\": \"okex-spreads\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2023-12-22T00:00:00.081Z,\n    \"symbol\": \"BTC-USD-231229_BTC-USD-240329\",\n    \"timestamp\": 2023-12-21T10:50:59.507Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map okex-spreads messages 3`] = `\n[\n  {\n    \"askAmount\": 14200,\n    \"askPrice\": 170.5,\n    \"bidAmount\": 4000,\n    \"bidPrice\": 168,\n    \"exchange\": \"okex-spreads\",\n    \"localTimestamp\": 2023-12-22T00:00:00.081Z,\n    \"symbol\": \"BTC-USD-SWAP_BTC-USD-231229\",\n    \"timestamp\": 2023-12-21T10:50:59.224Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map woo-x messages 1`] = `\n[\n  {\n    \"amount\": 4109,\n    \"exchange\": \"woo-x\",\n    \"id\": undefined,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"price\": 0.048756,\n    \"side\": \"sell\",\n    \"symbol\": \"PERP_GALA_USDT\",\n    \"timestamp\": 2023-01-22T23:59:59.995Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"exchange\": \"woo-x\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 0.048756,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"PERP_GALA_USDT\",\n    \"timestamp\": 2023-01-22T23:59:59.995Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map woo-x messages 2`] = `\n[\n  {\n    \"amount\": 0.0516,\n    \"exchange\": \"woo-x\",\n    \"id\": undefined,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"price\": 1522.45,\n    \"side\": \"sell\",\n    \"symbol\": \"SPOT_ETH_USDT\",\n    \"timestamp\": 2023-01-19T13:36:57.986Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`map woo-x messages 3`] = `[]`;\n\nexports[`map woo-x messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 15.4675,\n        \"price\": 22712.7,\n      },\n      {\n        \"amount\": 0.248,\n        \"price\": 26772.1,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4.503,\n        \"price\": 22708,\n      },\n      {\n        \"amount\": 0.002,\n        \"price\": 18555,\n      },\n    ],\n    \"exchange\": \"woo-x\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"symbol\": \"PERP_BTC_USDT\",\n    \"timestamp\": 2023-01-23T00:00:00.020Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 15.4675,\n        \"price\": 22712.7,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4.503,\n        \"price\": 22708,\n      },\n    ],\n    \"exchange\": \"woo-x\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"symbol\": \"PERP_BTC_USDT\",\n    \"timestamp\": 2023-01-23T00:00:00.020Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map woo-x messages 5`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 16.1625,\n        \"price\": 22712.7,\n      },\n      {\n        \"amount\": 0.008,\n        \"price\": 28462.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4.284,\n        \"price\": 22708,\n      },\n    ],\n    \"exchange\": \"woo-x\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"symbol\": \"PERP_BTC_USDT\",\n    \"timestamp\": 2023-01-23T00:00:00.220Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`map woo-x messages 6`] = `\n[\n  {\n    \"askAmount\": 38.2,\n    \"askPrice\": 13.33,\n    \"bidAmount\": 21.137,\n    \"bidPrice\": 13.322,\n    \"exchange\": \"woo-x\",\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"symbol\": \"SPOT_ATOM_USDT\",\n    \"timestamp\": 2023-01-22T23:59:59.997Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`map woo-x messages 7`] = `\n[\n  {\n    \"exchange\": \"woo-x\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"markPrice\": 22711.11,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"PERP_BTC_USDT\",\n    \"timestamp\": 2023-01-23T00:00:00.007Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map woo-x messages 8`] = `\n[\n  {\n    \"exchange\": \"woo-x\",\n    \"fundingRate\": 0.00000782,\n    \"fundingTimestamp\": 2023-01-23T01:00:00.005Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"markPrice\": 22711.11,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"PERP_BTC_USDT\",\n    \"timestamp\": 2023-01-23T00:00:59.002Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map woo-x messages 9`] = `[]`;\n\nexports[`map woo-x messages 10`] = `\n[\n  {\n    \"exchange\": \"woo-x\",\n    \"fundingRate\": 0.00000782,\n    \"fundingTimestamp\": 2023-01-23T01:00:00.005Z,\n    \"indexPrice\": 22708.44,\n    \"lastPrice\": 22703.97,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"markPrice\": 22711.11,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"PERP_BTC_USDT\",\n    \"timestamp\": 2023-01-23T00:00:59.820Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`map woo-x messages 11`] = `\n[\n  {\n    \"exchange\": \"woo-x\",\n    \"fundingRate\": 0.00000782,\n    \"fundingTimestamp\": 2023-01-23T01:00:00.005Z,\n    \"indexPrice\": 22708.44,\n    \"lastPrice\": 22703.97,\n    \"localTimestamp\": 2022-08-16T00:00:00.464Z,\n    \"markPrice\": 22711.11,\n    \"openInterest\": 83.2241,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"PERP_BTC_USDT\",\n    \"timestamp\": 2023-01-23T00:00:59.820Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers ignore bitfinex funding ticker messages for book ticker 1`] = `[]`;\n\nexports[`mappers map ascendex messages 1`] = `\n[\n  {\n    \"amount\": 0.3,\n    \"exchange\": \"ascendex\",\n    \"id\": undefined,\n    \"localTimestamp\": 2021-05-24T00:59:59.000Z,\n    \"price\": 233.9451,\n    \"side\": \"sell\",\n    \"symbol\": \"BNB/USDT\",\n    \"timestamp\": 2021-03-26T00:00:00.368Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map ascendex messages 2`] = `\n[\n  {\n    \"amount\": 0.03393,\n    \"exchange\": \"ascendex\",\n    \"id\": undefined,\n    \"localTimestamp\": 2021-05-24T00:59:59.000Z,\n    \"price\": 51297.85,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC/USDT\",\n    \"timestamp\": 2021-03-26T00:00:01.842Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.00457,\n    \"exchange\": \"ascendex\",\n    \"id\": undefined,\n    \"localTimestamp\": 2021-05-24T00:59:59.000Z,\n    \"price\": 51299.54,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC/USDT\",\n    \"timestamp\": 2021-03-26T00:00:01.928Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map ascendex messages 3`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 0.7892,\n      },\n    ],\n    \"exchange\": \"ascendex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-05-24T00:59:59.000Z,\n    \"symbol\": \"XRP/USDT\",\n    \"timestamp\": 2021-05-24T00:00:00.204Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map ascendex messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1899,\n        \"price\": 0.7898,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 498,\n        \"price\": 0.78958,\n      },\n      {\n        \"amount\": 499,\n        \"price\": 0.78952,\n      },\n    ],\n    \"exchange\": \"ascendex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2021-05-24T00:59:59.000Z,\n    \"symbol\": \"XRP/USDT\",\n    \"timestamp\": 2021-05-24T00:59:59.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map ascendex messages 5`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 0.78721,\n      },\n    ],\n    \"exchange\": \"ascendex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-05-24T00:59:59.000Z,\n    \"symbol\": \"XRP/USDT\",\n    \"timestamp\": 2021-05-24T00:00:00.266Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map ascendex messages 6`] = `\n[\n  {\n    \"amount\": 0.05,\n    \"exchange\": \"ascendex\",\n    \"id\": undefined,\n    \"localTimestamp\": 2021-05-24T00:59:59.000Z,\n    \"price\": 34816,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-PERP\",\n    \"timestamp\": 2021-05-24T00:00:24.397Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map ascendex messages 7`] = `\n[\n  {\n    \"exchange\": \"ascendex\",\n    \"fundingRate\": 0.000093927,\n    \"fundingTimestamp\": 2021-05-24T00:00:00.000Z,\n    \"indexPrice\": 34670.285,\n    \"lastPrice\": 34816,\n    \"localTimestamp\": 2021-05-24T00:59:59.000Z,\n    \"markPrice\": 34638.370817096,\n    \"openInterest\": 80.2099,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-PERP\",\n    \"timestamp\": 2021-05-23T23:59:04.113Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map ascendex messages 8`] = `\n[\n  {\n    \"askAmount\": 21,\n    \"askPrice\": 17.67664,\n    \"bidAmount\": 2,\n    \"bidPrice\": 17.39749,\n    \"exchange\": \"ascendex\",\n    \"localTimestamp\": 2021-05-24T00:59:59.000Z,\n    \"symbol\": \"PROM/USDT\",\n    \"timestamp\": 2021-10-11T00:00:00.019Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance delivery messages 1`] = `[]`;\n\nexports[`mappers map binance delivery messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 4090,\n        \"price\": 99999,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 181,\n        \"price\": 9504.8,\n      },\n    ],\n    \"exchange\": \"binance-delivery\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD_200925\",\n    \"timestamp\": 2020-06-16T00:00:00.229Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map binance delivery messages 3`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 13,\n        \"price\": 9498.9,\n      },\n    ],\n    \"exchange\": \"binance-delivery\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD_200925\",\n    \"timestamp\": 2020-06-16T00:00:00.422Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map binance delivery messages 4`] = `\n[\n  {\n    \"exchange\": \"binance-delivery\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 9501.15723333,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSD_200925\",\n    \"timestamp\": 2020-06-16T00:00:02.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance delivery messages 5`] = `[]`;\n\nexports[`mappers map binance delivery messages 6`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 181,\n        \"price\": 9504.8,\n      },\n    ],\n    \"exchange\": \"binance-delivery\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD_200925\",\n    \"timestamp\": 2020-06-16T00:00:02.212Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map binance delivery messages 7`] = `\n[\n  {\n    \"exchange\": \"binance-delivery\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 9429.39675,\n    \"lastPrice\": 9504.9,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 9501.15723333,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSD_200925\",\n    \"timestamp\": 2020-06-16T00:00:16.654Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance delivery messages 8`] = `\n[\n  {\n    \"exchange\": \"binance-delivery\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 9429.39675,\n    \"lastPrice\": 9504.9,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 9501.15723333,\n    \"openInterest\": 15279,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSD_200925\",\n    \"timestamp\": 2020-06-16T00:00:16.654Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance delivery messages 9`] = `\n[\n  {\n    \"amount\": 1,\n    \"exchange\": \"binance-delivery\",\n    \"id\": \"173906\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 9504.9,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSD_200925\",\n    \"timestamp\": 2020-06-16T00:00:16.653Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map binance delivery messages 10`] = `\n[\n  {\n    \"amount\": 3,\n    \"exchange\": \"binance-delivery\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 9314.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSD_200925\",\n    \"timestamp\": 2020-07-13T06:49:14.021Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map binance delivery messages 11`] = `[]`;\n\nexports[`mappers map binance delivery messages 12`] = `\n[\n  {\n    \"askAmount\": 6,\n    \"askPrice\": 353.477,\n    \"bidAmount\": 271,\n    \"bidPrice\": 353.401,\n    \"exchange\": \"binance-delivery\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BNBUSD_PERP\",\n    \"timestamp\": 2021-06-01T00:00:00.005Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance dex messages 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 29900,\n        \"price\": 0.00005325,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 7000,\n        \"price\": 0.00003212,\n      },\n    ],\n    \"exchange\": \"binance-dex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BLINK-9C6_BNB\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map binance dex messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 0.00005253,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 0.000004,\n      },\n      {\n        \"amount\": 350000,\n        \"price\": 5e-8,\n      },\n    ],\n    \"exchange\": \"binance-dex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BLINK-9C6_BNB\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map binance dex messages 3`] = `\n[\n  {\n    \"amount\": 2070,\n    \"exchange\": \"binance-dex\",\n    \"id\": \"16927042-0\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 0.00042701,\n    \"side\": \"buy\",\n    \"symbol\": \"PHB-2DF_BNB\",\n    \"timestamp\": 2019-07-01T00:00:22.635Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2930,\n    \"exchange\": \"binance-dex\",\n    \"id\": \"16927042-1\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 0.00042701,\n    \"side\": \"buy\",\n    \"symbol\": \"PHB-2DF_BNB\",\n    \"timestamp\": 2019-07-01T00:00:22.635Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map binance dex messages 4`] = `\n[\n  {\n    \"askAmount\": 646900,\n    \"askPrice\": 0.00008414,\n    \"bidAmount\": 394500,\n    \"bidPrice\": 0.00008379,\n    \"exchange\": \"binance-dex\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"RAVEN-F66_BNB\",\n    \"timestamp\": 2019-07-01T00:00:23.000Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance dex messages 5`] = `\n[\n  {\n    \"askAmount\": 2110,\n    \"askPrice\": 0.000111,\n    \"bidAmount\": 200,\n    \"bidPrice\": 0.000105,\n    \"exchange\": \"binance-dex\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"ARN-71B_BNB\",\n    \"timestamp\": 2021-10-11T00:53:00.000Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance futures messages 1`] = `[]`;\n\nexports[`mappers map binance futures messages 2`] = `\n[\n  {\n    \"exchange\": \"binance-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 10223.74,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-09-17T04:05:03.467Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance futures messages 3`] = `\n[\n  {\n    \"exchange\": \"binance-futures\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": 2019-10-01T08:00:00.000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 10223.74,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 8291.34697815,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-10-01T00:00:03.001Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance futures messages 4`] = `[]`;\n\nexports[`mappers map binance futures messages 5`] = `\n[\n  {\n    \"amount\": 0.044,\n    \"exchange\": \"binance-futures\",\n    \"id\": \"10934580\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 7627.6,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-11-22T00:06:04.086Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map binance futures messages 6`] = `[]`;\n\nexports[`mappers map binance futures messages 7`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 2.31652,\n        \"price\": 4095.99,\n      },\n      {\n        \"amount\": 2.425419,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1.501,\n        \"price\": 8488.36,\n      },\n      {\n        \"amount\": 0.162,\n        \"price\": 8493.78,\n      },\n    ],\n    \"exchange\": \"binance-futures\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map binance futures messages 8`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.162,\n        \"price\": 8493.78,\n      },\n    ],\n    \"exchange\": \"binance-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-11-17T00:00:21.952Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map binance futures messages 9`] = `\n[\n  {\n    \"exchange\": \"binance-futures\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": 2019-10-01T08:00:00.000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 10223.74,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 8291.34697815,\n    \"openInterest\": 26286.181,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-10-01T00:00:03.001Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance futures messages 10`] = `\n[\n  {\n    \"exchange\": \"binance-futures\",\n    \"fundingRate\": 0.0001564,\n    \"fundingTimestamp\": 2020-08-16T08:00:00.000Z,\n    \"indexPrice\": 11851.86949091,\n    \"lastPrice\": 10223.74,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 11857.56,\n    \"openInterest\": 26286.181,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-08-16T00:00:08.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance futures messages 11`] = `[]`;\n\nexports[`mappers map binance futures messages 12`] = `\n[\n  {\n    \"amount\": 0.467,\n    \"exchange\": \"binance-futures\",\n    \"id\": \"173525189\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 11343.67,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-08-01T00:00:00.519Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map binance futures messages 13`] = `\n[\n  {\n    \"amount\": 0.014,\n    \"exchange\": \"binance-futures\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 4793.91,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-03-13T00:23:51.421Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map binance futures messages 14`] = `\n[\n  {\n    \"exchange\": \"binance-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 31307.034,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 31799.2773,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCBUSD_210129\",\n    \"timestamp\": 2021-01-05T07:02:01.004Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance futures messages 15`] = `\n[\n  {\n    \"askAmount\": 0.38,\n    \"askPrice\": 33139.39,\n    \"bidAmount\": 0.17,\n    \"bidPrice\": 33134.42,\n    \"exchange\": \"binance-futures\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2021-02-01T00:00:03.571Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance messages 1`] = `\n[\n  {\n    \"amount\": 33.82,\n    \"exchange\": \"binance\",\n    \"id\": \"40756030\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 0.0042699,\n    \"side\": \"buy\",\n    \"symbol\": \"BNBBTC\",\n    \"timestamp\": 2019-04-01T00:00:00.940Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map binance messages 2`] = `\n[\n  {\n    \"amount\": 6.48,\n    \"exchange\": \"binance\",\n    \"id\": \"60276726\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 0.0021965,\n    \"side\": \"sell\",\n    \"symbol\": \"BNBBTC\",\n    \"timestamp\": 2019-09-01T00:00:01.034Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map binance messages 3`] = `\n[\n  {\n    \"askAmount\": 0.031201,\n    \"askPrice\": 8012.15,\n    \"bidAmount\": 0.142459,\n    \"bidPrice\": 8010,\n    \"exchange\": \"binance\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map binance messages 4`] = `[]`;\n\nexports[`mappers map binance messages 5`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 2.31652,\n        \"price\": 4095.99,\n      },\n      {\n        \"amount\": 1.425419,\n        \"price\": 4096,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.009765,\n        \"price\": 4091.92,\n      },\n      {\n        \"amount\": 0.763931,\n        \"price\": 4089.09,\n      },\n    ],\n    \"exchange\": \"binance\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSDC\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map binance messages 6`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4111.84,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4084.88,\n      },\n    ],\n    \"exchange\": \"binance\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSDC\",\n    \"timestamp\": 2019-04-01T00:00:01.699Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map binance messages 7`] = `[]`;\n\nexports[`mappers map binance messages 8`] = `[]`;\n\nexports[`mappers map binance messages 9`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 3945,\n        \"price\": 0.00002253,\n      },\n      {\n        \"amount\": 50641,\n        \"price\": 0.00002256,\n      },\n      {\n        \"amount\": 1777,\n        \"price\": 0.00002258,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 114,\n        \"price\": 0.00002248,\n      },\n      {\n        \"amount\": 375,\n        \"price\": 0.00002246,\n      },\n      {\n        \"amount\": 2673,\n        \"price\": 0.00002245,\n      },\n      {\n        \"amount\": 390,\n        \"price\": 0.00002244,\n      },\n      {\n        \"amount\": 3425,\n        \"price\": 0.00002243,\n      },\n    ],\n    \"exchange\": \"binance\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"GNTBTC\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map binance messages 10`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 0.00002257,\n      },\n      {\n        \"amount\": 6080,\n        \"price\": 0.00002262,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"binance\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"GNTBTC\",\n    \"timestamp\": 2019-04-01T00:00:09.699Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex book ticker messages with trailing null placeholder 1`] = `\n[\n  {\n    \"askAmount\": 1.22665447,\n    \"askPrice\": 71760,\n    \"bidAmount\": 0.26742262,\n    \"bidPrice\": 71741,\n    \"exchange\": \"bitfinex\",\n    \"localTimestamp\": 2026-04-10T00:00:00.164Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2026-04-10T00:00:00.144Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex derivatives book ticker messages with trailing null placeholder 1`] = `\n[\n  {\n    \"askAmount\": 6.16257014,\n    \"askPrice\": 71847,\n    \"bidAmount\": 7.47322491,\n    \"bidPrice\": 71800,\n    \"exchange\": \"bitfinex-derivatives\",\n    \"localTimestamp\": 2026-04-10T00:00:00.152Z,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2026-04-10T00:00:00.139Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex derivatives messages 1`] = `[]`;\n\nexports[`mappers map bitfinex derivatives messages 2`] = `\n[\n  {\n    \"exchange\": \"bitfinex-derivatives\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": 2019-09-29T08:00:00.000Z,\n    \"indexPrice\": 173.57,\n    \"lastPrice\": 173.535,\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-09-29T00:00:01.369Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex derivatives messages 3`] = `[]`;\n\nexports[`mappers map bitfinex derivatives messages 4`] = `\n[\n  {\n    \"exchange\": \"bitfinex-derivatives\",\n    \"fundingRate\": 0.00196337,\n    \"fundingTimestamp\": 2019-09-30T08:00:00.000Z,\n    \"indexPrice\": 8051.45,\n    \"lastPrice\": 8090.5,\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0.00000843,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-09-30T00:00:52.225Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex derivatives messages 5`] = `\n[\n  {\n    \"exchange\": \"bitfinex-derivatives\",\n    \"fundingRate\": 0,\n    \"fundingTimestamp\": 2019-10-08T08:00:00.000Z,\n    \"indexPrice\": 8197.3,\n    \"lastPrice\": 8192.7,\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"markPrice\": 8196.973333333333,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": -1.4e-7,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-10-08T00:00:32.311Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex derivatives messages 6`] = `\n[\n  {\n    \"exchange\": \"bitfinex-derivatives\",\n    \"fundingRate\": 0,\n    \"fundingTimestamp\": 2019-10-08T08:00:00.000Z,\n    \"indexPrice\": 8208.45,\n    \"lastPrice\": 8210.5,\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"markPrice\": 8208.893333333333,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0.00000725,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-10-08T00:14:59.520Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex derivatives messages 7`] = `[]`;\n\nexports[`mappers map bitfinex derivatives messages 8`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 9163.7,\n      },\n    ],\n    \"exchange\": \"bitfinex-derivatives\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2020-05-27T16:27:00.151Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex derivatives messages 9`] = `[]`;\n\nexports[`mappers map bitfinex derivatives messages 10`] = `\n[\n  {\n    \"exchange\": \"bitfinex-derivatives\",\n    \"fundingRate\": 0,\n    \"fundingTimestamp\": 2020-05-28T00:00:00.000Z,\n    \"indexPrice\": 9169.35,\n    \"lastPrice\": 9166.30324769,\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"markPrice\": 9170.3525,\n    \"openInterest\": 3005.25851857,\n    \"predictedFundingRate\": -0.00001415,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2020-05-27T16:27:00.986Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex derivatives messages 11`] = `[]`;\n\nexports[`mappers map bitfinex derivatives messages 12`] = `\n[\n  {\n    \"amount\": 0.005,\n    \"exchange\": \"bitfinex-derivatives\",\n    \"id\": \"452025730\",\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"price\": 9135.5,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2020-05-27T15:26:39.934Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex derivatives messages 13`] = `[]`;\n\nexports[`mappers map bitfinex derivatives messages 14`] = `\n[\n  {\n    \"amount\": 0.00268657,\n    \"exchange\": \"bitfinex-derivatives\",\n    \"id\": \"143683674\",\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"price\": 9135.972557016,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2020-06-30T13:13:22.742Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex derivatives messages 15`] = `[]`;\n\nexports[`mappers map bitfinex derivatives messages 16`] = `[]`;\n\nexports[`mappers map bitfinex derivatives messages 17`] = `[]`;\n\nexports[`mappers map bitfinex derivatives messages 18`] = `\n[\n  {\n    \"amount\": 0.00268657,\n    \"exchange\": \"bitfinex-derivatives\",\n    \"id\": \"143683674\",\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"price\": 9135.972557016,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2020-06-30T13:13:22.742Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex derivatives messages 19`] = `[]`;\n\nexports[`mappers map bitfinex derivatives messages 20`] = `\n[\n  {\n    \"amount\": 8.6007,\n    \"exchange\": \"bitfinex-derivatives\",\n    \"id\": \"143679087\",\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"price\": 222.248906484356,\n    \"side\": \"buy\",\n    \"symbol\": \"ETHF0:USTF0\",\n    \"timestamp\": 2020-07-06T11:58:30.534Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex messages 1`] = `[]`;\n\nexports[`mappers map bitfinex messages 2`] = `[]`;\n\nexports[`mappers map bitfinex messages 3`] = `[]`;\n\nexports[`mappers map bitfinex messages 4`] = `\n[\n  {\n    \"amount\": 0.00705845,\n    \"exchange\": \"bitfinex\",\n    \"id\": \"382489563\",\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"price\": 10087.98969503,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-08-01T00:00:00.709Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex messages 5`] = `[]`;\n\nexports[`mappers map bitfinex messages 6`] = `[]`;\n\nexports[`mappers map bitfinex messages 7`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 13.33333333,\n        \"price\": 218.75,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 218.76,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 31.52,\n        \"price\": 216,\n      },\n    ],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"symbol\": \"ETHUSD\",\n    \"timestamp\": 2019-08-01T00:00:00.541Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex messages 8`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 18.10913638,\n        \"price\": 219.11,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"symbol\": \"ETHUSD\",\n    \"timestamp\": 2019-08-01T00:00:01.214Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex messages 9`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 218.99,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"symbol\": \"ETHUSD\",\n    \"timestamp\": 2019-08-01T00:00:01.769Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex messages 10`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 218.03,\n      },\n    ],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"symbol\": \"ETHUSD\",\n    \"timestamp\": 2019-08-01T00:00:02.483Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex messages 11`] = `[]`;\n\nexports[`mappers map bitfinex messages 12`] = `[]`;\n\nexports[`mappers map bitfinex messages 13`] = `\n[\n  {\n    \"askAmount\": 197418.99101772,\n    \"askPrice\": 0.00002274,\n    \"bidAmount\": 657877.4673439099,\n    \"bidPrice\": 0.00002271,\n    \"exchange\": \"bitfinex\",\n    \"localTimestamp\": 2019-08-01T00:00:02.496Z,\n    \"symbol\": \"MATIC:BTC\",\n    \"timestamp\": 2021-10-11T00:00:36.166Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitfinex messages 14`] = `[]`;\n\nexports[`mappers map bitfinex messages 15`] = `[]`;\n\nexports[`mappers map bitflyer messages 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.14,\n        \"price\": 0.02919,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.022,\n        \"price\": 0.0146,\n      },\n    ],\n    \"exchange\": \"bitflyer\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BCH_BTC\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitflyer messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 1046603,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.05,\n        \"price\": 1043400,\n      },\n    ],\n    \"exchange\": \"bitflyer\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BCH_BTC\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitflyer messages 3`] = `\n[\n  {\n    \"amount\": 0.01,\n    \"exchange\": \"bitflyer\",\n    \"id\": \"1246449270\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 1046399,\n    \"side\": \"buy\",\n    \"symbol\": \"FX_BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:11.225681Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.002,\n    \"exchange\": \"bitflyer\",\n    \"id\": \"1246449271\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 1046400,\n    \"side\": \"buy\",\n    \"symbol\": \"FX_BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:11.225681Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bitflyer messages 4`] = `\n[\n  {\n    \"askAmount\": 0.2,\n    \"askPrice\": 1020332,\n    \"bidAmount\": 0.03,\n    \"bidPrice\": 1020000,\n    \"exchange\": \"bitflyer\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:01.247796Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitflyer messages 5`] = `\n[\n  {\n    \"askAmount\": 0.4,\n    \"askPrice\": 376676,\n    \"bidAmount\": 0.01,\n    \"bidPrice\": 376592,\n    \"exchange\": \"bitflyer\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"ETH_JPY\",\n    \"timestamp\": 2021-09-01T00:00:00.211580Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 1`] = `\n[\n  {\n    \"amount\": 1000,\n    \"exchange\": \"bitmex\",\n    \"id\": \"f73b6f28-075a-3548-a81c-8c843afd2746\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"price\": 8544.5,\n    \"side\": \"sell\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-06-01T00:00:19.163Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 2`] = `[]`;\n\nexports[`mappers map bitmex messages 3`] = `[]`;\n\nexports[`mappers map bitmex messages 4`] = `\n[\n  {\n    \"exchange\": \"bitmex\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 0.03131,\n    \"lastPrice\": 0.03161,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markPrice\": 0.03162,\n    \"openInterest\": 150499,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"ETHM19\",\n    \"timestamp\": 2019-05-31T23:59:30.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"exchange\": \"bitmex\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 0.013382,\n    \"lastPrice\": 0.01354,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markPrice\": 0.013533,\n    \"openInterest\": 204654,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"LTCM19\",\n    \"timestamp\": 2019-05-31T23:59:55.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 5`] = `\n[\n  {\n    \"exchange\": \"bitmex\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 0.03131,\n    \"lastPrice\": 267.75,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markPrice\": 0.03162,\n    \"openInterest\": 150499,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"ETHM19\",\n    \"timestamp\": 2019-05-31T23:59:58.022Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 6`] = `\n[\n  {\n    \"askAmount\": 62427,\n    \"askPrice\": 267.75,\n    \"bidAmount\": 701,\n    \"bidPrice\": 267.7,\n    \"exchange\": \"bitmex\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"ETHUSD\",\n    \"timestamp\": 2019-05-31T23:59:59.942Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 7`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 501,\n        \"price\": 88846.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 9780.5,\n      },\n      {\n        \"amount\": 61227,\n        \"price\": 8586,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-06-01T00:00:28.619Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 417,\n        \"price\": 0.0010102,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"EOSM19\",\n    \"timestamp\": 2019-06-01T00:00:28.619Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 8`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 91227,\n        \"price\": 8586,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-06-01T00:00:28.619Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 9`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8586,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-06-01T00:00:28.619Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 10`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 416,\n        \"price\": 0.0010102,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"EOSM19\",\n    \"timestamp\": 2019-06-01T00:00:28.619Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 11`] = `[]`;\n\nexports[`mappers map bitmex messages 12`] = `\n[\n  {\n    \"amount\": 9214,\n    \"exchange\": \"bitmex\",\n    \"id\": \"dd9cea25-207c-0dab-15b5-b88da776f500\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"price\": 10106,\n    \"side\": \"buy\",\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-06-01T00:00:28.619Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 13`] = `[]`;\n\nexports[`mappers map bitmex messages 14`] = `\n[\n  {\n    \"askAmount\": 205100,\n    \"askPrice\": 55411.5,\n    \"bidAmount\": 2700,\n    \"bidPrice\": 55411,\n    \"exchange\": \"bitmex\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2021-10-13T07:07:00.106Z,\n    \"type\": \"book_ticker\",\n  },\n  {\n    \"askAmount\": 241500,\n    \"askPrice\": 55400.5,\n    \"bidAmount\": 700,\n    \"bidPrice\": 55400,\n    \"exchange\": \"bitmex\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2021-10-13T07:07:01.010Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 15`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"XBTZ21\",\n    \"timestamp\": 2019-06-01T00:00:28.619Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 16`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1000000,\n        \"price\": 42362,\n      },\n      {\n        \"amount\": 10000,\n        \"price\": 662520,\n      },\n      {\n        \"amount\": 20000,\n        \"price\": 658900,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2022-02-14T07:59:54.829Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 17`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20000,\n        \"price\": 42362,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2022-02-14T08:06:54.742Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitmex messages 18`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 662520,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 658900,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2022-02-14T08:34:56.913Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitstamp messages 1`] = `[]`;\n\nexports[`mappers map bitstamp messages 2`] = `\n[\n  {\n    \"amount\": 0.001643,\n    \"exchange\": \"bitstamp\",\n    \"id\": \"84550458\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 3651.3,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCEUR\",\n    \"timestamp\": 2019-04-01T00:00:03.243152Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bitstamp messages 3`] = `[]`;\n\nexports[`mappers map bitstamp messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 2,\n        \"price\": 168.75,\n      },\n      {\n        \"amount\": 0.49428809,\n        \"price\": 168.76,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.04249473,\n        \"price\": 51046.31,\n      },\n      {\n        \"amount\": 0.00040718,\n        \"price\": 60000,\n      },\n    ],\n    \"exchange\": \"bitstamp\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BCHUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2,\n        \"price\": 168.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitstamp\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BCHUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.436165Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitstamp messages 5`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 2,\n        \"price\": 168.75,\n      },\n      {\n        \"amount\": 0.49428809,\n        \"price\": 168.76,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.04249473,\n        \"price\": 51046.31,\n      },\n      {\n        \"amount\": 0.00040718,\n        \"price\": 60000,\n      },\n    ],\n    \"exchange\": \"bitstamp\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-04-01T00:00:01.338397Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitstamp messages 6`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 180,\n        \"price\": 169.28,\n      },\n      {\n        \"amount\": 360,\n        \"price\": 170.16,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitstamp\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BCHUSD\",\n    \"timestamp\": 2019-04-01T00:00:01.338397Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bitstamp messages 7`] = `\n[\n  {\n    \"amount\": 0.02834,\n    \"exchange\": \"bitstamp\",\n    \"id\": \"98000129\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 8304.47,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:00.557673Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 1`] = `[]`;\n\nexports[`mappers map bybit messages 2`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": 2019-11-06T16:00:00.000Z,\n    \"indexPrice\": 190.49,\n    \"lastPrice\": 190.65,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"markPrice\": 190.5,\n    \"openInterest\": 13793020,\n    \"predictedFundingRate\": 0.0001,\n    \"symbol\": \"ETHUSD\",\n    \"timestamp\": 2019-11-06T12:50:49.041458Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 704729,\n        \"price\": 9366,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 58486,\n        \"price\": 9353.5,\n      },\n    ],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-11-06T12:50:48.627110Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 674462,\n        \"price\": 9367,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-11-06T12:50:50.028026Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 5`] = `\n[\n  {\n    \"amount\": 6000,\n    \"exchange\": \"bybit\",\n    \"id\": \"8c53dd53-2df5-563d-8e3b-e0dbba7c55a0\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 9366,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-11-06T12:50:52.000Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 6`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 0.3013,\n      },\n      {\n        \"amount\": 41761,\n        \"price\": 0.3038,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 224986,\n        \"price\": 0.301,\n      },\n    ],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"XRPUSD\",\n    \"timestamp\": 2019-11-06T12:59:01.027590Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 7`] = `[]`;\n\nexports[`mappers map bybit messages 8`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 9291.5,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-11-06T20:03:01.891131Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 9`] = `[]`;\n\nexports[`mappers map bybit messages 10`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 9.95,\n        \"price\": 9452.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-05-28T16:31:00.293107Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 11`] = `\n[\n  {\n    \"amount\": 0.001,\n    \"exchange\": \"bybit\",\n    \"id\": \"bfbbb893-0971-5733-8eb2-aab164d0a552\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 9452,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-05-28T16:31:02.124Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 12`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 9449.62,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-05-28T16:31:02.401579Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 13`] = `\n[\n  {\n    \"amount\": 1,\n    \"exchange\": \"bybit\",\n    \"id\": \"52079383-86f0-52bf-ab1f-f943a34a8aeb\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 215.15,\n    \"side\": \"buy\",\n    \"symbol\": \"ETHUSD\",\n    \"timestamp\": 2020-05-28T16:31:03.041Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 14`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 183205,\n        \"price\": 0.1984,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"XRPUSD\",\n    \"timestamp\": 2020-05-28T16:31:03.122042Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 15`] = `\n[\n  {\n    \"amount\": 0.001,\n    \"exchange\": \"bybit\",\n    \"id\": \"b79bae67-1526-5ee6-adee-cf88e8a691a6\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 9452,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-05-28T16:31:21.987Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 16`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 9.16,\n        \"price\": 9483,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-05-28T16:15:03.852140Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 17`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 35140,\n        \"price\": 9462.5,\n      },\n    ],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2020-05-28T16:15:03.318949Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 18`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 121205,\n        \"price\": 9480.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 101535,\n        \"price\": 9465.5,\n      },\n      {\n        \"amount\": 46177,\n        \"price\": 9467.5,\n      },\n    ],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2020-05-28T16:15:04.061720Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 19`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 214147,\n        \"price\": 9474.5,\n      },\n    ],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2020-05-28T16:15:04.459494Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 20`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 22.390999,\n        \"price\": 9472.5,\n      },\n      {\n        \"amount\": 2.17,\n        \"price\": 9466,\n      },\n      {\n        \"amount\": 3.331,\n        \"price\": 9469.5,\n      },\n    ],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-05-28T16:15:28.033099Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 21`] = `[]`;\n\nexports[`mappers map bybit messages 22`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": 0.000093,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 9473.94,\n    \"lastPrice\": 9469.5,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"markPrice\": 9475.13,\n    \"openInterest\": 4471.23,\n    \"predictedFundingRate\": 0.0001,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-05-28T16:31:02.401579Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 23`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 43624,\n        \"price\": 9360,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2020-02-01T00:00:59.707361Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 24`] = `[]`;\n\nexports[`mappers map bybit messages 25`] = `\n[\n  {\n    \"amount\": 836,\n    \"exchange\": \"bybit\",\n    \"id\": \"3422858\",\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"price\": 23216,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2020-12-18T08:32:19.753Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 26`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 56585.08,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"markPrice\": 60824.3538,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSDM21\",\n    \"timestamp\": 2021-03-11T13:05:00.200258Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 27`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 29.753,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"markPrice\": 29.771,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"LINKUSDT\",\n    \"timestamp\": 2021-03-11T13:04:59.958860Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 28`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"markPrice\": 3821.67,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"ETHUSDU21\",\n    \"timestamp\": 2021-09-02T23:59:59.958670Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 29`] = `\n[\n  {\n    \"amount\": 1257079,\n    \"exchange\": \"bybit\",\n    \"id\": \"10759329\",\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"price\": 44662.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2021-09-20T07:34:52.903Z,\n    \"type\": \"liquidation\",\n  },\n  {\n    \"amount\": 2314,\n    \"exchange\": \"bybit\",\n    \"id\": \"10759323\",\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"price\": 44593,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2021-09-20T07:34:54.901Z,\n    \"type\": \"liquidation\",\n  },\n  {\n    \"amount\": 650,\n    \"exchange\": \"bybit\",\n    \"id\": \"10759328\",\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"price\": 44598,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2021-09-20T07:34:54.908Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 30`] = `\n[\n  {\n    \"amount\": 3655,\n    \"exchange\": \"bybit\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"price\": 3384.15,\n    \"side\": \"buy\",\n    \"symbol\": \"ETHUSD\",\n    \"timestamp\": 2021-09-14T08:41:21.954Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 31`] = `\n[\n  {\n    \"amount\": 2329,\n    \"exchange\": \"bybit\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"price\": 45171,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2021-09-20T07:45:49.005Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 32`] = `\n[\n  {\n    \"amount\": 0.009,\n    \"exchange\": \"bybit\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"price\": 45212.5,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2021-09-20T07:45:52.732Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 33`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 0.28765,\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"XLMUSDT\",\n    \"timestamp\": 2022-01-13T08:38:52.602687Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 34`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.274,\n        \"price\": 21039,\n      },\n    ],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"symbol\": \"BTCPERP\",\n    \"timestamp\": 2022-06-21T09:36:59.680634Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 35`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 4.651,\n        \"price\": 21203,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"symbol\": \"BTCPERP\",\n    \"timestamp\": 2022-06-21T09:37:59.360632Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 36`] = `\n[\n  {\n    \"amount\": 0.007,\n    \"exchange\": \"bybit\",\n    \"id\": \"7aad7741-f763-5f78-bf43-c38b29a40f67\",\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"price\": 21213,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCPERP\",\n    \"timestamp\": 2022-06-21T09:36:58.524Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 37`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": -0.0009,\n    \"fundingTimestamp\": 2022-06-21T16:00:00.000Z,\n    \"indexPrice\": 21224.72,\n    \"lastPrice\": 21213,\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"markPrice\": 21209.47,\n    \"openInterest\": 183.176,\n    \"predictedFundingRate\": -0.000614,\n    \"symbol\": \"BTCPERP\",\n    \"timestamp\": 2022-06-21T09:37:00.916799Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 38`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": -0.0009,\n    \"fundingTimestamp\": 2022-06-21T16:00:00.000Z,\n    \"indexPrice\": 21224.72,\n    \"lastPrice\": 21213,\n    \"localTimestamp\": 2019-12-14T00:00:01.275Z,\n    \"markPrice\": 21209.46,\n    \"openInterest\": 183.176,\n    \"predictedFundingRate\": -0.000614,\n    \"symbol\": \"BTCPERP\",\n    \"timestamp\": 2022-06-21T09:37:01.013058Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 39`] = `\n[\n  {\n    \"amount\": 5823,\n    \"exchange\": \"bybit\",\n    \"id\": \"0cbf2330-952d-5d03-a462-4bf826c867af\",\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"price\": 28560.5,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2023-04-05T05:50:23.564Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 3,\n    \"exchange\": \"bybit\",\n    \"id\": \"912e56de-9ed6-5f4f-9421-f0ff5a42d84a\",\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"price\": 28560.5,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2023-04-05T05:50:23.564Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 5593,\n    \"exchange\": \"bybit\",\n    \"id\": \"cb558b74-cf72-5157-b53b-93944db336ad\",\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"price\": 28560.5,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2023-04-05T05:50:23.564Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 40`] = `\n[\n  {\n    \"amount\": 0.4,\n    \"exchange\": \"bybit\",\n    \"id\": \"4c7b6bdc-b4a3-5716-9c7b-bbe01dc7072f\",\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"price\": 94.53,\n    \"side\": \"buy\",\n    \"symbol\": \"LTCUSDT\",\n    \"timestamp\": 2023-04-05T10:02:59.983Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 41`] = `\n[\n  {\n    \"askAmount\": 25.433,\n    \"askPrice\": 28552.1,\n    \"bidAmount\": 0.047,\n    \"bidPrice\": 28552,\n    \"exchange\": \"bybit\",\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2023-04-05T05:50:20.717Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 42`] = `\n[\n  {\n    \"askAmount\": 25.433,\n    \"askPrice\": 28552.1,\n    \"bidAmount\": 0.012,\n    \"bidPrice\": 28552,\n    \"exchange\": \"bybit\",\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2023-04-05T05:50:21.137Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 43`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.225,\n        \"price\": 28555.3,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.597,\n        \"price\": 28555.2,\n      },\n    ],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"symbol\": \"BTCPERP\",\n    \"timestamp\": 2023-04-05T05:50:21.591Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 44`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.029,\n        \"price\": 28555.3,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.677,\n        \"price\": 28555.2,\n      },\n    ],\n    \"exchange\": \"bybit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"symbol\": \"BTCPERP\",\n    \"timestamp\": 2023-04-05T05:50:21.651Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 45`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": 2023-04-05T08:00:00.000Z,\n    \"indexPrice\": 28566.94,\n    \"lastPrice\": 28560,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"markPrice\": 28560,\n    \"openInterest\": 449736676,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2023-04-05T05:50:22.577Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 46`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": 2023-04-05T08:00:00.000Z,\n    \"indexPrice\": 28566.94,\n    \"lastPrice\": 28560,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"markPrice\": 28560,\n    \"openInterest\": 449736674,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2023-04-05T05:50:22.776Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 47`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 28566.94,\n    \"lastPrice\": 29026,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"markPrice\": 29023.6,\n    \"openInterest\": 4547176,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSDU23\",\n    \"timestamp\": 2023-04-05T05:50:22.099Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 48`] = `[]`;\n\nexports[`mappers map bybit messages 49`] = `\n[\n  {\n    \"exchange\": \"bybit\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": 2023-04-05T08:00:00.000Z,\n    \"indexPrice\": 28562.25,\n    \"lastPrice\": 28550.7,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"markPrice\": 28552.81,\n    \"openInterest\": 52774.528,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2023-04-05T05:50:21.770Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 50`] = `\n[\n  {\n    \"amount\": 1637,\n    \"exchange\": \"bybit\",\n    \"id\": undefined,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"price\": 0.03803,\n    \"side\": \"sell\",\n    \"symbol\": \"GALAUSDT\",\n    \"timestamp\": 2023-01-09T07:58:11.822Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 51`] = `\n[\n  {\n    \"amount\": 6949,\n    \"exchange\": \"bybit\",\n    \"id\": undefined,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"price\": 0.5149,\n    \"side\": \"buy\",\n    \"symbol\": \"XRPUSD\",\n    \"timestamp\": 2023-04-05T05:52:24.093Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 52`] = `\n[\n  {\n    \"askAmount\": 0.058,\n    \"askPrice\": 27994.4,\n    \"bidAmount\": 0.777,\n    \"bidPrice\": 27991.7,\n    \"exchange\": \"bybit\",\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2023-04-21T15:56:24.425Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map bybit messages 53`] = `[]`;\n\nexports[`mappers map bybit messages 54`] = `\n[\n  {\n    \"amount\": 2846,\n    \"exchange\": \"bybit\",\n    \"id\": undefined,\n    \"localTimestamp\": 2025-02-26T00:00:00.000Z,\n    \"price\": 0.02456,\n    \"side\": \"buy\",\n    \"symbol\": \"PIPPINUSDT\",\n    \"timestamp\": 2025-02-25T10:43:27.110Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map bybit-options messages 1`] = `\n[\n  {\n    \"amount\": 0.01,\n    \"exchange\": \"bybit-options\",\n    \"id\": \"0404c393-8419-5bac-95c3-5fea28404754\",\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"price\": 985,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-28APR23-29500-C\",\n    \"timestamp\": 2023-04-05T00:02:02.081Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map bybit-options messages 2`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [],\n    \"exchange\": \"bybit-options\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"symbol\": \"BTC-30JUN23-45000-P\",\n    \"timestamp\": 2023-04-04T23:59:50.918Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit-options messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 46,\n        \"price\": 1.74,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 50,\n        \"price\": 0.01,\n      },\n    ],\n    \"exchange\": \"bybit-options\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"symbol\": \"SOL-28APR23-30-C\",\n    \"timestamp\": 2023-04-04T23:59:46.355Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit-options messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 1.74,\n      },\n      {\n        \"amount\": 46,\n        \"price\": 1.75,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bybit-options\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"symbol\": \"SOL-28APR23-30-C\",\n    \"timestamp\": 2023-04-04T23:59:59.661Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map bybit-options messages 5`] = `\n[\n  {\n    \"bestAskAmount\": 51,\n    \"bestAskIV\": 2.0007,\n    \"bestAskPrice\": 3.11,\n    \"bestBidAmount\": 10,\n    \"bestBidIV\": 0.6004,\n    \"bestBidPrice\": 0.34,\n    \"delta\": 0.42723543,\n    \"exchange\": \"bybit-options\",\n    \"expirationDate\": 2023-04-28T08:00:00.000Z,\n    \"gamma\": 0.0505193,\n    \"lastPrice\": 1.6,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"markIV\": 1.4674,\n    \"markPrice\": 1.99054639,\n    \"openInterest\": 20,\n    \"optionType\": \"call\",\n    \"rho\": undefined,\n    \"strikePrice\": 24,\n    \"symbol\": \"SOL-28APR23-24-C\",\n    \"theta\": -0.06527514,\n    \"timestamp\": 2023-04-05T00:00:10.254Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"\",\n    \"underlyingPrice\": 20.93,\n    \"vega\": 0.02075941,\n  },\n]\n`;\n\nexports[`mappers map bybit-options messages 6`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": undefined,\n    \"bestAskPrice\": undefined,\n    \"bestBidAmount\": 5,\n    \"bestBidIV\": 1.4744,\n    \"bestBidPrice\": 0.1,\n    \"delta\": -0.00052953,\n    \"exchange\": \"bybit-options\",\n    \"expirationDate\": 2023-06-30T08:00:00.000Z,\n    \"gamma\": 0.00000128,\n    \"lastPrice\": 1,\n    \"localTimestamp\": 2023-04-05T00:00:00.000Z,\n    \"markIV\": 1.5991,\n    \"markPrice\": 0.2548522,\n    \"openInterest\": 231.5,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 200,\n    \"symbol\": \"ETH-30JUN23-200-P\",\n    \"theta\": -0.0159208,\n    \"timestamp\": 2023-04-05T00:00:59.919Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"\",\n    \"underlyingPrice\": 1886.16,\n    \"vega\": 0.01719155,\n  },\n]\n`;\n\nexports[`mappers map coinbase messages 1`] = `\n[\n  {\n    \"amount\": 0.97133855,\n    \"exchange\": \"coinbase\",\n    \"id\": \"216544\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 4.978,\n    \"side\": \"sell\",\n    \"symbol\": \"ETC-GBP\",\n    \"timestamp\": 2019-08-01T00:00:03.816000Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map coinbase messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.432,\n        \"price\": 9202.54,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTC-EUR\",\n    \"timestamp\": 2019-08-01T00:00:03.818000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map coinbase messages 3`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 20.79816319,\n        \"price\": 218.21,\n      },\n    ],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"ETH-USD\",\n    \"timestamp\": 2019-08-01T00:00:03.869000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map coinbase messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 12,\n        \"price\": 0.257175,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 5299,\n        \"price\": 0.247175,\n      },\n    ],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BAT-USDC\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map coinbase messages 5`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.00459825,\n        \"price\": 9222.39,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.5866786,\n        \"price\": 9202.7,\n      },\n    ],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTC-EUR\",\n    \"timestamp\": 2019-08-01T00:00:03.818000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map coinbase messages 6`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.039985,\n        \"price\": 40584.89,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.020416,\n        \"price\": 40533.24,\n      },\n    ],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"YFI-USD\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map coinbase messages 7`] = `\n[\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": 4095,\n    \"bidAmount\": undefined,\n    \"bidPrice\": 4094.99,\n    \"exchange\": \"coinbase\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2019-04-01T00:00:04.540000Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map coinbase messages 8`] = `\n[\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": 58800.01,\n    \"bidAmount\": undefined,\n    \"bidPrice\": 58800,\n    \"exchange\": \"coinbase\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2021-04-01T00:00:01.618503Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map coinbase messages 9`] = `\n[\n  {\n    \"askAmount\": 0.18528568,\n    \"askPrice\": 17167.76,\n    \"bidAmount\": 0.6154089,\n    \"bidPrice\": 17165.15,\n    \"exchange\": \"coinbase\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2022-12-01T00:00:00.122581Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map coinflex messages 1`] = `[]`;\n\nexports[`mappers map coinflex messages 2`] = `[]`;\n\nexports[`mappers map coinflex messages 3`] = `[]`;\n\nexports[`mappers map coinflex messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 9241,\n      },\n      {\n        \"amount\": 0.967,\n        \"price\": 9243.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.46,\n        \"price\": 9239.9,\n      },\n      {\n        \"amount\": 0.5,\n        \"price\": 9238.1,\n      },\n    ],\n    \"exchange\": \"coinflex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2020-07-14T00:00:00.290Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map coinflex messages 5`] = `\n[\n  {\n    \"amount\": 0.4999,\n    \"exchange\": \"coinflex\",\n    \"id\": \"160061323905884640\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 9237.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USD-SWAP-LIN\",\n    \"timestamp\": 2020-07-14T00:00:56.487Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map coinflex messages 6`] = `\n[\n  {\n    \"exchange\": \"coinflex\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 9237.5,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"markPrice\": 9225.5,\n    \"openInterest\": 95.86840001,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-SWAP-LIN\",\n    \"timestamp\": 2020-07-14T00:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map coinflex messages 7`] = `\n[\n  {\n    \"amount\": 0.258,\n    \"exchange\": \"coinflex\",\n    \"id\": \"160061323905902676\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 9215,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USD-SWAP-LIN\",\n    \"timestamp\": 2020-07-14T15:00:01.694Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map coinflex messages 8`] = `\n[\n  {\n    \"amount\": 0.817,\n    \"exchange\": \"coinflex\",\n    \"id\": \"160061323905902717\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 9218,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USD-SWAP-LIN\",\n    \"timestamp\": 2020-07-14T15:00:49.445Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map coinflex messages 9`] = `[]`;\n\nexports[`mappers map coinflex messages 10`] = `\n[\n  {\n    \"exchange\": \"coinflex\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 83,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 0,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-SPR-QP-LIN\",\n    \"timestamp\": 2020-07-14T13:36:56.647Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 60.58,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"cryptofacilities\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"FI_LTCUSD_190426\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 2`] = `\n[\n  {\n    \"exchange\": \"cryptofacilities\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 60.31,\n    \"lastPrice\": 60.69,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 60.61,\n    \"openInterest\": 1692330,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"FI_LTCUSD_190628\",\n    \"timestamp\": 2019-04-01T00:00:00.684Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 150,\n    \"askPrice\": 60.62,\n    \"bidAmount\": 10000,\n    \"bidPrice\": 60.57,\n    \"exchange\": \"cryptofacilities\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"FI_LTCUSD_190628\",\n    \"timestamp\": 2019-04-01T00:00:00.684Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 3`] = `\n[\n  {\n    \"exchange\": \"cryptofacilities\",\n    \"fundingRate\": 0.000001739491032443,\n    \"fundingTimestamp\": 2019-04-01T04:00:00.000Z,\n    \"indexPrice\": 60.31,\n    \"lastPrice\": 60.35,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 60.38,\n    \"openInterest\": 631360,\n    \"predictedFundingRate\": 0.000001739491032443,\n    \"symbol\": \"PI_LTCUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.695Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 20000,\n    \"askPrice\": 60.38,\n    \"bidAmount\": 10000,\n    \"bidPrice\": 60.35,\n    \"exchange\": \"cryptofacilities\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"PI_LTCUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.695Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 4`] = `\n[\n  {\n    \"amount\": 3,\n    \"exchange\": \"cryptofacilities\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 4088.5,\n    \"side\": \"buy\",\n    \"symbol\": \"FI_XBTUSD_190426\",\n    \"timestamp\": 2019-04-01T00:00:02.518Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 5`] = `\n[\n  {\n    \"amount\": 166,\n    \"exchange\": \"cryptofacilities\",\n    \"id\": \"06842286-3a57-412c-8cb5-b61db36903d3\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 9680,\n    \"side\": \"sell\",\n    \"symbol\": \"FI_XBTUSD_190927\",\n    \"timestamp\": 2019-09-01T00:00:42.739Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 6`] = `\n[\n  {\n    \"exchange\": \"cryptofacilities\",\n    \"fundingRate\": -8.92730506785e-7,\n    \"fundingTimestamp\": 2019-09-01T04:00:00.000Z,\n    \"indexPrice\": 64.33,\n    \"lastPrice\": 64.34,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 64.295,\n    \"openInterest\": 2074134,\n    \"predictedFundingRate\": -0.000001509794776119,\n    \"symbol\": \"PI_LTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:52.217Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 7,\n    \"askPrice\": 64.28,\n    \"bidAmount\": 2996,\n    \"bidPrice\": 64.27,\n    \"exchange\": \"cryptofacilities\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"PI_LTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:52.217Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 7`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 64.28,\n      },\n      {\n        \"amount\": 9216,\n        \"price\": 64.31,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 2978,\n        \"price\": 64.27,\n      },\n      {\n        \"amount\": 5000,\n        \"price\": 64.26,\n      },\n    ],\n    \"exchange\": \"cryptofacilities\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"PI_LTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:00.518Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 8`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 14912,\n        \"price\": 64.41,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"cryptofacilities\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"PI_LTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:42.122Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 9`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 64.24,\n      },\n    ],\n    \"exchange\": \"cryptofacilities\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"PI_LTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:42.131Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 10`] = `\n[\n  {\n    \"amount\": 12000,\n    \"exchange\": \"cryptofacilities\",\n    \"id\": \"3ee209b8-bc9f-4ed5-965b-8c6208b26411\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 0.1736,\n    \"side\": \"sell\",\n    \"symbol\": \"PI_XRPUSD\",\n    \"timestamp\": 2020-07-01T00:06:05.283Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 12000,\n    \"exchange\": \"cryptofacilities\",\n    \"id\": \"3ee209b8-bc9f-4ed5-965b-8c6208b26411\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 0.1736,\n    \"side\": \"sell\",\n    \"symbol\": \"PI_XRPUSD\",\n    \"timestamp\": 2020-07-01T00:06:05.283Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 11`] = `\n[\n  {\n    \"amount\": 250,\n    \"exchange\": \"cryptofacilities\",\n    \"id\": \"e7f3a144-5c04-4ed6-999e-5922cd0b6160\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 231.6,\n    \"side\": \"buy\",\n    \"symbol\": \"PI_ETHUSD\",\n    \"timestamp\": 2020-07-01T16:27:33.613Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 250,\n    \"exchange\": \"cryptofacilities\",\n    \"id\": \"e7f3a144-5c04-4ed6-999e-5922cd0b6160\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 231.6,\n    \"side\": \"buy\",\n    \"symbol\": \"PI_ETHUSD\",\n    \"timestamp\": 2020-07-01T16:27:33.613Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 12`] = `\n[\n  {\n    \"exchange\": \"cryptofacilities\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 141.16,\n    \"lastPrice\": 141.8,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 141.45,\n    \"openInterest\": 393129,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"FI_ETHUSD_190426\",\n    \"timestamp\": 2019-03-31T23:59:58.897Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 5873,\n    \"askPrice\": 141.5,\n    \"bidAmount\": 10000,\n    \"bidPrice\": 141.4,\n    \"exchange\": \"cryptofacilities\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"FI_ETHUSD_190426\",\n    \"timestamp\": 2019-03-31T23:59:58.897Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 13`] = `\n[\n  {\n    \"exchange\": \"cryptofacilities\",\n    \"fundingRate\": 7.94427729016e-7,\n    \"fundingTimestamp\": 2021-04-01T04:00:00.000Z,\n    \"indexPrice\": 196.82,\n    \"lastPrice\": 196.85,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 197.05,\n    \"openInterest\": 2239386,\n    \"predictedFundingRate\": 7.94427729016e-7,\n    \"symbol\": \"PI_LTCUSD\",\n    \"timestamp\": 2021-04-01T00:00:00.598Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 839,\n    \"askPrice\": 197.21,\n    \"bidAmount\": 2875,\n    \"bidPrice\": 196.89,\n    \"exchange\": \"cryptofacilities\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"PI_LTCUSD\",\n    \"timestamp\": 2021-04-01T00:00:00.598Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 14`] = `\n[\n  {\n    \"askAmount\": 0,\n    \"askPrice\": 0,\n    \"bidAmount\": 0,\n    \"bidPrice\": 0,\n    \"exchange\": \"cryptofacilities\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"PF_SUIUSD\",\n    \"timestamp\": 2023-05-03T12:20:02.169Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map cryptofacilities messages 15`] = `\n[\n  {\n    \"exchange\": \"cryptofacilities\",\n    \"fundingRate\": -0.000015670191666667,\n    \"fundingTimestamp\": 2023-04-01T00:00:00.000Z,\n    \"indexPrice\": 123.91,\n    \"lastPrice\": 123.8,\n    \"localTimestamp\": 2022-09-30T00:00:01.275Z,\n    \"markPrice\": 123.83534812969,\n    \"openInterest\": 488789,\n    \"predictedFundingRate\": -0.000017773051388889,\n    \"symbol\": \"PI_BCHUSD\",\n    \"timestamp\": 2023-03-31T23:59:58.986Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 1000,\n    \"askPrice\": 123.9,\n    \"bidAmount\": 30410,\n    \"bidPrice\": 123.8,\n    \"exchange\": \"cryptofacilities\",\n    \"localTimestamp\": 2022-09-30T00:00:01.275Z,\n    \"symbol\": \"PI_BCHUSD\",\n    \"timestamp\": 2023-03-31T23:59:58.986Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 1`] = `[]`;\n\nexports[`mappers map delta messages 2`] = `[]`;\n\nexports[`mappers map delta messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 11100,\n        \"price\": 9522.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 449313,\n        \"price\": 9522,\n      },\n    ],\n    \"exchange\": \"delta\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2020-06-16T23:59:59.719000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 4`] = `\n[\n  {\n    \"exchange\": \"delta\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 9524.170821,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-06-16T23:59:57.873000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 5`] = `\n[\n  {\n    \"exchange\": \"delta\",\n    \"fundingRate\": -0.01,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 9524.170821,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-06-16T23:59:57.873000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 6`] = `\n[\n  {\n    \"amount\": 4662,\n    \"exchange\": \"delta\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 9522,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-06-17T00:00:02.423123Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"exchange\": \"delta\",\n    \"fundingRate\": -0.01,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 9522,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 9524.170821,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-06-17T00:00:02.423123Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 7`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 8,\n        \"price\": 12536.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 85,\n      },\n    ],\n    \"exchange\": \"delta\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 8`] = `\n[\n  {\n    \"exchange\": \"delta\",\n    \"fundingRate\": 0.08354928018352789,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"XTZBTC\",\n    \"timestamp\": 2020-07-01T00:00:48.381531Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 9`] = `\n[\n  {\n    \"exchange\": \"delta\",\n    \"fundingRate\": 0.010000000000000002,\n    \"fundingTimestamp\": 2020-07-22T08:00:00.000000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0.01,\n    \"symbol\": \"LINKUSDT\",\n    \"timestamp\": 2020-07-22T00:00:26.629157Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 10`] = `\n[\n  {\n    \"exchange\": \"delta\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": 2020-07-10T16:00:00.000000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"ETHBTC\",\n    \"timestamp\": 2020-07-10T15:55:59.970784Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 11`] = `[]`;\n\nexports[`mappers map delta messages 12`] = `\n[\n  {\n    \"amount\": 46,\n    \"exchange\": \"delta\",\n    \"id\": undefined,\n    \"localTimestamp\": 2020-10-14T00:00:01.275Z,\n    \"price\": 50.34,\n    \"side\": \"sell\",\n    \"symbol\": \"LTCUSDT\",\n    \"timestamp\": 2020-10-13T10:34:11.855645Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"exchange\": \"delta\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 50.34,\n    \"localTimestamp\": 2020-10-14T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"LTCUSDT\",\n    \"timestamp\": 2020-10-13T10:34:11.855645Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 13`] = `[]`;\n\nexports[`mappers map delta messages 14`] = `\n[\n  {\n    \"exchange\": \"delta\",\n    \"fundingRate\": 0.01,\n    \"fundingTimestamp\": 2020-10-13T16:00:00.000000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2020-10-14T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0.010000000000000002,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2020-10-13T10:34:07.941647Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 15`] = `\n[\n  {\n    \"exchange\": \"delta\",\n    \"fundingRate\": 0.01,\n    \"fundingTimestamp\": 2020-10-13T16:00:00.000000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2020-10-14T00:00:01.275Z,\n    \"markPrice\": 11536.746127,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0.010000000000000002,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2020-10-13T10:34:12.946976Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 16`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 344.327,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 344.191,\n      },\n    ],\n    \"exchange\": \"delta\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2020-10-14T00:00:01.275Z,\n    \"symbol\": \"AAVEUSDT\",\n    \"timestamp\": 2021-03-28T17:00:10.982556Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 17`] = `\n[\n  {\n    \"amount\": 215.45,\n    \"exchange\": \"delta\",\n    \"id\": undefined,\n    \"localTimestamp\": 2020-10-14T00:00:01.275Z,\n    \"price\": 0.2,\n    \"side\": \"buy\",\n    \"symbol\": \"DETO_USDT\",\n    \"timestamp\": 2021-03-31T14:04:59.982823Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"exchange\": \"delta\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 0.2,\n    \"localTimestamp\": 2020-10-14T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"DETO_USDT\",\n    \"timestamp\": 2021-03-31T14:04:59.982823Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 18`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1164,\n        \"price\": 89.6,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 900,\n        \"price\": 87,\n      },\n      {\n        \"amount\": 3500,\n        \"price\": 86.55,\n      },\n    ],\n    \"exchange\": \"delta\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2023-04-01T00:00:00.000Z,\n    \"symbol\": \"C-ETH-1900-280423\",\n    \"timestamp\": 2023-04-01T00:00:03.021223Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 19`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1836,\n        \"price\": 704.8,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 668.3,\n      },\n    ],\n    \"exchange\": \"delta\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2023-04-01T00:00:00.000Z,\n    \"symbol\": \"C-ETH-1900-280423\",\n    \"timestamp\": 2023-04-01T00:00:03.771239Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 20`] = `\n[\n  {\n    \"askAmount\": 1950,\n    \"askPrice\": 4964.5,\n    \"bidAmount\": 4356,\n    \"bidPrice\": 4802,\n    \"exchange\": \"delta\",\n    \"localTimestamp\": 2023-04-01T00:00:00.000Z,\n    \"symbol\": \"P-BTC-33000-210423\",\n    \"timestamp\": 2023-04-01T00:00:03.966299Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map delta messages 21`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 3894,\n        \"price\": 805,\n      },\n      {\n        \"amount\": 4697,\n        \"price\": 809,\n      },\n      {\n        \"amount\": 7091,\n        \"price\": 819,\n      },\n      {\n        \"amount\": 10706,\n        \"price\": 841,\n      },\n      {\n        \"amount\": 10022,\n        \"price\": 877,\n      },\n      {\n        \"amount\": 6143,\n        \"price\": 913,\n      },\n      {\n        \"amount\": 7047,\n        \"price\": 948,\n      },\n      {\n        \"amount\": 8084,\n        \"price\": 994,\n      },\n      {\n        \"amount\": 9274,\n        \"price\": 1055,\n      },\n      {\n        \"amount\": 10639,\n        \"price\": 1135,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6490,\n        \"price\": 772,\n      },\n      {\n        \"amount\": 7828,\n        \"price\": 767,\n      },\n      {\n        \"amount\": 11819,\n        \"price\": 757,\n      },\n      {\n        \"amount\": 17844,\n        \"price\": 736,\n      },\n      {\n        \"amount\": 16703,\n        \"price\": 699,\n      },\n      {\n        \"amount\": 10238,\n        \"price\": 663,\n      },\n      {\n        \"amount\": 11745,\n        \"price\": 628,\n      },\n      {\n        \"amount\": 13473,\n        \"price\": 582,\n      },\n      {\n        \"amount\": 15457,\n        \"price\": 521,\n      },\n      {\n        \"amount\": 17732,\n        \"price\": 441,\n      },\n      {\n        \"amount\": 15000,\n        \"price\": 0.1,\n      },\n    ],\n    \"exchange\": \"delta\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2023-04-01T00:00:00.000Z,\n    \"symbol\": \"C-BTC-27700-010423\",\n    \"timestamp\": 2023-04-01T00:13:19.563Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 1`] = `\n[\n  {\n    \"amount\": 2000,\n    \"exchange\": \"deribit\",\n    \"id\": \"39355898\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"price\": 9598.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-09-01T00:00:22.565Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 50,\n    \"exchange\": \"deribit\",\n    \"id\": \"39355899\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"price\": 9598.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-09-01T00:00:22.565Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 2`] = `[]`;\n\nexports[`mappers map deribit messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 179803,\n        \"price\": 218.6,\n      },\n      {\n        \"amount\": 7887,\n        \"price\": 218.65,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1895,\n        \"price\": 217.8,\n      },\n      {\n        \"amount\": 712,\n        \"price\": 217.75,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"ETH-PERPETUAL\",\n    \"timestamp\": 2019-08-01T00:00:00.273Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 64903,\n        \"price\": 219.2,\n      },\n      {\n        \"amount\": 19343,\n        \"price\": 219.1,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 217.8,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"ETH-PERPETUAL\",\n    \"timestamp\": 2019-08-01T00:00:54.272Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 5`] = `\n[\n  {\n    \"exchange\": \"deribit\",\n    \"fundingRate\": 0,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 10091.15,\n    \"lastPrice\": 10095.5,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markPrice\": 10094.1,\n    \"openInterest\": 66128281,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-08-01T00:00:04.229Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 250,\n    \"askPrice\": 10095.5,\n    \"bidAmount\": 7000,\n    \"bidPrice\": 10095,\n    \"exchange\": \"deribit\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-08-01T00:00:04.229Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 6`] = `\n[\n  {\n    \"exchange\": \"deribit\",\n    \"fundingRate\": 0,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 8305.94,\n    \"lastPrice\": 8304.5,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markPrice\": 8304.39,\n    \"openInterest\": 84844461,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-10-01T00:00:03.897Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 5260,\n    \"askPrice\": 8304.5,\n    \"bidAmount\": 267900,\n    \"bidPrice\": 8304,\n    \"exchange\": \"deribit\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-10-01T00:00:03.897Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 7`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": 500,\n    \"bestAskPrice\": undefined,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": undefined,\n    \"bestBidPrice\": undefined,\n    \"delta\": 0,\n    \"exchange\": \"deribit\",\n    \"expirationDate\": 2020-06-08T08:00:00.000Z,\n    \"gamma\": 0,\n    \"lastPrice\": 0.0005,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markIV\": 70,\n    \"markPrice\": 0,\n    \"openInterest\": 0,\n    \"optionType\": \"put\",\n    \"rho\": 0,\n    \"strikePrice\": 8750,\n    \"symbol\": \"BTC-8JUN20-8750-P\",\n    \"theta\": 0,\n    \"timestamp\": 2020-06-08T08:00:00.048Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"SYN.BTC-8JUN20\",\n    \"underlyingPrice\": 9724.48,\n    \"vega\": 0,\n  },\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": undefined,\n    \"bidAmount\": undefined,\n    \"bidPrice\": undefined,\n    \"exchange\": \"deribit\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"BTC-8JUN20-8750-P\",\n    \"timestamp\": 2020-06-08T08:00:00.048Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 8`] = `\n[\n  {\n    \"bestAskAmount\": 4.8,\n    \"bestAskIV\": 66.9,\n    \"bestAskPrice\": 0.04,\n    \"bestBidAmount\": 15.4,\n    \"bestBidIV\": 58.39,\n    \"bestBidPrice\": 0.0365,\n    \"delta\": 0.62959,\n    \"exchange\": \"deribit\",\n    \"expirationDate\": 2020-06-05T08:00:00.000Z,\n    \"gamma\": 0.00058,\n    \"lastPrice\": 0.038,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markIV\": 63.21,\n    \"markPrice\": 0.03847784,\n    \"openInterest\": 533.2,\n    \"optionType\": \"call\",\n    \"rho\": 0.66242,\n    \"strikePrice\": 9250,\n    \"symbol\": \"BTC-5JUN20-9250-C\",\n    \"theta\": -28.34113,\n    \"timestamp\": 2020-06-01T00:00:52.595Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"SYN.BTC-5JUN20\",\n    \"underlyingPrice\": 9440.73,\n    \"vega\": 3.88497,\n  },\n  {\n    \"askAmount\": 4.8,\n    \"askPrice\": 0.04,\n    \"bidAmount\": 15.4,\n    \"bidPrice\": 0.0365,\n    \"exchange\": \"deribit\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"BTC-5JUN20-9250-C\",\n    \"timestamp\": 2020-06-01T00:00:52.595Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 9`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": undefined,\n    \"bestAskPrice\": undefined,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": undefined,\n    \"bestBidPrice\": undefined,\n    \"delta\": -0.98566,\n    \"exchange\": \"deribit\",\n    \"expirationDate\": 2020-06-05T08:00:00.000Z,\n    \"gamma\": 0.00122,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markIV\": 118.63,\n    \"markPrice\": 0.33859,\n    \"openInterest\": 0,\n    \"optionType\": \"put\",\n    \"rho\": -0.03643,\n    \"strikePrice\": 310,\n    \"symbol\": \"ETH-5JUN20-310-P\",\n    \"theta\": -0.12594,\n    \"timestamp\": 2020-05-31T23:59:57.073Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"SYN.ETH-5JUN20\",\n    \"underlyingPrice\": 231.7,\n    \"vega\": 0.0092,\n  },\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": undefined,\n    \"bidAmount\": undefined,\n    \"bidPrice\": undefined,\n    \"exchange\": \"deribit\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"ETH-5JUN20-310-P\",\n    \"timestamp\": 2020-05-31T23:59:57.073Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 10`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": undefined,\n    \"bestAskPrice\": undefined,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": undefined,\n    \"bestBidPrice\": undefined,\n    \"delta\": 0.03105,\n    \"exchange\": \"deribit\",\n    \"expirationDate\": 2020-06-10T08:00:00.000Z,\n    \"gamma\": 0.00539,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markIV\": 72.96,\n    \"markPrice\": 0.000632,\n    \"openInterest\": 0,\n    \"optionType\": \"call\",\n    \"rho\": 0.00039,\n    \"strikePrice\": 270,\n    \"symbol\": \"ETH-10JUN20-270-C\",\n    \"theta\": -0.15436,\n    \"timestamp\": 2020-06-08T09:24:58.178Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"SYN.ETH-10JUN20\",\n    \"underlyingPrice\": 244.14,\n    \"vega\": 0.01246,\n  },\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": undefined,\n    \"bidAmount\": undefined,\n    \"bidPrice\": undefined,\n    \"exchange\": \"deribit\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"ETH-10JUN20-270-C\",\n    \"timestamp\": 2020-06-08T09:24:58.178Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 11`] = `\n[\n  {\n    \"amount\": 1120,\n    \"exchange\": \"deribit\",\n    \"id\": \"66460463\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"price\": 4469.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2020-03-13T00:07:24.032Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1120,\n    \"exchange\": \"deribit\",\n    \"id\": \"66460463\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"price\": 4469.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2020-03-13T00:07:24.032Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 12`] = `\n[\n  {\n    \"amount\": 2500,\n    \"exchange\": \"deribit\",\n    \"id\": \"66460626\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"price\": 4458.5,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2020-03-13T00:07:47.675Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2500,\n    \"exchange\": \"deribit\",\n    \"id\": \"66460626\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"price\": 4458.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2020-03-13T00:07:47.675Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 13`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 93,\n        \"price\": 0.037,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 93,\n        \"price\": 0.019,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"ETH-10SEP21-3350-P\",\n    \"timestamp\": 2021-09-07T15:00:12.566Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 14`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 34,\n        \"price\": 7.562,\n      },\n      {\n        \"amount\": 329,\n        \"price\": 7.561,\n      },\n      {\n        \"amount\": 401,\n        \"price\": 7.56,\n      },\n      {\n        \"amount\": 133,\n        \"price\": 7.559,\n      },\n      {\n        \"amount\": 660,\n        \"price\": 7.558,\n      },\n    ],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"LINK_USDC-PERPETUAL\",\n    \"timestamp\": 2022-05-31T23:59:59.955Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 15`] = `\n[\n  {\n    \"exchange\": \"deribit\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 21478.45,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markPrice\": 0.1922,\n    \"openInterest\": 0,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-STRD-30SEP22-20000\",\n    \"timestamp\": 2022-08-23T17:03:00.291Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": undefined,\n    \"bidAmount\": undefined,\n    \"bidPrice\": undefined,\n    \"exchange\": \"deribit\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"BTC-STRD-30SEP22-20000\",\n    \"timestamp\": 2022-08-23T17:03:00.291Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 16`] = `\n[\n  {\n    \"exchange\": \"deribit\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 19320.68,\n    \"lastPrice\": -13.5,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markPrice\": 10.12,\n    \"openInterest\": 0,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-FS-30SEP22_PERP\",\n    \"timestamp\": 2022-09-09T00:00:59.203Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 300000,\n    \"askPrice\": -5,\n    \"bidAmount\": 300000,\n    \"bidPrice\": -7,\n    \"exchange\": \"deribit\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"BTC-FS-30SEP22_PERP\",\n    \"timestamp\": 2022-09-09T00:00:59.203Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 17`] = `\n[\n  {\n    \"exchange\": \"deribit\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 19322.48,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markPrice\": 0.0053,\n    \"openInterest\": 0,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-CSR12-16SEP22-21000_23000\",\n    \"timestamp\": 2022-09-09T00:00:56.186Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 18,\n    \"askPrice\": 0.008,\n    \"bidAmount\": 18,\n    \"bidPrice\": 0.003,\n    \"exchange\": \"deribit\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"BTC-CSR12-16SEP22-21000_23000\",\n    \"timestamp\": 2022-09-09T00:00:56.186Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map deribit messages 18`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": undefined,\n    \"bestAskPrice\": undefined,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": undefined,\n    \"bestBidPrice\": undefined,\n    \"delta\": 0.7869,\n    \"exchange\": \"deribit\",\n    \"expirationDate\": 2024-03-09T08:00:00.000Z,\n    \"gamma\": 1.70098,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"markIV\": 209.64,\n    \"markPrice\": 0.139,\n    \"openInterest\": 0,\n    \"optionType\": \"call\",\n    \"rho\": 0.00004,\n    \"strikePrice\": 1.02,\n    \"symbol\": \"MATIC_USDC-9MAR24-1D02-C\",\n    \"theta\": -0.01323,\n    \"timestamp\": 2024-03-07T10:57:00.064Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"index_price\",\n    \"underlyingPrice\": 1.1367,\n    \"vega\": 0.00024,\n  },\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": undefined,\n    \"bidAmount\": undefined,\n    \"bidPrice\": undefined,\n    \"exchange\": \"deribit\",\n    \"localTimestamp\": 2019-06-01T00:00:28.619Z,\n    \"symbol\": \"MATIC_USDC-9MAR24-1D02-C\",\n    \"timestamp\": 2024-03-07T10:57:00.064Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map dydx messages 1`] = `[]`;\n\nexports[`mappers map dydx messages 2`] = `\n[\n  {\n    \"amount\": 0.075,\n    \"exchange\": \"dydx\",\n    \"id\": undefined,\n    \"localTimestamp\": 2021-05-01T00:00:37.000Z,\n    \"price\": 57696,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2021-05-01T00:00:34.046Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.425,\n    \"exchange\": \"dydx\",\n    \"id\": undefined,\n    \"localTimestamp\": 2021-05-01T00:00:37.000Z,\n    \"price\": 57673,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2021-05-01T00:00:34.046Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map dydx messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 20,\n        \"price\": 7,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 50,\n        \"price\": 5,\n      },\n    ],\n    \"exchange\": \"dydx\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2021-05-01T00:00:37.000Z,\n    \"symbol\": \"1INCH-USD\",\n    \"timestamp\": 2021-05-01T00:00:37.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map dydx messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 3000,\n        \"price\": 5.664,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 5.666,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"dydx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-05-01T00:00:37.000Z,\n    \"symbol\": \"1INCH-USD\",\n    \"timestamp\": 2021-05-01T00:00:37.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map dydx messages 5`] = `[]`;\n\nexports[`mappers map dydx messages 6`] = `\n[\n  {\n    \"exchange\": \"dydx\",\n    \"fundingRate\": 0.000058726,\n    \"fundingTimestamp\": 2021-05-01T00:00:00.000Z,\n    \"indexPrice\": 57794.7,\n    \"lastPrice\": 57673,\n    \"localTimestamp\": 2021-05-01T00:00:37.000Z,\n    \"markPrice\": 57880.52,\n    \"openInterest\": 101.2026,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2021-05-01T00:00:37.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map dydx messages 7`] = `\n[\n  {\n    \"exchange\": \"dydx\",\n    \"fundingRate\": 0.000058726,\n    \"fundingTimestamp\": 2021-05-01T00:00:00.000Z,\n    \"indexPrice\": 57794.7,\n    \"lastPrice\": 57673,\n    \"localTimestamp\": 2021-05-01T00:00:37.000Z,\n    \"markPrice\": 57880.52,\n    \"openInterest\": 101.2776,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2021-05-01T00:00:37.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map dydx messages 8`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 2531.2,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"dydx\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2021-05-01T00:00:37.000Z,\n    \"symbol\": \"ETH-USD\",\n    \"timestamp\": 2021-05-01T00:00:37.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map dydx messages 9`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 2.5,\n        \"price\": 2531.2,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"dydx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-05-01T00:00:37.000Z,\n    \"symbol\": \"ETH-USD\",\n    \"timestamp\": 2021-05-01T00:00:37.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map dydx messages 10`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 2531.2,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 9.35,\n        \"price\": 2531.2,\n      },\n    ],\n    \"exchange\": \"dydx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-05-01T00:00:37.000Z,\n    \"symbol\": \"ETH-USD\",\n    \"timestamp\": 2021-05-01T00:00:37.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map dydx messages 11`] = `\n[\n  {\n    \"amount\": 2.5,\n    \"exchange\": \"dydx\",\n    \"id\": undefined,\n    \"localTimestamp\": 2021-05-01T00:00:37.000Z,\n    \"price\": 2531.2,\n    \"side\": \"buy\",\n    \"symbol\": \"ETH-USD\",\n    \"timestamp\": 2021-06-16T04:32:06.470Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map ftx messages 1`] = `[]`;\n\nexports[`mappers map ftx messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 20.1695,\n        \"price\": 9807.75,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 15.5629,\n        \"price\": 9805,\n      },\n    ],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTC-1227\",\n    \"timestamp\": 2019-09-01T00:00:01.328941Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map ftx messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 21.0125,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BNB-PERP\",\n    \"timestamp\": 2019-09-01T00:00:05.667879Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map ftx messages 4`] = `\n[\n  {\n    \"amount\": 0.03,\n    \"exchange\": \"ftx\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 64.33,\n    \"side\": \"sell\",\n    \"symbol\": \"LTC-PERP\",\n    \"timestamp\": 2019-09-01T00:00:12.659525Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map ftx messages 5`] = `\n[\n  {\n    \"amount\": 0.13,\n    \"exchange\": \"ftx\",\n    \"id\": \"1139499\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 181.86,\n    \"side\": \"sell\",\n    \"symbol\": \"ETH-PERP\",\n    \"timestamp\": 2019-10-01T00:00:21.260951Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map ftx messages 6`] = `\n[\n  {\n    \"exchange\": \"ftx\",\n    \"fundingRate\": 0,\n    \"fundingTimestamp\": 2020-05-12T13:00:00.000Z,\n    \"indexPrice\": 8790.512800652727,\n    \"lastPrice\": 8791,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 8791,\n    \"openInterest\": 11471.4921,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-PERP\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map ftx messages 7`] = `\n[\n  {\n    \"exchange\": \"ftx\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 8790.512800652727,\n    \"lastPrice\": 266.5,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 266.5,\n    \"openInterest\": 337.1438,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-MOVE-0512\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map ftx messages 8`] = `\n[\n  {\n    \"exchange\": \"ftx\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 0.17007,\n    \"lastPrice\": 0.17051,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"markPrice\": 0.17058,\n    \"openInterest\": 608187,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BRZ-0626\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map ftx messages 9`] = `\n[\n  {\n    \"amount\": 0.0149,\n    \"exchange\": \"ftx\",\n    \"id\": \"114724653\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 10683.5,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-PERP\",\n    \"timestamp\": 2020-09-15T00:02:05.787437Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.0149,\n    \"exchange\": \"ftx\",\n    \"id\": \"114724653\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 10683.5,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-PERP\",\n    \"timestamp\": 2020-09-15T00:02:05.787437Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map ftx messages 10`] = `\n[\n  {\n    \"askAmount\": 0.0048,\n    \"askPrice\": 54411,\n    \"bidAmount\": 0.0919,\n    \"bidPrice\": 54346,\n    \"exchange\": \"ftx\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTC/EUR\",\n    \"timestamp\": 2021-10-26T00:00:00.086694Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map ftx messages 11`] = `[]`;\n\nexports[`mappers map ftx messages 12`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 5.9795,\n        \"price\": 36043,\n      },\n      {\n        \"amount\": 9.7243,\n        \"price\": 36046,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 2.3987,\n        \"price\": 36006,\n      },\n      {\n        \"amount\": 8.8432,\n        \"price\": 35958,\n      },\n    ],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTC-PERP\",\n    \"timestamp\": 2022-05-06T21:27:15.285900Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map ftx us messages 1`] = `[]`;\n\nexports[`mappers map ftx us messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 2.393,\n        \"price\": 231.09,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 2.456,\n        \"price\": 231.08,\n      },\n    ],\n    \"exchange\": \"ftx-us\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"ETH/USD\",\n    \"timestamp\": 2020-06-16T00:00:01.272778Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map ftx us messages 3`] = `[]`;\n\nexports[`mappers map ftx us messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 3.1373,\n        \"price\": 9400,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3.4959,\n        \"price\": 9398.5,\n      },\n    ],\n    \"exchange\": \"ftx-us\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BTC/USD\",\n    \"timestamp\": 2020-06-16T01:39:02.221954Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map ftx us messages 5`] = `\n[\n  {\n    \"amount\": 0.031,\n    \"exchange\": \"ftx-us\",\n    \"id\": \"1711\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 9469,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC/USD\",\n    \"timestamp\": 2020-06-17T06:31:19.399582Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map gate-io messages 1`] = `[]`;\n\nexports[`mappers map gate-io messages 2`] = `\n[\n  {\n    \"amount\": 0.0019152098,\n    \"exchange\": \"gate-io\",\n    \"id\": \"259066876\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 9137.38,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2020-07-01T00:00:00.655988Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.002736014,\n    \"exchange\": \"gate-io\",\n    \"id\": \"259066877\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 9137.38,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2020-07-01T00:00:00.775122Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map gate-io messages 3`] = `[]`;\n\nexports[`mappers map gate-io messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 14.4232,\n        \"price\": 10.95,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 26.681457246,\n        \"price\": 10.53,\n      },\n    ],\n    \"exchange\": \"gate-io\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"BTG_USDT\",\n    \"timestamp\": 2020-07-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io messages 5`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1134158.88940972,\n        \"price\": 0.01631,\n      },\n      {\n        \"amount\": 41254.93309,\n        \"price\": 0.01625,\n      },\n    ],\n    \"exchange\": \"gate-io\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"TRX_USDT\",\n    \"timestamp\": 2020-07-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io messages 6`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.002,\n        \"price\": 17132.2,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.0057,\n        \"price\": 17131,\n      },\n    ],\n    \"exchange\": \"gate-io\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2022-12-01T02:03:02.101Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io messages 7`] = `\n[\n  {\n    \"amount\": 89.238,\n    \"exchange\": \"gate-io\",\n    \"id\": \"5541729598\",\n    \"localTimestamp\": 2023-04-29T00:00:00.275Z,\n    \"price\": 0.00000644,\n    \"side\": \"buy\",\n    \"symbol\": \"TLOS_BTC\",\n    \"timestamp\": 2023-04-28T13:37:26.123Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map gate-io messages 8`] = `\n[\n  {\n    \"askAmount\": 10,\n    \"askPrice\": 0.010366,\n    \"bidAmount\": 0.001,\n    \"bidPrice\": 0.010326,\n    \"exchange\": \"gate-io\",\n    \"localTimestamp\": 2023-04-29T00:00:00.275Z,\n    \"symbol\": \"ETC_ETH\",\n    \"timestamp\": 2023-04-28T13:37:26.131Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map gate-io messages 9`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.0068,\n        \"price\": 29303,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.2483,\n        \"price\": 29302.9,\n      },\n    ],\n    \"exchange\": \"gate-io\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2023-04-29T00:00:00.275Z,\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2023-04-28T13:37:32.253Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io messages 10`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.5124,\n        \"price\": 29291.4,\n      },\n    ],\n    \"exchange\": \"gate-io\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2023-04-29T00:00:00.275Z,\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2023-04-28T13:37:25.398Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io messages 11`] = `[]`;\n\nexports[`mappers map gate-io messages 12`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.631155,\n        \"price\": 115765.2,\n      },\n      {\n        \"amount\": 0.001534,\n        \"price\": 115765.9,\n      },\n      {\n        \"amount\": 0.005014,\n        \"price\": 115769.4,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.337839,\n        \"price\": 115765.1,\n      },\n      {\n        \"amount\": 0.005,\n        \"price\": 115764.2,\n      },\n      {\n        \"amount\": 0.004365,\n        \"price\": 115763.3,\n      },\n    ],\n    \"exchange\": \"gate-io\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2025-08-01T00:00:00.000Z,\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2025-08-01T00:00:00.261Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io messages 13`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.687304,\n        \"price\": 115731.3,\n      },\n      {\n        \"amount\": 0.000864,\n        \"price\": 115733.8,\n      },\n      {\n        \"amount\": 0.025922,\n        \"price\": 115745.7,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 115742.9,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 115746.1,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.050772,\n        \"price\": 115576.7,\n      },\n      {\n        \"amount\": 0.000039,\n        \"price\": 115275.2,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 115717.7,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 115578.5,\n      },\n    ],\n    \"exchange\": \"gate-io\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2025-08-01T00:00:00.000Z,\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2025-08-01T00:01:00.600Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures decimal size messages 1`] = `\n[\n  {\n    \"amount\": 0.25,\n    \"exchange\": \"gate-io-futures\",\n    \"id\": \"1\",\n    \"localTimestamp\": 2026-03-25T12:53:00.000Z,\n    \"price\": 2171.44,\n    \"side\": \"sell\",\n    \"symbol\": \"ETH_USDT\",\n    \"timestamp\": 2026-03-25T12:53:03.399Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures decimal size messages 2`] = `\n[\n  {\n    \"askAmount\": 1053.5,\n    \"askPrice\": 2172.85,\n    \"bidAmount\": undefined,\n    \"bidPrice\": 2172.82,\n    \"exchange\": \"gate-io-futures\",\n    \"localTimestamp\": 2026-03-25T12:53:00.000Z,\n    \"symbol\": \"ETH_USDT\",\n    \"timestamp\": 2026-03-25T12:53:34.909Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures decimal size messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1053.5,\n        \"price\": 2172.85,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.25,\n        \"price\": 2172.82,\n      },\n    ],\n    \"exchange\": \"gate-io-futures\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2026-03-25T12:53:00.000Z,\n    \"symbol\": \"ETH_USDT\",\n    \"timestamp\": 2026-03-25T12:53:34.909Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 108,\n        \"price\": 0.3351,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 10,\n        \"price\": 0.2728,\n      },\n    ],\n    \"exchange\": \"gate-io-futures\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"ZRX_USD\",\n    \"timestamp\": 2020-07-01T00:00:00.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 390,\n        \"price\": 222.25,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 222.25,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 222.25,\n      },\n    ],\n    \"exchange\": \"gate-io-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"BCH_USDT\",\n    \"timestamp\": 2020-07-01T00:00:04.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 0.01643,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 0.01643,\n      },\n    ],\n    \"exchange\": \"gate-io-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"TRX_USDT\",\n    \"timestamp\": 2020-07-01T00:00:04.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 2500,\n        \"price\": 223.35,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 12405,\n        \"price\": 221.3,\n      },\n    ],\n    \"exchange\": \"gate-io-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"BCH_USD\",\n    \"timestamp\": 2020-07-01T00:00:06.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 5`] = `\n[\n  {\n    \"exchange\": \"gate-io-futures\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 5.734,\n    \"lastPrice\": 5.67,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"markPrice\": 5.735,\n    \"openInterest\": 46366,\n    \"predictedFundingRate\": 0.0001,\n    \"symbol\": \"ETC_USD\",\n    \"timestamp\": 2020-07-01T00:00:06.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 6`] = `\n[\n  {\n    \"amount\": 1,\n    \"exchange\": \"gate-io-futures\",\n    \"id\": \"31615\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 217.2,\n    \"side\": \"buy\",\n    \"symbol\": \"COMP_USDT\",\n    \"timestamp\": 2020-07-01T00:00:16.000Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 7`] = `\n[\n  {\n    \"amount\": 22,\n    \"exchange\": \"gate-io-futures\",\n    \"id\": \"1696009\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 225.5,\n    \"side\": \"sell\",\n    \"symbol\": \"ETH_USDT\",\n    \"timestamp\": 2020-07-01T00:00:23.000Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 8`] = `[]`;\n\nexports[`mappers map gate-io-futures messages 9`] = `[]`;\n\nexports[`mappers map gate-io-futures messages 10`] = `[]`;\n\nexports[`mappers map gate-io-futures messages 11`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 117,\n        \"price\": 4.2907,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 117,\n        \"price\": 4.2201,\n      },\n    ],\n    \"exchange\": \"gate-io-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"HT_USDT\",\n    \"timestamp\": 2020-07-22T00:00:03.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 12`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 93,\n        \"price\": 0.1996,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 17,\n        \"price\": 0.1954,\n      },\n    ],\n    \"exchange\": \"gate-io-futures\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"XRP_USDT\",\n    \"timestamp\": 2020-07-22T00:00:05.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 13`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 227.2,\n      },\n      {\n        \"amount\": 4925,\n        \"price\": 227.55,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4884,\n        \"price\": 227.2,\n      },\n      {\n        \"amount\": 4881,\n        \"price\": 227.2,\n      },\n      {\n        \"amount\": 2440,\n        \"price\": 227.2,\n      },\n      {\n        \"amount\": 1155,\n        \"price\": 227.2,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 227.2,\n      },\n    ],\n    \"exchange\": \"gate-io-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"ETH_USDT\",\n    \"timestamp\": 2020-07-01T10:44:53.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 14`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 223.75,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 223.7,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 223.6,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 223.6,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 14,\n        \"price\": 223.75,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 223.75,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 223.7,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 223.6,\n      },\n      {\n        \"amount\": 15039,\n        \"price\": 223.55,\n      },\n      {\n        \"amount\": 15089,\n        \"price\": 223.55,\n      },\n    ],\n    \"exchange\": \"gate-io-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"BCH_USDT\",\n    \"timestamp\": 2020-07-01T10:44:09.000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 15`] = `[]`;\n\nexports[`mappers map gate-io-futures messages 16`] = `\n[\n  {\n    \"exchange\": \"gate-io-futures\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 26.9291,\n    \"lastPrice\": 25.595,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"markPrice\": 26.929,\n    \"openInterest\": 14,\n    \"predictedFundingRate\": 0.0001,\n    \"symbol\": \"ETC_USD\",\n    \"timestamp\": 2022-03-17T07:13:26.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 17`] = `\n[\n  {\n    \"askAmount\": 15227,\n    \"askPrice\": 45534.8,\n    \"bidAmount\": 2500,\n    \"bidPrice\": 45534.7,\n    \"exchange\": \"gate-io-futures\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"BTC_USD\",\n    \"timestamp\": 2022-04-01T00:00:00.080Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 18`] = `[]`;\n\nexports[`mappers map gate-io-futures messages 19`] = `\n[\n  {\n    \"amount\": 1,\n    \"exchange\": \"gate-io-futures\",\n    \"id\": \"13654526\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 45300,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2021-03-01T00:00:50.860Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 2000,\n    \"exchange\": \"gate-io-futures\",\n    \"id\": \"13654527\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 45300,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2021-03-01T00:00:50.860Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 999,\n    \"exchange\": \"gate-io-futures\",\n    \"id\": \"13654528\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 45300,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2021-03-01T00:00:50.860Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 20`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 19415,\n        \"price\": 28455.9,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 29510,\n        \"price\": 28455.8,\n      },\n    ],\n    \"exchange\": \"gate-io-futures\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2023-04-01T00:06:00.929Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 21`] = `\n[\n  {\n    \"exchange\": \"gate-io-futures\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 23173.35,\n    \"lastPrice\": 23160.2,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"markPrice\": 23175.64,\n    \"openInterest\": 153482780,\n    \"predictedFundingRate\": 0.0001,\n    \"symbol\": \"BTC_USDT\",\n    \"timestamp\": 2023-03-01T00:06:08.840Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map gate-io-futures messages 22`] = `[]`;\n\nexports[`mappers map gemini messages 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.078285,\n        \"price\": 15,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 51.55728,\n        \"price\": 0.688,\n      },\n      {\n        \"amount\": 1.168083,\n        \"price\": 0.686,\n      },\n    ],\n    \"exchange\": \"gemini\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"ZECLTC\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gemini messages 2`] = `\n[\n  {\n    \"amount\": 0.1,\n    \"exchange\": \"gemini\",\n    \"id\": \"8280715334\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 8325,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:20.080Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map gemini messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 88.236,\n        \"price\": 0.02189,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 0.02184,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 0.02185,\n      },\n      {\n        \"amount\": 149.57,\n        \"price\": 0.02188,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"gemini\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"ETHBTC\",\n    \"timestamp\": 2019-09-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map gemini messages 4`] = `\n[\n  {\n    \"amount\": 100,\n    \"exchange\": \"gemini\",\n    \"id\": \"9608228023\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 200.19,\n    \"side\": \"unknown\",\n    \"symbol\": \"ETHUSD\",\n    \"timestamp\": 2020-02-05T16:25:01.276Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map hitbtc messages 1`] = `[]`;\n\nexports[`mappers map hitbtc messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 31400,\n        \"price\": 4.255e-8,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 2200,\n        \"price\": 4.245e-8,\n      },\n    ],\n    \"exchange\": \"hitbtc\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BCNBTC\",\n    \"timestamp\": 2019-11-22T00:00:00.040Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map hitbtc messages 3`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 0.000104487,\n      },\n      {\n        \"amount\": 8865,\n        \"price\": 0.000073314,\n      },\n    ],\n    \"exchange\": \"hitbtc\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"POAETH\",\n    \"timestamp\": 2019-11-22T00:00:40.148Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map hitbtc messages 4`] = `[]`;\n\nexports[`mappers map hitbtc messages 5`] = `\n[\n  {\n    \"amount\": 0.03,\n    \"exchange\": \"hitbtc\",\n    \"id\": \"712213931\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 0.33559,\n    \"side\": \"sell\",\n    \"symbol\": \"XMRETH\",\n    \"timestamp\": 2019-11-22T00:00:40.462Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 1`] = `[]`;\n\nexports[`mappers map huobi messages 2`] = `[]`;\n\nexports[`mappers map huobi messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 20,\n        \"price\": 9469.88,\n      },\n      {\n        \"amount\": 8,\n        \"price\": 9470.38,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 35,\n        \"price\": 9467.21,\n      },\n      {\n        \"amount\": 132,\n        \"price\": 9467.2,\n      },\n    ],\n    \"exchange\": \"huobi\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTC_NW\",\n    \"timestamp\": 2019-11-05T00:00:01.193Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 4`] = `\n[\n  {\n    \"amount\": 62,\n    \"exchange\": \"huobi\",\n    \"id\": \"251029750220000\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 190.031,\n    \"side\": \"sell\",\n    \"symbol\": \"ETH_CQ\",\n    \"timestamp\": 2019-11-05T00:00:28.237Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 5`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 734,\n        \"price\": 299.375,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 290.864,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 290.966,\n      },\n    ],\n    \"exchange\": \"huobi\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BCH_CQ\",\n    \"timestamp\": 2019-11-05T00:00:28.401Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 6`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1033141.41,\n        \"price\": 6.35e-8,\n      },\n      {\n        \"amount\": 269808.94,\n        \"price\": 6.4e-8,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 45542.05,\n        \"price\": 6.22e-8,\n      },\n      {\n        \"amount\": 663504.55,\n        \"price\": 6.21e-8,\n      },\n    ],\n    \"exchange\": \"huobi\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"MEXBTC\",\n    \"timestamp\": 2019-11-04T23:58:40.067Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 7`] = `\n[\n  {\n    \"amount\": 1569.86,\n    \"exchange\": \"huobi\",\n    \"id\": \"100027416191\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 6.37e-8,\n    \"side\": \"buy\",\n    \"symbol\": \"MEXBTC\",\n    \"timestamp\": 2019-11-04T23:44:48.761Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 8`] = `\n[\n  {\n    \"amount\": 1569.86,\n    \"exchange\": \"huobi\",\n    \"id\": \"100027416192\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 6.37e-8,\n    \"side\": \"buy\",\n    \"symbol\": \"MEXBTC\",\n    \"timestamp\": 2019-11-04T23:44:48.761Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 9`] = `[]`;\n\nexports[`mappers map huobi messages 10`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1.07,\n        \"price\": 0.9087,\n      },\n      {\n        \"amount\": 1760.6161,\n        \"price\": 0.9088,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1877.1994,\n        \"price\": 0.9073,\n      },\n    ],\n    \"exchange\": \"huobi\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"ONTUSDT\",\n    \"timestamp\": 2019-11-05T00:00:01.077Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 11`] = `\n[\n  {\n    \"amount\": 6.5286,\n    \"exchange\": \"huobi\",\n    \"id\": \"10020171792852100010452\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 0.006663,\n    \"side\": \"buy\",\n    \"symbol\": \"XMRBTC\",\n    \"timestamp\": 2019-10-16T15:03:59.378Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 12`] = `\n[\n  {\n    \"amount\": 6.5286,\n    \"exchange\": \"huobi\",\n    \"id\": \"100201717928521000104525\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 0.006663,\n    \"side\": \"buy\",\n    \"symbol\": \"XMRBTC\",\n    \"timestamp\": 2019-10-16T15:03:59.379Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 13`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 437407.32,\n        \"price\": 1.55e-7,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4.75e-8,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 731389.72,\n        \"price\": 4.37e-8,\n      },\n    ],\n    \"exchange\": \"huobi\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"DTABTC\",\n    \"timestamp\": 2019-11-05T00:00:02.012Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 14`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 137,\n        \"price\": 10866.01,\n      },\n      {\n        \"amount\": 35,\n        \"price\": 10900.06,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3166,\n        \"price\": 10866,\n      },\n      {\n        \"amount\": 30,\n        \"price\": 10847.44,\n      },\n    ],\n    \"exchange\": \"huobi\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTC_CQ\",\n    \"timestamp\": 2020-02-13T00:00:01.189Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 15`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 10489.55,\n      },\n      {\n        \"amount\": 385,\n        \"price\": 10361.14,\n      },\n    ],\n    \"exchange\": \"huobi\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTC_NW\",\n    \"timestamp\": 2020-02-13T00:00:01.277Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 16`] = `[]`;\n\nexports[`mappers map huobi messages 17`] = `[]`;\n\nexports[`mappers map huobi messages 18`] = `[]`;\n\nexports[`mappers map huobi messages 19`] = `[]`;\n\nexports[`mappers map huobi messages 20`] = `[]`;\n\nexports[`mappers map huobi messages 21`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.190075,\n        \"price\": 9137.68,\n      },\n      {\n        \"amount\": 0.01,\n        \"price\": 9137.75,\n      },\n      {\n        \"amount\": 0.010945,\n        \"price\": 9138.23,\n      },\n      {\n        \"amount\": 0.131941,\n        \"price\": 9138.27,\n      },\n      {\n        \"amount\": 0.003,\n        \"price\": 9138.47,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9138.6,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9138.61,\n      },\n      {\n        \"amount\": 0.0074,\n        \"price\": 9138.62,\n      },\n      {\n        \"amount\": 0.042194,\n        \"price\": 9138.67,\n      },\n      {\n        \"amount\": 0.069238,\n        \"price\": 9144,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 9146.84,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9146.9,\n      },\n      {\n        \"amount\": 0.030582,\n        \"price\": 9145.4,\n      },\n      {\n        \"amount\": 0.132209,\n        \"price\": 9146.18,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4.683547,\n        \"price\": 9137.67,\n      },\n      {\n        \"amount\": 0.0089,\n        \"price\": 9137.35,\n      },\n      {\n        \"amount\": 0.00606,\n        \"price\": 9137.17,\n      },\n      {\n        \"amount\": 0.11,\n        \"price\": 9137.06,\n      },\n      {\n        \"amount\": 0.002232,\n        \"price\": 9134.5,\n      },\n      {\n        \"amount\": 0.164064,\n        \"price\": 9134.4,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9126.94,\n      },\n      {\n        \"amount\": 0.0622,\n        \"price\": 9135.96,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9135.78,\n      },\n      {\n        \"amount\": 0.007665,\n        \"price\": 9131.7,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9127,\n      },\n    ],\n    \"exchange\": \"huobi\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2020-07-03T00:00:01.275Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-07-01T00:00:01.666Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 22`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 3.691799,\n        \"price\": 9137.68,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 2.389677,\n        \"price\": 9137.67,\n      },\n    ],\n    \"exchange\": \"huobi\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-03T00:00:01.275Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2020-07-01T00:00:01.727Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 23`] = `\n[\n  {\n    \"askAmount\": 2.323241,\n    \"askPrice\": 7543.59,\n    \"bidAmount\": 0.002329,\n    \"bidPrice\": 7541.16,\n    \"exchange\": \"huobi\",\n    \"localTimestamp\": 2020-07-03T00:00:01.275Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-12-01T00:00:04.057Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi messages 24`] = `\n[\n  {\n    \"askAmount\": 0.3,\n    \"askPrice\": 9434.09,\n    \"bidAmount\": 0.3,\n    \"bidPrice\": 9422.13,\n    \"exchange\": \"huobi\",\n    \"localTimestamp\": 2020-07-03T00:00:01.275Z,\n    \"symbol\": \"BTCHUSD\",\n    \"timestamp\": 2020-04-30T06:11:19.007Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm, messages 1`] = `[]`;\n\nexports[`mappers map huobi-dm, messages 2`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 7999,\n        \"price\": 228.191,\n      },\n    ],\n    \"exchange\": \"huobi-dm\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BCH_NQ\",\n    \"timestamp\": 2020-06-15T06:00:02.700Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm, messages 3`] = `\n[\n  {\n    \"exchange\": \"huobi-dm\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 243.466431823,\n    \"lastPrice\": 244.126,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"ETH_NW\",\n    \"timestamp\": 2020-06-23T12:25:00.011Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm, messages 4`] = `\n[\n  {\n    \"exchange\": \"huobi-dm\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 243.466431823,\n    \"lastPrice\": 244.126,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 648420,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"ETH_NW\",\n    \"timestamp\": 2020-06-23T12:25:03.195Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm, messages 5`] = `[]`;\n\nexports[`mappers map huobi-dm, messages 6`] = `[]`;\n\nexports[`mappers map huobi-dm, messages 7`] = `[]`;\n\nexports[`mappers map huobi-dm, messages 8`] = `\n[\n  {\n    \"amount\": 319,\n    \"exchange\": \"huobi-dm\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 9115.43,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC_CQ\",\n    \"timestamp\": 2020-07-01T00:02:53.025Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm, messages 9`] = `\n[\n  {\n    \"amount\": 218,\n    \"exchange\": \"huobi-dm\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 9244.08,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC_CW\",\n    \"timestamp\": 2020-07-01T08:46:09.156Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm, messages 10`] = `\n[\n  {\n    \"askAmount\": 68,\n    \"askPrice\": 9142.13,\n    \"bidAmount\": 6091,\n    \"bidPrice\": 9142.12,\n    \"exchange\": \"huobi-dm\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTC_CW\",\n    \"timestamp\": 2020-07-01T00:00:03.500Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm, messages 11`] = `\n[\n  {\n    \"askAmount\": 3,\n    \"askPrice\": 43829.95,\n    \"bidAmount\": 7,\n    \"bidPrice\": 43812.82,\n    \"exchange\": \"huobi-dm\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTC_CW\",\n    \"timestamp\": 2021-10-01T00:00:07.225Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-linear-swap, messages 1`] = `[]`;\n\nexports[`mappers map huobi-dm-linear-swap, messages 2`] = `[]`;\n\nexports[`mappers map huobi-dm-linear-swap, messages 3`] = `\n[\n  {\n    \"amount\": 6,\n    \"exchange\": \"huobi-dm-linear-swap\",\n    \"id\": \"2918913650000\",\n    \"localTimestamp\": 2020-12-01T00:00:01.275Z,\n    \"price\": 3.2639,\n    \"side\": \"buy\",\n    \"symbol\": \"EOS-USDT\",\n    \"timestamp\": 2020-12-01T00:00:14.931Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-linear-swap, messages 4`] = `\n[\n  {\n    \"amount\": 30,\n    \"exchange\": \"huobi-dm-linear-swap\",\n    \"id\": \"2918924670000\",\n    \"localTimestamp\": 2020-12-01T00:00:01.275Z,\n    \"price\": 3.2658,\n    \"side\": \"buy\",\n    \"symbol\": \"EOS-USDT\",\n    \"timestamp\": 2020-12-01T00:00:32.955Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-linear-swap, messages 5`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 118,\n        \"price\": 6.7918,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 6.7941,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"huobi-dm-linear-swap\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-12-01T00:00:01.275Z,\n    \"symbol\": \"ETC-USDT\",\n    \"timestamp\": 2020-12-01T00:00:33.036Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-linear-swap, messages 6`] = `\n[\n  {\n    \"exchange\": \"huobi-dm-linear-swap\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 19695.41,\n    \"lastPrice\": 19717.9,\n    \"localTimestamp\": 2020-12-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2020-12-01T00:00:06.356Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-linear-swap, messages 7`] = `\n[\n  {\n    \"exchange\": \"huobi-dm-linear-swap\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 19695.41,\n    \"lastPrice\": 19717.9,\n    \"localTimestamp\": 2020-12-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 3063121,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2020-12-01T00:00:07.036Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-linear-swap, messages 8`] = `\n[\n  {\n    \"exchange\": \"huobi-dm-linear-swap\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": 2020-12-01T00:00:00.000Z,\n    \"indexPrice\": 19695.41,\n    \"lastPrice\": 19717.9,\n    \"localTimestamp\": 2020-12-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 3063121,\n    \"predictedFundingRate\": 0.000236636095370214,\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2020-12-01T00:00:07.036Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-linear-swap, messages 9`] = `\n[\n  {\n    \"amount\": 227,\n    \"exchange\": \"huobi-dm-linear-swap\",\n    \"id\": undefined,\n    \"localTimestamp\": 2020-12-01T00:00:01.275Z,\n    \"price\": 23350.5,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2020-12-17T17:35:02.284Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-linear-swap, messages 10`] = `\n[\n  {\n    \"askAmount\": 9249,\n    \"askPrice\": 47176.6,\n    \"bidAmount\": 1,\n    \"bidPrice\": 47176.5,\n    \"exchange\": \"huobi-dm-linear-swap\",\n    \"localTimestamp\": 2020-12-01T00:00:01.275Z,\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2021-09-01T00:00:00.495Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-linear-swap, messages 11`] = `\n[\n  {\n    \"amount\": 2,\n    \"exchange\": \"huobi-dm-linear-swap\",\n    \"id\": \"1186558919990000\",\n    \"localTimestamp\": 2020-12-01T00:00:01.275Z,\n    \"price\": 19425,\n    \"side\": \"unknown\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2022-10-18T17:35:54.480Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-options, messages 1`] = `\n[\n  {\n    \"amount\": 8,\n    \"exchange\": \"huobi-dm-options\",\n    \"id\": \"2634626360000\",\n    \"localTimestamp\": 2021-05-03T00:00:00.130Z,\n    \"price\": 1969.99,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USDT-201204-C-17000\",\n    \"timestamp\": 2020-11-30T13:30:05.993Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 20,\n    \"exchange\": \"huobi-dm-options\",\n    \"id\": \"2634626360001\",\n    \"localTimestamp\": 2021-05-03T00:00:00.130Z,\n    \"price\": 1970,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USDT-201204-C-17000\",\n    \"timestamp\": 2020-11-30T13:30:05.993Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-options, messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 74,\n        \"price\": 106,\n      },\n      {\n        \"amount\": 3613,\n        \"price\": 239.94,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 5,\n        \"price\": 51,\n      },\n    ],\n    \"exchange\": \"huobi-dm-options\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2021-05-03T00:00:00.130Z,\n    \"symbol\": \"ETH-USDT-210521-P-3000\",\n    \"timestamp\": 2021-05-17T23:59:48.498Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-options, messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 578,\n        \"price\": 4116.94,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"huobi-dm-options\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-05-03T00:00:00.130Z,\n    \"symbol\": \"BTC-USDT-210625-C-87000\",\n    \"timestamp\": 2021-05-18T00:00:59.498Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-options, messages 4`] = `[]`;\n\nexports[`mappers map huobi-dm-options, messages 5`] = `[]`;\n\nexports[`mappers map huobi-dm-options, messages 6`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": 1.64869787,\n    \"bestAskPrice\": 2000,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": 1.13185884,\n    \"bestBidPrice\": 1189.49,\n    \"delta\": -0.3704996546766173,\n    \"exchange\": \"huobi-dm-options\",\n    \"expirationDate\": 2021-05-21T08:00:00.000Z,\n    \"gamma\": 0.00006528,\n    \"lastPrice\": 1968.83,\n    \"localTimestamp\": 2021-05-03T00:00:00.130Z,\n    \"markIV\": 1.39190675,\n    \"markPrice\": 1594.7397774915714,\n    \"openInterest\": 684,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 42000,\n    \"symbol\": \"BTC-USDT-210521-P-42000\",\n    \"theta\": -327.85540508,\n    \"timestamp\": 2021-05-18T00:00:02.820Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"BTC-USDT\",\n    \"underlyingPrice\": 43501.21,\n    \"vega\": 15.70293917,\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-swap, messages 1`] = `[]`;\n\nexports[`mappers map huobi-dm-swap, messages 2`] = `[]`;\n\nexports[`mappers map huobi-dm-swap, messages 3`] = `\n[\n  {\n    \"amount\": 8,\n    \"exchange\": \"huobi-dm-swap\",\n    \"id\": \"95306843320000\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 177.3,\n    \"side\": \"sell\",\n    \"symbol\": \"BSV-USD\",\n    \"timestamp\": 2020-06-23T09:33:34.962Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-swap, messages 4`] = `\n[\n  {\n    \"amount\": 80,\n    \"exchange\": \"huobi-dm-swap\",\n    \"id\": \"95307123240000\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 177.3,\n    \"side\": \"sell\",\n    \"symbol\": \"BSV-USD\",\n    \"timestamp\": 2020-06-23T09:33:41.209Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-swap, messages 5`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1021,\n        \"price\": 239.34,\n      },\n    ],\n    \"exchange\": \"huobi-dm-swap\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BCH-USD\",\n    \"timestamp\": 2020-06-23T09:33:41.309Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-swap, messages 6`] = `\n[\n  {\n    \"exchange\": \"huobi-dm-swap\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 9582.975,\n    \"lastPrice\": 9590.1,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2020-06-23T09:33:41.703Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-swap, messages 7`] = `\n[\n  {\n    \"exchange\": \"huobi-dm-swap\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 9582.975,\n    \"lastPrice\": 9590.1,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 1711705,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2020-06-23T09:33:43.141Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-swap, messages 8`] = `\n[\n  {\n    \"exchange\": \"huobi-dm-swap\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": 2020-06-23T12:00:00.000Z,\n    \"indexPrice\": 9582.975,\n    \"lastPrice\": 9590.1,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 1711705,\n    \"predictedFundingRate\": 0.000113655663368468,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2020-06-23T09:33:43.141Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-swap, messages 9`] = `\n[\n  {\n    \"amount\": 231,\n    \"exchange\": \"huobi-dm-swap\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 229.95,\n    \"side\": \"buy\",\n    \"symbol\": \"ETH-USD\",\n    \"timestamp\": 2020-07-01T13:34:52.167Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-swap, messages 10`] = `\n[\n  {\n    \"amount\": 3,\n    \"exchange\": \"huobi-dm-swap\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 153.28,\n    \"side\": \"sell\",\n    \"symbol\": \"BSV-USD\",\n    \"timestamp\": 2020-07-01T06:38:51.562Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map huobi-dm-swap, messages 11`] = `\n[\n  {\n    \"askAmount\": 4635,\n    \"askPrice\": 47152.4,\n    \"bidAmount\": 1436,\n    \"bidPrice\": 47152.3,\n    \"exchange\": \"huobi-dm-swap\",\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2021-09-01T00:00:00.734Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map kraken messages 1`] = `\n[\n  {\n    \"amount\": 2.51146536,\n    \"exchange\": \"kraken\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 0.011365,\n    \"side\": \"sell\",\n    \"symbol\": \"LTC/XBT\",\n    \"timestamp\": 2019-07-01T00:00:01.587070Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map kraken messages 2`] = `\n[\n  {\n    \"amount\": 0.01596347,\n    \"exchange\": \"kraken\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 9482.4,\n    \"side\": \"sell\",\n    \"symbol\": \"XBT/EUR\",\n    \"timestamp\": 2019-07-01T00:00:58.512503Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.28522465,\n    \"exchange\": \"kraken\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"price\": 9488.2,\n    \"side\": \"buy\",\n    \"symbol\": \"XBT/EUR\",\n    \"timestamp\": 2019-07-01T00:00:58.557040Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map kraken messages 3`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 35.02658459,\n        \"price\": 87.6,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"XMR/USD\",\n    \"timestamp\": 2019-07-01T00:00:58.527900Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map kraken messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 27.71904764,\n        \"price\": 413.9,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 403.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 400.3,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 3.38983321,\n        \"price\": 400,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BCH/USD\",\n    \"timestamp\": 2019-07-01T00:00:58.534680Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map kraken messages 5`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 33.955,\n        \"price\": 352,\n      },\n      {\n        \"amount\": 5.895279,\n        \"price\": 351.5,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"BCH/EUR\",\n    \"timestamp\": 2019-07-01T00:00:58.548498Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map kraken messages 6`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 3,\n        \"price\": 0.102987,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 2,\n        \"price\": 0.10281,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"book-1000\",\n    \"timestamp\": 2019-06-30T23:59:59.992830Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map kraken messages 7`] = `\n[\n  {\n    \"askAmount\": 0.3167044,\n    \"askPrice\": 43770.3,\n    \"bidAmount\": 0.00917717,\n    \"bidPrice\": 43770.2,\n    \"exchange\": \"kraken\",\n    \"localTimestamp\": 2019-09-01T00:00:01.275Z,\n    \"symbol\": \"XBT/USD\",\n    \"timestamp\": 2021-10-01T02:02:59.916349Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map kraken messages 8`] = `[]`;\n\nexports[`mappers map okcoin messages 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.0425,\n        \"price\": 7624.75,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1.359,\n        \"price\": 766,\n      },\n    ],\n    \"exchange\": \"okcoin\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-11-09T00:00:01.275Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2019-11-22T00:00:01.547Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okcoin messages 2`] = `[]`;\n\nexports[`mappers map okcoin messages 3`] = `\n[\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": 5.51,\n    \"bidAmount\": undefined,\n    \"bidPrice\": 4.166,\n    \"exchange\": \"okcoin\",\n    \"localTimestamp\": 2019-11-09T00:00:01.275Z,\n    \"symbol\": \"ETC-USD\",\n    \"timestamp\": 2019-11-21T23:59:04.392Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okcoin messages 4`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.5985,\n        \"price\": 6914.33,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"okcoin\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-11-09T00:00:01.275Z,\n    \"symbol\": \"BTC-EUR\",\n    \"timestamp\": 2019-11-22T00:00:30.968Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okcoin messages 5`] = `\n[\n  {\n    \"amount\": 0.1,\n    \"exchange\": \"okcoin\",\n    \"id\": \"459\",\n    \"localTimestamp\": 2019-11-09T00:00:01.275Z,\n    \"price\": 20.38,\n    \"side\": \"buy\",\n    \"symbol\": \"DCR-USD\",\n    \"timestamp\": 2019-11-09T07:53:40.478Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okcoin messages 6`] = `\n[\n  {\n    \"amount\": 0.1,\n    \"exchange\": \"okcoin\",\n    \"id\": \"460\",\n    \"localTimestamp\": 2019-11-09T00:00:01.275Z,\n    \"price\": 20.38,\n    \"side\": \"buy\",\n    \"symbol\": \"DCR-USD\",\n    \"timestamp\": 2019-11-09T07:53:40.479Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex messages 1`] = `\n[\n  {\n    \"amount\": 0.12,\n    \"exchange\": \"okex\",\n    \"id\": \"423886239\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"price\": 328.74,\n    \"side\": \"sell\",\n    \"symbol\": \"BCH-USDT\",\n    \"timestamp\": 2019-08-01T00:00:08.806Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 38,\n        \"price\": 4084.57,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4085,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4,\n        \"price\": 4084.56,\n      },\n      {\n        \"amount\": 29,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"okex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2019-08-01T00:00:08.930Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex messages 3`] = `\n[\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": 0.0001659,\n    \"bidAmount\": undefined,\n    \"bidPrice\": 0.0001654,\n    \"exchange\": \"okex\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"TRX-ETH\",\n    \"timestamp\": 2019-04-01T00:00:27.106Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex messages 4`] = `[]`;\n\nexports[`mappers map okex messages 5`] = `\n[\n  {\n    \"amount\": 0.12,\n    \"exchange\": \"okex\",\n    \"id\": \"423886240\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"price\": 328.74,\n    \"side\": \"sell\",\n    \"symbol\": \"BCH-USDT\",\n    \"timestamp\": 2019-08-01T00:00:08.807Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex messages 6`] = `\n[\n  {\n    \"askAmount\": 849.6017,\n    \"askPrice\": 2.585,\n    \"bidAmount\": 1574.0289,\n    \"bidPrice\": 2.584,\n    \"exchange\": \"okex\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"EOS-USDT\",\n    \"timestamp\": 2019-12-31T23:59:58.352Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex messages 7`] = `\n[\n  {\n    \"askAmount\": 235,\n    \"askPrice\": 3.9385,\n    \"bidAmount\": 0.350812,\n    \"bidPrice\": 3.9383,\n    \"exchange\": \"okex\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"EOS-USDT\",\n    \"timestamp\": 2021-09-30T23:59:59.874Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex messages 8`] = `[]`;\n\nexports[`mappers map okex messages 9`] = `\n[\n  {\n    \"amount\": 13.491146,\n    \"exchange\": \"okex\",\n    \"id\": \"21300150\",\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"price\": 3.973,\n    \"side\": \"buy\",\n    \"symbol\": \"CRV-USDT\",\n    \"timestamp\": 2021-12-20T11:21:59.938Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex messages 10`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.02250534,\n        \"price\": 46167.8,\n      },\n      {\n        \"amount\": 0.00455491,\n        \"price\": 46167.9,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.00375882,\n        \"price\": 46043.4,\n      },\n      {\n        \"amount\": 0.00238905,\n        \"price\": 46043.3,\n      },\n      {\n        \"amount\": 0.0435796,\n        \"price\": 45906.8,\n      },\n    ],\n    \"exchange\": \"okex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"symbol\": \"BTC-DAI\",\n    \"timestamp\": 2021-12-20T11:21:45.247Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex messages 11`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3.5,\n        \"price\": 0.00895,\n      },\n    ],\n    \"exchange\": \"okex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"symbol\": \"ETC-ETH\",\n    \"timestamp\": 2021-12-20T11:21:58.695Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex messages 12`] = `\n[\n  {\n    \"askAmount\": 54969.407534,\n    \"askPrice\": 0.0072,\n    \"bidAmount\": 4092.326,\n    \"bidPrice\": 0.00713,\n    \"exchange\": \"okex\",\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"symbol\": \"ACT-USDT\",\n    \"timestamp\": 2021-12-20T11:21:58.686Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex messages 13`] = `\n[\n  {\n    \"amount\": 3.75,\n    \"exchange\": \"okex\",\n    \"id\": \"84834539\",\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"price\": 42.52,\n    \"side\": \"buy\",\n    \"symbol\": \"BSV-USDT\",\n    \"timestamp\": 2023-10-20T00:00:12.017Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 1`] = `\n[\n  {\n    \"amount\": 4,\n    \"exchange\": \"okex-futures\",\n    \"id\": \"2578238628528131\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"price\": 4061.94,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USD-190628\",\n    \"timestamp\": 2019-03-31T23:59:59.388Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 2`] = `\n[\n  {\n    \"amount\": 5,\n    \"exchange\": \"okex-futures\",\n    \"id\": \"3269040623943685\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"price\": 10209.43,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USD-190927\",\n    \"timestamp\": 2019-08-01T00:00:01.320Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 3`] = `\n[\n  {\n    \"amount\": 4,\n    \"exchange\": \"okex-futures\",\n    \"id\": \"2578238628528132\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"price\": 4061.95,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USD-190628\",\n    \"timestamp\": 2019-03-31T23:59:59.389Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 4`] = `\n[\n  {\n    \"amount\": 5,\n    \"exchange\": \"okex-futures\",\n    \"id\": \"3269040623943686\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"price\": 10209.43,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USD-190927\",\n    \"timestamp\": 2019-08-01T00:00:01.321Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 5`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 38,\n        \"price\": 4084.57,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4085,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4,\n        \"price\": 4084.56,\n      },\n      {\n        \"amount\": 29,\n        \"price\": 4084.5,\n      },\n    ],\n    \"exchange\": \"okex-futures\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"BTC-USD-190405\",\n    \"timestamp\": 2019-08-01T00:00:08.930Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 6`] = `[]`;\n\nexports[`mappers map okex-futures messages 7`] = `\n[\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markPrice\": 10218.61,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-190927\",\n    \"timestamp\": 2019-08-01T00:00:20.869Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 8`] = `\n[\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 0.02249,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 24419,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"TRX-USD-190802\",\n    \"timestamp\": 2019-08-01T00:02:00.429Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": 0.02255,\n    \"bidAmount\": undefined,\n    \"bidPrice\": 0.0225,\n    \"exchange\": \"okex-futures\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"TRX-USD-190802\",\n    \"timestamp\": 2019-08-01T00:02:00.429Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 9`] = `[]`;\n\nexports[`mappers map okex-futures messages 10`] = `\n[\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 7181.47,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 530385,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-200103\",\n    \"timestamp\": 2019-12-31T23:59:59.382Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": 7181.95,\n    \"bidAmount\": undefined,\n    \"bidPrice\": 7181.22,\n    \"exchange\": \"okex-futures\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"BTC-USD-200103\",\n    \"timestamp\": 2019-12-31T23:59:59.382Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 11`] = `\n[\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": 7181.95,\n    \"bidAmount\": undefined,\n    \"bidPrice\": 7181.22,\n    \"exchange\": \"okex-futures\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"BTC-USD-200103\",\n    \"timestamp\": 2019-12-31T23:59:59.382Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 12`] = `\n[\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 47.826,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 160296,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"ETC-USD-220325\",\n    \"timestamp\": 2021-09-30T23:59:59.965Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 20,\n    \"askPrice\": 47.837,\n    \"bidAmount\": 112,\n    \"bidPrice\": 47.799,\n    \"exchange\": \"okex-futures\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"ETC-USD-220325\",\n    \"timestamp\": 2021-09-30T23:59:59.965Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 13`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 74,\n        \"price\": 8581.44,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 37,\n        \"price\": 8581.38,\n      },\n    ],\n    \"exchange\": \"okex-futures\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"BTC-USD-191018\",\n    \"timestamp\": 2019-10-10T08:50:14.528Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 14`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1459,\n        \"price\": 2.25,\n      },\n    ],\n    \"exchange\": \"okex-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"EOS-USD-191206\",\n    \"timestamp\": 2019-12-03T15:14:59.904Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 15`] = `[]`;\n\nexports[`mappers map okex-futures messages 16`] = `\n[\n  {\n    \"amount\": 475,\n    \"exchange\": \"okex-futures\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"price\": 655.308,\n    \"side\": \"sell\",\n    \"symbol\": \"ETH-USD-210326\",\n    \"timestamp\": 2020-12-18T00:30:58.559Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 17`] = `\n[\n  {\n    \"amount\": 8,\n    \"exchange\": \"okex-futures\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"price\": 24515.8,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USD-210326\",\n    \"timestamp\": 2020-12-18T08:32:34.576Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 18`] = `[]`;\n\nexports[`mappers map okex-futures messages 19`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 65,\n        \"price\": 1.27898,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 2,\n        \"price\": 1.27803,\n      },\n      {\n        \"amount\": 65,\n        \"price\": 1.27802,\n      },\n    ],\n    \"exchange\": \"okex-futures\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"symbol\": \"ADA-USDT-211224\",\n    \"timestamp\": 2021-12-22T00:00:06.623Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 20`] = `\n[\n  {\n    \"amount\": 11,\n    \"exchange\": \"okex-futures\",\n    \"id\": \"1271987\",\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"price\": 36.239,\n    \"side\": \"buy\",\n    \"symbol\": \"FIL-USD-220325\",\n    \"timestamp\": 2021-12-21T23:59:45.600Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 21`] = `\n[\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"markPrice\": 36.232,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"FIL-USDT-220325\",\n    \"timestamp\": 2021-12-22T00:00:04.676Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 22`] = `\n[\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"markPrice\": 36.232,\n    \"openInterest\": 236870,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"FIL-USDT-220325\",\n    \"timestamp\": 2021-12-22T00:00:04.676Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 23`] = `[]`;\n\nexports[`mappers map okex-futures messages 24`] = `\n[\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 36.245,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"markPrice\": 36.232,\n    \"openInterest\": 236870,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"FIL-USDT-220325\",\n    \"timestamp\": 2021-12-22T00:00:09.045Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 900,\n    \"askPrice\": 36.251,\n    \"bidAmount\": 240,\n    \"bidPrice\": 36.214,\n    \"exchange\": \"okex-futures\",\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"symbol\": \"FIL-USDT-220325\",\n    \"timestamp\": 2021-12-22T00:00:09.045Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 25`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 6,\n        \"price\": 161.26,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 161.24,\n      },\n    ],\n    \"exchange\": \"okex-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"symbol\": \"LTC-USDT-220624\",\n    \"timestamp\": 2021-12-22T00:00:56.488Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 26`] = `\n[\n  {\n    \"amount\": 12,\n    \"exchange\": \"okex-futures\",\n    \"id\": undefined,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"price\": 51886.2,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USD-220624\",\n    \"timestamp\": 2021-12-22T02:30:10.617Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 27`] = `\n[\n  {\n    \"amount\": 40,\n    \"exchange\": \"okex-futures\",\n    \"id\": undefined,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"price\": 49674.2,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USDT-211231\",\n    \"timestamp\": 2021-12-22T02:30:11.925Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 28`] = `[]`;\n\nexports[`mappers map okex-futures messages 29`] = `\n[\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 35.583,\n    \"lastPrice\": 36.245,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"markPrice\": 36.662,\n    \"openInterest\": 236870,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"FIL-USDT-220325\",\n    \"timestamp\": 2021-12-22T02:30:57.676Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-futures messages 30`] = `[]`;\n\nexports[`mappers map okex-futures messages 31`] = `\n[\n  {\n    \"amount\": 39,\n    \"exchange\": \"okex-futures\",\n    \"id\": undefined,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"price\": 0.55205,\n    \"side\": \"buy\",\n    \"symbol\": \"XRP-USD-230929\",\n    \"timestamp\": 2023-03-30T10:47:27.614Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 305,\n        \"price\": 0.0005,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"okex-options\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"BTC-USD-200207-8500-P\",\n    \"timestamp\": 2020-02-06T23:42:51.121Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 2`] = `[]`;\n\nexports[`mappers map okex-options messages 3`] = `\n[\n  {\n    \"bestAskAmount\": 505,\n    \"bestAskIV\": 0.7813,\n    \"bestAskPrice\": 0.153,\n    \"bestBidAmount\": 505,\n    \"bestBidIV\": 0.7495,\n    \"bestBidPrice\": 0.1465,\n    \"delta\": -0.5402682903,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2020-09-25T08:00:00.000Z,\n    \"gamma\": 1.4602562596,\n    \"lastPrice\": 0.153,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markIV\": 0.7637,\n    \"markPrice\": 0.14927916,\n    \"openInterest\": 1,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 240,\n    \"symbol\": \"ETH-USD-200925-240-P\",\n    \"theta\": -0.0007332882,\n    \"timestamp\": 2020-06-08T12:52:00.000Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": undefined,\n    \"vega\": 0.002094302,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 4`] = `[]`;\n\nexports[`mappers map okex-options messages 5`] = `\n[\n  {\n    \"bestAskAmount\": 505,\n    \"bestAskIV\": 0.7813,\n    \"bestAskPrice\": 0.153,\n    \"bestBidAmount\": 505,\n    \"bestBidIV\": 0.7507,\n    \"bestBidPrice\": 0.1465,\n    \"delta\": -0.5401157512,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2020-09-25T08:00:00.000Z,\n    \"gamma\": 1.460028096,\n    \"lastPrice\": 0.153,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markIV\": 0.7637,\n    \"markPrice\": 0.14921543,\n    \"openInterest\": 1,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 240,\n    \"symbol\": \"ETH-USD-200925-240-P\",\n    \"theta\": -0.0007332464,\n    \"timestamp\": 2020-06-08T12:52:03.000Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": 243.11,\n    \"vega\": 0.0020941549,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 6`] = `\n[\n  {\n    \"bestAskAmount\": 55,\n    \"bestAskIV\": 0.8814,\n    \"bestAskPrice\": 0.3325,\n    \"bestBidAmount\": 25,\n    \"bestBidIV\": 0.6934,\n    \"bestBidPrice\": 0.3065,\n    \"delta\": 0.5085224419,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2020-09-25T08:00:00.000Z,\n    \"gamma\": 0.0821676388,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markIV\": 0.7875,\n    \"markPrice\": 0.31908882,\n    \"openInterest\": undefined,\n    \"optionType\": \"call\",\n    \"rho\": undefined,\n    \"strikePrice\": 180,\n    \"symbol\": \"ETH-USD-200925-180-C\",\n    \"theta\": -0.0004980699,\n    \"timestamp\": 2020-06-08T12:52:00.000Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": 243.11,\n    \"vega\": 0.0013866212,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 7`] = `\n[\n  {\n    \"bestAskAmount\": 4,\n    \"bestAskIV\": 0.6348,\n    \"bestAskPrice\": 0.018,\n    \"bestBidAmount\": 50,\n    \"bestBidIV\": 0.6055,\n    \"bestBidPrice\": 0.0165,\n    \"delta\": -0.3860939252,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2020-06-05T08:00:00.000Z,\n    \"gamma\": 5.6271994199,\n    \"lastPrice\": 0.0185,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markIV\": 0.6595,\n    \"markPrice\": 0.01886752,\n    \"openInterest\": 486,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 9250,\n    \"symbol\": \"BTC-USD-200605-9250-P\",\n    \"theta\": -0.0031224769,\n    \"timestamp\": 2020-06-01T00:00:39.117Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"BTC-USD\",\n    \"underlyingPrice\": undefined,\n    \"vega\": 0.0004103337,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 8`] = `[]`;\n\nexports[`mappers map okex-options messages 9`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": undefined,\n    \"bestAskPrice\": undefined,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": undefined,\n    \"bestBidPrice\": undefined,\n    \"delta\": undefined,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2020-07-24T08:00:00.000Z,\n    \"gamma\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markIV\": 1.6437,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"optionType\": \"call\",\n    \"rho\": undefined,\n    \"strikePrice\": 190,\n    \"symbol\": \"ETH-USD-200724-190-C\",\n    \"theta\": undefined,\n    \"timestamp\": 2020-07-24T07:00:00.001Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": 243.11,\n    \"vega\": undefined,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 10`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": undefined,\n    \"bestAskPrice\": undefined,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": undefined,\n    \"bestBidPrice\": undefined,\n    \"delta\": undefined,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2020-07-24T08:00:00.000Z,\n    \"gamma\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markIV\": 2.5227,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 310,\n    \"symbol\": \"ETH-USD-200724-310-P\",\n    \"theta\": undefined,\n    \"timestamp\": 2020-07-24T07:00:00.001Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": 243.11,\n    \"vega\": undefined,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 11`] = `\n[\n  {\n    \"askAmount\": 305,\n    \"askPrice\": 0.0305,\n    \"bidAmount\": 405,\n    \"bidPrice\": 0.0285,\n    \"exchange\": \"okex-options\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"BTC-USD-200327-8000-P\",\n    \"timestamp\": 2020-01-31T23:59:06.622Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 12`] = `[]`;\n\nexports[`mappers map okex-options messages 13`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 0.234,\n      },\n      {\n        \"amount\": 100,\n        \"price\": 0.2345,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"okex-options\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-02-08T00:00:02.997Z,\n    \"symbol\": \"BTC-USD-200327-12000-P\",\n    \"timestamp\": 2020-02-08T00:00:28.101Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 14`] = `\n[\n  {\n    \"bestAskAmount\": 505,\n    \"bestAskIV\": 0.7813,\n    \"bestAskPrice\": 0.153,\n    \"bestBidAmount\": 505,\n    \"bestBidIV\": 0.7495,\n    \"bestBidPrice\": 0.1465,\n    \"delta\": -0.5402682903,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2020-09-25T08:00:00.000Z,\n    \"gamma\": 1.4602562596,\n    \"lastPrice\": 0.153,\n    \"localTimestamp\": 2020-02-08T00:00:02.997Z,\n    \"markIV\": 0.7637,\n    \"markPrice\": 0.14927916,\n    \"openInterest\": 1,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 240,\n    \"symbol\": \"ETH-USD-200925-240-P\",\n    \"theta\": -0.0007332882,\n    \"timestamp\": 2020-06-08T12:52:00.000Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": undefined,\n    \"vega\": 0.002094302,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 15`] = `[]`;\n\nexports[`mappers map okex-options messages 16`] = `\n[\n  {\n    \"bestAskAmount\": 505,\n    \"bestAskIV\": 0.7813,\n    \"bestAskPrice\": 0.153,\n    \"bestBidAmount\": 505,\n    \"bestBidIV\": 0.7507,\n    \"bestBidPrice\": 0.1465,\n    \"delta\": -0.5401157512,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2020-09-25T08:00:00.000Z,\n    \"gamma\": 1.460028096,\n    \"lastPrice\": 0.153,\n    \"localTimestamp\": 2020-02-08T00:00:02.997Z,\n    \"markIV\": 0.7637,\n    \"markPrice\": 0.14921543,\n    \"openInterest\": 1,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 240,\n    \"symbol\": \"ETH-USD-200925-240-P\",\n    \"theta\": -0.0007332464,\n    \"timestamp\": 2020-06-08T12:52:03.000Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": 243.11,\n    \"vega\": 0.0020941549,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 17`] = `\n[\n  {\n    \"bestAskAmount\": 55,\n    \"bestAskIV\": 0.8814,\n    \"bestAskPrice\": 0.3325,\n    \"bestBidAmount\": 25,\n    \"bestBidIV\": 0.6934,\n    \"bestBidPrice\": 0.3065,\n    \"delta\": 0.5085224419,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2020-09-25T08:00:00.000Z,\n    \"gamma\": 0.0821676388,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2020-02-08T00:00:02.997Z,\n    \"markIV\": 0.7875,\n    \"markPrice\": 0.31908882,\n    \"openInterest\": undefined,\n    \"optionType\": \"call\",\n    \"rho\": undefined,\n    \"strikePrice\": 180,\n    \"symbol\": \"ETH-USD-200925-180-C\",\n    \"theta\": -0.0004980699,\n    \"timestamp\": 2020-06-08T12:52:00.000Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": 243.11,\n    \"vega\": 0.0013866212,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 18`] = `\n[\n  {\n    \"bestAskAmount\": 4,\n    \"bestAskIV\": 0.6348,\n    \"bestAskPrice\": 0.018,\n    \"bestBidAmount\": 50,\n    \"bestBidIV\": 0.6055,\n    \"bestBidPrice\": 0.0165,\n    \"delta\": -0.3860939252,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2020-06-05T08:00:00.000Z,\n    \"gamma\": 5.6271994199,\n    \"lastPrice\": 0.0185,\n    \"localTimestamp\": 2020-02-08T00:00:02.997Z,\n    \"markIV\": 0.6595,\n    \"markPrice\": 0.01886752,\n    \"openInterest\": 486,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 9250,\n    \"symbol\": \"BTC-USD-200605-9250-P\",\n    \"theta\": -0.0031224769,\n    \"timestamp\": 2020-06-01T00:00:39.117Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"BTC-USD\",\n    \"underlyingPrice\": undefined,\n    \"vega\": 0.0004103337,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 19`] = `[]`;\n\nexports[`mappers map okex-options messages 20`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": undefined,\n    \"bestAskPrice\": undefined,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": undefined,\n    \"bestBidPrice\": undefined,\n    \"delta\": undefined,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2020-07-24T08:00:00.000Z,\n    \"gamma\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2020-02-08T00:00:02.997Z,\n    \"markIV\": 1.6437,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"optionType\": \"call\",\n    \"rho\": undefined,\n    \"strikePrice\": 190,\n    \"symbol\": \"ETH-USD-200724-190-C\",\n    \"theta\": undefined,\n    \"timestamp\": 2020-07-24T07:00:00.001Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": 243.11,\n    \"vega\": undefined,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 21`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": undefined,\n    \"bestAskPrice\": undefined,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": undefined,\n    \"bestBidPrice\": undefined,\n    \"delta\": undefined,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2020-07-24T08:00:00.000Z,\n    \"gamma\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2020-02-08T00:00:02.997Z,\n    \"markIV\": 2.5227,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 310,\n    \"symbol\": \"ETH-USD-200724-310-P\",\n    \"theta\": undefined,\n    \"timestamp\": 2020-07-24T07:00:00.001Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": 243.11,\n    \"vega\": undefined,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 22`] = `\n[\n  {\n    \"askAmount\": 305,\n    \"askPrice\": 0.0305,\n    \"bidAmount\": 405,\n    \"bidPrice\": 0.0285,\n    \"exchange\": \"okex-options\",\n    \"localTimestamp\": 2020-02-08T00:00:02.997Z,\n    \"symbol\": \"BTC-USD-200327-8000-P\",\n    \"timestamp\": 2020-01-31T23:59:06.622Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 23`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 500,\n        \"price\": 0.1795,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 0.18,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"okex-options\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"symbol\": \"ETH-USD-220128-3500-C\",\n    \"timestamp\": 2021-12-20T12:00:00.039Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 24`] = `[]`;\n\nexports[`mappers map okex-options messages 25`] = `[]`;\n\nexports[`mappers map okex-options messages 26`] = `[]`;\n\nexports[`mappers map okex-options messages 27`] = `\n[\n  {\n    \"askAmount\": 111,\n    \"askPrice\": 0.0005,\n    \"bidAmount\": undefined,\n    \"bidPrice\": undefined,\n    \"exchange\": \"okex-options\",\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"symbol\": \"ETH-USD-211231-9600-C\",\n    \"timestamp\": 2021-12-20T12:00:03.301Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 28`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": 0.8203208593,\n    \"bestAskPrice\": undefined,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": 0.7421960156,\n    \"bestBidPrice\": undefined,\n    \"delta\": 0.1975745164,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2021-12-22T08:00:00.000Z,\n    \"gamma\": 4.7290833601,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"markIV\": 0.7794507758,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"optionType\": \"call\",\n    \"rho\": undefined,\n    \"strikePrice\": 4000,\n    \"symbol\": \"ETH-USD-211222-4000-C\",\n    \"theta\": -0.004262964,\n    \"timestamp\": 2021-12-20T12:00:59.301Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": 3814.05,\n    \"vega\": 0.0002005415,\n  },\n  {\n    \"bestAskAmount\": 111,\n    \"bestAskIV\": 1.9531310937,\n    \"bestAskPrice\": 0.0005,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": undefined,\n    \"bestBidPrice\": undefined,\n    \"delta\": 0.0034043137,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2021-12-31T08:00:00.000Z,\n    \"gamma\": 0.0275368426,\n    \"lastPrice\": 0.006,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"markIV\": 1.8880399194,\n    \"markPrice\": 3.8005764218904408,\n    \"openInterest\": 36,\n    \"optionType\": \"call\",\n    \"rho\": undefined,\n    \"strikePrice\": 9600,\n    \"symbol\": \"ETH-USD-211231-9600-C\",\n    \"theta\": -0.0001676198,\n    \"timestamp\": 2021-12-20T12:00:59.181Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": 3814.05,\n    \"vega\": 0.0000192452,\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 29`] = `\n[\n  {\n    \"amount\": 1,\n    \"exchange\": \"okex-options\",\n    \"id\": \"376\",\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"price\": 0.0005,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USD-211224-56000-C\",\n    \"timestamp\": 2021-12-20T12:00:07.045Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex-options messages 30`] = `\n[\n  {\n    \"bestAskAmount\": undefined,\n    \"bestAskIV\": 5,\n    \"bestAskPrice\": undefined,\n    \"bestBidAmount\": undefined,\n    \"bestBidIV\": undefined,\n    \"bestBidPrice\": undefined,\n    \"delta\": -1.0127414362,\n    \"exchange\": \"okex-options\",\n    \"expirationDate\": 2021-12-27T08:00:00.000Z,\n    \"gamma\": 5.1005664647,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"markIV\": 1.30710927,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"optionType\": \"put\",\n    \"rho\": undefined,\n    \"strikePrice\": 4150,\n    \"symbol\": \"ETH-USD-211227-4150-P\",\n    \"theta\": -0.0002998793,\n    \"timestamp\": 2021-12-27T07:00:00.390Z,\n    \"type\": \"option_summary\",\n    \"underlyingIndex\": \"ETH-USD\",\n    \"underlyingPrice\": 3814.05,\n    \"vega\": 0.0000045884,\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 1`] = `\n[\n  {\n    \"amount\": 0.12,\n    \"exchange\": \"okex-swap\",\n    \"id\": \"423886239\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"price\": 328.74,\n    \"side\": \"sell\",\n    \"symbol\": \"BCH-USDT\",\n    \"timestamp\": 2019-08-01T00:00:08.806Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 264,\n        \"price\": 0.3198,\n      },\n      {\n        \"amount\": 222,\n        \"price\": 0.3199,\n      },\n      {\n        \"amount\": 2014,\n        \"price\": 0.3219,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1646,\n        \"price\": 0.3196,\n      },\n      {\n        \"amount\": 1672,\n        \"price\": 0.3195,\n      },\n    ],\n    \"exchange\": \"okex-swap\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"XRP-USD-SWAP\",\n    \"timestamp\": 2019-08-01T00:00:08.930Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 3`] = `\n[\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 329.3,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BCH-USD-SWAP\",\n    \"timestamp\": 2019-08-01T00:00:02.483Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": 329.3,\n    \"bidAmount\": undefined,\n    \"bidPrice\": 329.29,\n    \"exchange\": \"okex-swap\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"BCH-USD-SWAP\",\n    \"timestamp\": 2019-08-01T00:00:02.483Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 4`] = `\n[\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": 0.00023534,\n    \"fundingTimestamp\": 2019-08-01T04:00:00.000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 329.3,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0.00037,\n    \"symbol\": \"BCH-USD-SWAP\",\n    \"timestamp\": 2019-08-01T00:00:02.483Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 5`] = `\n[\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": 0.00023534,\n    \"fundingTimestamp\": 2019-08-01T04:00:00.000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 329.3,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markPrice\": 329.3,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0.00037,\n    \"symbol\": \"BCH-USD-SWAP\",\n    \"timestamp\": 2019-08-01T00:00:20.773Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 6`] = `[]`;\n\nexports[`mappers map okex-swap messages 7`] = `\n[\n  {\n    \"amount\": 0.12,\n    \"exchange\": \"okex-swap\",\n    \"id\": \"423886240\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"price\": 328.74,\n    \"side\": \"sell\",\n    \"symbol\": \"BCH-USDT\",\n    \"timestamp\": 2019-08-01T00:00:08.816Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 8`] = `\n[\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 9337.7,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 2233398,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2020-01-31T23:59:53.276Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": undefined,\n    \"askPrice\": 9336.7,\n    \"bidAmount\": undefined,\n    \"bidPrice\": 9336.6,\n    \"exchange\": \"okex-swap\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2020-01-31T23:59:53.276Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 9`] = `\n[\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 11654.5,\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"markPrice\": undefined,\n    \"openInterest\": 1322785,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2020-09-01T00:00:00.453Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 2190,\n    \"askPrice\": 11654.6,\n    \"bidAmount\": 3690,\n    \"bidPrice\": 11654.5,\n    \"exchange\": \"okex-swap\",\n    \"localTimestamp\": 2019-08-01T00:00:02.997Z,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2020-09-01T00:00:00.453Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 10`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 11.749,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"okex-swap\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-02-08T00:00:02.997Z,\n    \"symbol\": \"ETC-USDT-SWAP\",\n    \"timestamp\": 2020-02-08T00:01:00.022Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 11`] = `[]`;\n\nexports[`mappers map okex-swap messages 12`] = `\n[\n  {\n    \"amount\": 8,\n    \"exchange\": \"okex-swap\",\n    \"id\": undefined,\n    \"localTimestamp\": 2020-02-08T00:00:02.997Z,\n    \"price\": 3.523,\n    \"side\": \"sell\",\n    \"symbol\": \"UNI-USD-SWAP\",\n    \"timestamp\": 2020-12-18T00:30:58.374Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 13`] = `\n[\n  {\n    \"amount\": 30,\n    \"exchange\": \"okex-swap\",\n    \"id\": undefined,\n    \"localTimestamp\": 2020-02-08T00:00:02.997Z,\n    \"price\": 22376.9,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT-SWAP\",\n    \"timestamp\": 2020-12-18T00:31:08.794Z,\n    \"type\": \"liquidation\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 14`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 14,\n        \"price\": 0.65442,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 0.65441,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 0.65418,\n      },\n    ],\n    \"exchange\": \"okex-swap\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"symbol\": \"REN-USDT-SWAP\",\n    \"timestamp\": 2021-12-22T00:00:36.035Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 15`] = `\n[\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": 0.00048105,\n    \"fundingTimestamp\": 2021-12-22T00:00:00.000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0.00114,\n    \"symbol\": \"WNCG-USDT-SWAP\",\n    \"timestamp\": 2021-12-23T00:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 16`] = `\n[\n  {\n    \"amount\": 5,\n    \"exchange\": \"okex-swap\",\n    \"id\": \"148266905\",\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"price\": 48938.5,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USDT-SWAP\",\n    \"timestamp\": 2021-12-22T00:00:36.050Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 17`] = `\n[\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": 0.00048105,\n    \"fundingTimestamp\": 2021-12-22T00:00:00.000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 2.1729,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0.00114,\n    \"symbol\": \"WNCG-USDT-SWAP\",\n    \"timestamp\": 2021-12-23T00:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"askAmount\": 168,\n    \"askPrice\": 2.1738,\n    \"bidAmount\": 2,\n    \"bidPrice\": 2.1737,\n    \"exchange\": \"okex-swap\",\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"symbol\": \"WNCG-USDT-SWAP\",\n    \"timestamp\": 2021-12-22T00:01:03.109Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 18`] = `[]`;\n\nexports[`mappers map okex-swap messages 19`] = `\n[\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": 0.00048105,\n    \"fundingTimestamp\": 2021-12-22T00:00:00.000Z,\n    \"indexPrice\": 2.1675,\n    \"lastPrice\": 2.1729,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"markPrice\": 2.1729,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0.00114,\n    \"symbol\": \"WNCG-USDT-SWAP\",\n    \"timestamp\": 2021-12-23T00:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 20`] = `\n[\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": 0.00048105,\n    \"fundingTimestamp\": 2021-12-22T00:00:00.000Z,\n    \"indexPrice\": 2.1675,\n    \"lastPrice\": 2.1729,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"markPrice\": 2.1729,\n    \"openInterest\": 644195,\n    \"predictedFundingRate\": 0.00114,\n    \"symbol\": \"WNCG-USDT-SWAP\",\n    \"timestamp\": 2021-12-23T00:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 21`] = `\n[\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": 2021-12-30T08:00:00.000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": undefined,\n    \"localTimestamp\": 2021-12-23T00:00:00.000Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0.0003,\n    \"symbol\": \"SOS-USDT-SWAP\",\n    \"timestamp\": 2021-12-23T00:00:00.000Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 22`] = `[]`;\n\nexports[`mappers map okex-swap messages 23`] = `\n[\n  {\n    \"askAmount\": 727,\n    \"askPrice\": 38632.4,\n    \"bidAmount\": 990,\n    \"bidPrice\": 38632.3,\n    \"exchange\": \"okex-swap\",\n    \"localTimestamp\": 2022-05-06T00:00:00.000Z,\n    \"symbol\": \"BTC-USDT-SWAP\",\n    \"timestamp\": 2022-05-05T14:32:00.004Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map okex-swap messages 24`] = `\n[\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 2.1729,\n    \"localTimestamp\": 2022-05-06T00:00:00.000Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"WNCG-USDT-SWAP\",\n    \"timestamp\": 2021-12-22T00:01:03.109Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 1`] = `\n[\n  {\n    \"exchange\": \"phemex\",\n    \"fundingRate\": -0.00039075,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 5898.1349,\n    \"lastPrice\": 5882,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"markPrice\": 5895.8348,\n    \"openInterest\": 10113855,\n    \"predictedFundingRate\": -0.00260708,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2020-03-30T00:00:59.199354Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 2`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 46385,\n        \"price\": 5879.5,\n      },\n    ],\n    \"exchange\": \"phemex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2020-03-30T00:00:59.126872Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 62442,\n        \"price\": 1.473,\n      },\n      {\n        \"amount\": 7957,\n        \"price\": 1.484,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 64579,\n        \"price\": 1.468,\n      },\n    ],\n    \"exchange\": \"phemex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"XTZUSD\",\n    \"timestamp\": 2020-03-30T00:00:58.842641Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 4`] = `\n[\n  {\n    \"amount\": 56,\n    \"exchange\": \"phemex\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 2.021,\n    \"side\": \"buy\",\n    \"symbol\": \"LINKUSD\",\n    \"timestamp\": 2020-03-30T00:00:59.381696Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 5`] = `[]`;\n\nexports[`mappers map phemex messages 6`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 237505,\n        \"price\": 5869,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 328758,\n        \"price\": 5868.5,\n      },\n    ],\n    \"exchange\": \"phemex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2020-03-30T00:00:00.543970Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 7`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.088633,\n        \"price\": 9545.32,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9545.28,\n      },\n    ],\n    \"exchange\": \"phemex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"SBTCUSDT\",\n    \"timestamp\": 2020-06-04T10:57:01.628126Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 8`] = `\n[\n  {\n    \"amount\": 0.10576,\n    \"exchange\": \"phemex\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 240.25,\n    \"side\": \"buy\",\n    \"symbol\": \"SETHUSDT\",\n    \"timestamp\": 2020-06-04T10:57:04.163281Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 9`] = `\n[\n  {\n    \"amount\": 0.002791,\n    \"exchange\": \"phemex\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 9544.88,\n    \"side\": \"sell\",\n    \"symbol\": \"SBTCUSDT\",\n    \"timestamp\": 2020-06-04T10:57:06.414925Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 10`] = `\n[\n  {\n    \"amount\": 6,\n    \"exchange\": \"phemex\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 4.378,\n    \"side\": \"sell\",\n    \"symbol\": \"LINKUSD\",\n    \"timestamp\": 2020-06-04T10:57:10.652613Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 11`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1.453,\n        \"price\": 16548,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.825,\n        \"price\": 16543.7,\n      },\n      {\n        \"amount\": 0.031,\n        \"price\": 13244,\n      },\n      {\n        \"amount\": 0.005,\n        \"price\": 10750,\n      },\n    ],\n    \"exchange\": \"phemex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2022-11-23T10:20:50.490348Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 12`] = `\n[\n  {\n    \"amount\": 0.7,\n    \"exchange\": \"phemex\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 16545.6,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2022-11-23T10:19:53.402790Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 13`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1.138,\n        \"price\": 16547.7,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"phemex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2022-11-23T10:20:53.605814Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 14`] = `\n[\n  {\n    \"exchange\": \"phemex\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 13.03062296,\n    \"lastPrice\": 13.029,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"markPrice\": 13.03154351,\n    \"openInterest\": 0,\n    \"predictedFundingRate\": 0.0001,\n    \"symbol\": \"SOLUSDT\",\n    \"timestamp\": 2022-11-23T10:20:55.202180Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"exchange\": \"phemex\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 16553.56998432,\n    \"lastPrice\": 16545.6,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"markPrice\": 16554.73942506,\n    \"openInterest\": 0,\n    \"predictedFundingRate\": 0.0001,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2022-11-23T10:20:55.202180Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`mappers map phemex messages 15`] = `\n[\n  {\n    \"amount\": 244.65,\n    \"exchange\": \"phemex\",\n    \"id\": undefined,\n    \"localTimestamp\": 2019-12-01T00:00:01.275Z,\n    \"price\": 0.3758,\n    \"side\": \"buy\",\n    \"symbol\": \"XRPUSDT\",\n    \"timestamp\": 2022-11-23T10:20:57.616162Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map poloniex messages 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 11210.09190734,\n        \"price\": 0.00000253,\n      },\n      {\n        \"amount\": 264.83225116,\n        \"price\": 0.00000254,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 184.56548785,\n        \"price\": 0.00000252,\n      },\n    ],\n    \"exchange\": \"poloniex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"BTC_BTS\",\n    \"timestamp\": 2020-07-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map poloniex messages 2`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 84147.13099837,\n        \"price\": 0.00000249,\n      },\n    ],\n    \"exchange\": \"poloniex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"BTC_BTS\",\n    \"timestamp\": 2020-07-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map poloniex messages 3`] = `\n[\n  {\n    \"amount\": 0.16519127,\n    \"exchange\": \"poloniex\",\n    \"id\": \"572068\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 158.19075628,\n    \"side\": \"buy\",\n    \"symbol\": \"USDC_BCHSV\",\n    \"timestamp\": 2020-07-01T00:00:02.000Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3.74516873,\n        \"price\": 158.19075628,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"poloniex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"USDC_BCHSV\",\n    \"timestamp\": 2020-07-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map poloniex messages 4`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2075.23326384,\n        \"price\": 0.0364702,\n      },\n      {\n        \"amount\": 2174.03060057,\n        \"price\": 0.03647022,\n      },\n    ],\n    \"exchange\": \"poloniex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"USDT_MANA\",\n    \"timestamp\": 2020-07-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map poloniex messages 5`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 8597.42720734,\n        \"price\": 0.00000253,\n      },\n      {\n        \"amount\": 2877.49695116,\n        \"price\": 0.00000254,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"poloniex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"BTC_BTS\",\n    \"timestamp\": 2020-07-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map poloniex messages 6`] = `[]`;\n\nexports[`mappers map poloniex messages 7`] = `\n[\n  {\n    \"amount\": 98.5515349,\n    \"exchange\": \"poloniex\",\n    \"id\": \"20441515\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 0.00695218,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC_XMR\",\n    \"timestamp\": 2020-07-01T00:00:36.000Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 1.72607982,\n    \"exchange\": \"poloniex\",\n    \"id\": \"20441516\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 0.00695217,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC_XMR\",\n    \"timestamp\": 2020-07-01T00:00:36.000Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 0.00695218,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 0.00695217,\n      },\n    ],\n    \"exchange\": \"poloniex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"symbol\": \"BTC_XMR\",\n    \"timestamp\": 2020-07-01T00:00:01.275Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map poloniex messages 8`] = `\n[\n  {\n    \"amount\": 299.99145733,\n    \"exchange\": \"poloniex\",\n    \"id\": \"10384654\",\n    \"localTimestamp\": 2020-07-01T00:00:01.275Z,\n    \"price\": 0.00000226,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC_BTS\",\n    \"timestamp\": 2020-08-11T17:36:00.000Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map poloniex messages 9`] = `[]`;\n\nexports[`mappers map poloniex messages 10`] = `\n[\n  {\n    \"amount\": 53.0866,\n    \"exchange\": \"poloniex\",\n    \"id\": \"60100203\",\n    \"localTimestamp\": 2022-08-02T00:00:01.275Z,\n    \"price\": 1.0016,\n    \"side\": \"sell\",\n    \"symbol\": \"USDD_USDT\",\n    \"timestamp\": 2022-08-08T00:00:59.838Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map poloniex messages 11`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 145.01703,\n        \"price\": 245.688,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 510.51612,\n        \"price\": 0.062,\n      },\n    ],\n    \"exchange\": \"poloniex\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2022-08-02T00:00:01.275Z,\n    \"symbol\": \"VSP_TRX\",\n    \"timestamp\": 2022-08-08T00:00:00.614Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map poloniex messages 12`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 1.18,\n        \"price\": 0.004387,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"poloniex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2022-08-02T00:00:01.275Z,\n    \"symbol\": \"AAVE_BTC\",\n    \"timestamp\": 2022-08-08T00:00:59.824Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map serum messages 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 2571.1,\n        \"price\": 5.235,\n      },\n      {\n        \"amount\": 992.7,\n        \"price\": 5.24,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 2405.1,\n        \"price\": 5.202,\n      },\n    ],\n    \"exchange\": \"serum\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"symbol\": \"RAY/USDT\",\n    \"timestamp\": 2021-05-21T23:58:56.899Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map serum messages 2`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 37905.7,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 36304.8,\n      },\n    ],\n    \"exchange\": \"serum\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"symbol\": \"BTC/USDT\",\n    \"timestamp\": 2021-05-22T00:00:00.101Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map serum messages 3`] = `\n[\n  {\n    \"amount\": 185.8,\n    \"exchange\": \"serum\",\n    \"id\": \"96845406386975144808722|185.8|1621641659448\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"price\": 5.235,\n    \"side\": \"buy\",\n    \"symbol\": \"RAY/USDT\",\n    \"timestamp\": 2021-05-22T00:00:59.448Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map serum messages 4`] = `\n[\n  {\n    \"askAmount\": 995,\n    \"askPrice\": 2.2417,\n    \"bidAmount\": 3051,\n    \"bidPrice\": 2.2173,\n    \"exchange\": \"serum\",\n    \"localTimestamp\": 2021-05-22T00:00:59.464Z,\n    \"symbol\": \"OXY/USDT\",\n    \"timestamp\": 2021-09-30T23:55:43.411Z,\n    \"type\": \"book_ticker\",\n  },\n]\n`;\n\nexports[`mappers map upbit messages 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 103.6,\n        \"price\": 41840,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 47.62562404,\n        \"price\": 41730,\n      },\n      {\n        \"amount\": 250,\n        \"price\": 41720,\n      },\n    ],\n    \"exchange\": \"upbit\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2021-03-02T23:59:59.000Z,\n    \"symbol\": \"KRW-DOT\",\n    \"timestamp\": 2021-03-02T23:59:59.677Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`mappers map upbit messages 2`] = `\n[\n  {\n    \"amount\": 836.12040133,\n    \"exchange\": \"upbit\",\n    \"id\": \"1614729599000000\",\n    \"localTimestamp\": 2021-03-02T23:59:59.000Z,\n    \"price\": 58.4,\n    \"side\": \"sell\",\n    \"symbol\": \"KRW-DOGE\",\n    \"timestamp\": 2021-03-02T23:59:59.000Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`mappers map upbit messages 3`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 8.3912024,\n        \"price\": 18.14783928,\n      },\n      {\n        \"amount\": 114.26866982,\n        \"price\": 19.06366929,\n      },\n      {\n        \"amount\": 68.19185642,\n        \"price\": 19.06385993,\n      },\n      {\n        \"amount\": 0.72930705,\n        \"price\": 19.12,\n      },\n      {\n        \"amount\": 2.43102349,\n        \"price\": 19.21804586,\n      },\n      {\n        \"amount\": 3.99384271,\n        \"price\": 19.38409889,\n      },\n      {\n        \"amount\": 7.56318421,\n        \"price\": 19.47096205,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 19.5,\n      },\n      {\n        \"amount\": 10,\n        \"price\": 20,\n      },\n      {\n        \"amount\": 24.02061287,\n        \"price\": 20.3795999,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 20.5,\n      },\n      {\n        \"amount\": 16.54438329,\n        \"price\": 20.86938843,\n      },\n      {\n        \"amount\": 0.7249055,\n        \"price\": 20.945925,\n      },\n      {\n        \"amount\": 104.42260532,\n        \"price\": 21.77325748,\n      },\n      {\n        \"amount\": 44.18802656,\n        \"price\": 22,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 10.76125737,\n        \"price\": 17.56010719,\n      },\n      {\n        \"amount\": 0.60098647,\n        \"price\": 17.56008962,\n      },\n      {\n        \"amount\": 40.08298935,\n        \"price\": 17.46376733,\n      },\n      {\n        \"amount\": 85.89212039,\n        \"price\": 17.46376727,\n      },\n      {\n        \"amount\": 10.37437886,\n        \"price\": 17.46351855,\n      },\n      {\n        \"amount\": 458.10526221,\n        \"price\": 17.46323533,\n      },\n      {\n        \"amount\": 258.85092546,\n        \"price\": 17.46323528,\n      },\n      {\n        \"amount\": 0.22290428,\n        \"price\": 17.4250661,\n      },\n      {\n        \"amount\": 43.70611632,\n        \"price\": 17.4018,\n      },\n      {\n        \"amount\": 10.35403701,\n        \"price\": 17.07913668,\n      },\n      {\n        \"amount\": 1.19942792,\n        \"price\": 15.835,\n      },\n      {\n        \"amount\": 0.52467383,\n        \"price\": 15.33571539,\n      },\n      {\n        \"amount\": 1.25611255,\n        \"price\": 15.045,\n      },\n      {\n        \"amount\": 1.44779497,\n        \"price\": 15,\n      },\n      {\n        \"amount\": 0.48159519,\n        \"price\": 14.994004,\n      },\n    ],\n    \"exchange\": \"upbit\",\n    \"isSnapshot\": true,\n    \"localTimestamp\": 2021-03-02T23:59:59.000Z,\n    \"symbol\": \"USDT-ETC\",\n    \"timestamp\": 2023-08-08T21:40:05.062000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n"
  },
  {
    "path": "test/__snapshots__/replay.test.ts.snap",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`replay replays normalized data for each supported exchange: binance 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 4.367317,\n        \"price\": 4103.93,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4103.95,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.461763,\n        \"price\": 4102.36,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4102.34,\n      },\n      {\n        \"amount\": 0.5,\n        \"price\": 4101.59,\n      },\n    ],\n    \"exchange\": \"binance\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.816921Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-04-01T00:00:01.697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 0.022208,\n    \"exchange\": \"binance\",\n    \"id\": \"109344068\",\n    \"localTimestamp\": 2019-04-01T00:00:02.112665Z,\n    \"price\": 4102.44,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-04-01T00:00:01.991Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.109121,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 4103.92,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4103.96,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4103.99,\n      },\n      {\n        \"amount\": 0.029246,\n        \"price\": 4104.07,\n      },\n      {\n        \"amount\": 0.5,\n        \"price\": 4104.11,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4104.13,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4106.3,\n      },\n      {\n        \"amount\": 0.002914,\n        \"price\": 4924.71,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1.679675,\n        \"price\": 4102.44,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4102.32,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4101.55,\n      },\n      {\n        \"amount\": 0.5,\n        \"price\": 4098.12,\n      },\n    ],\n    \"exchange\": \"binance\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.816631Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-04-01T00:00:02.697Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 0.408524,\n    \"exchange\": \"binance\",\n    \"id\": \"109344069\",\n    \"localTimestamp\": 2019-04-01T00:00:03.004749Z,\n    \"price\": 4102.44,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-04-01T00:00:02.886Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.137889,\n    \"exchange\": \"binance\",\n    \"id\": \"109344070\",\n    \"localTimestamp\": 2019-04-01T00:00:03.108274Z,\n    \"price\": 4102.44,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-04-01T00:00:02.989Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.076189,\n    \"exchange\": \"binance\",\n    \"id\": \"109344071\",\n    \"localTimestamp\": 2019-04-01T00:00:03.133299Z,\n    \"price\": 4103,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-04-01T00:00:03.014Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.010627,\n    \"exchange\": \"binance\",\n    \"id\": \"109344072\",\n    \"localTimestamp\": 2019-04-01T00:00:03.173236Z,\n    \"price\": 4103,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-04-01T00:00:03.054Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.137889,\n    \"exchange\": \"binance\",\n    \"id\": \"109344073\",\n    \"localTimestamp\": 2019-04-01T00:00:03.209482Z,\n    \"price\": 4102.44,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-04-01T00:00:03.089Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.034679,\n    \"exchange\": \"binance\",\n    \"id\": \"109344074\",\n    \"localTimestamp\": 2019-04-01T00:00:03.313916Z,\n    \"price\": 4102.43,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-04-01T00:00:03.195Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.022305,\n        \"price\": 4103,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4104.07,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4102.44,\n      },\n      {\n        \"amount\": 0.689473,\n        \"price\": 4102.43,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4101.54,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4100.26,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 3942.01,\n      },\n    ],\n    \"exchange\": \"binance\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.817699Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-04-01T00:00:03.698Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: binance-dex 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 12999.9,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"binance-dex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:01.094711Z,\n    \"symbol\": \"BTCB-1DE_USDSB-1AC\",\n    \"timestamp\": 2019-07-01T00:00:01.094711Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 10648.8,\n      },\n    ],\n    \"exchange\": \"binance-dex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:02.020406Z,\n    \"symbol\": \"BTCB-1DE_USDSB-1AC\",\n    \"timestamp\": 2019-07-01T00:00:02.020406Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.0117177,\n        \"price\": 10694.5,\n      },\n    ],\n    \"exchange\": \"binance-dex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:02.842449Z,\n    \"symbol\": \"BTCB-1DE_USDSB-1AC\",\n    \"timestamp\": 2019-07-01T00:00:02.842449Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.05058,\n        \"price\": 9682,\n      },\n    ],\n    \"exchange\": \"binance-dex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:43.257414Z,\n    \"symbol\": \"BTCB-1DE_USDSB-1AC\",\n    \"timestamp\": 2019-07-01T00:00:43.257414Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.023959,\n        \"price\": 10220,\n      },\n    ],\n    \"exchange\": \"binance-dex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:45.528521Z,\n    \"symbol\": \"BTCB-1DE_USDSB-1AC\",\n    \"timestamp\": 2019-07-01T00:00:45.528521Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.015697,\n        \"price\": 10399,\n      },\n    ],\n    \"exchange\": \"binance-dex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:48.363038Z,\n    \"symbol\": \"BTCB-1DE_USDSB-1AC\",\n    \"timestamp\": 2019-07-01T00:00:48.363038Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.011672,\n        \"price\": 10489,\n      },\n    ],\n    \"exchange\": \"binance-dex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:50.474668Z,\n    \"symbol\": \"BTCB-1DE_USDSB-1AC\",\n    \"timestamp\": 2019-07-01T00:00:50.474668Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.0092902,\n        \"price\": 10543,\n      },\n    ],\n    \"exchange\": \"binance-dex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:52.793488Z,\n    \"symbol\": \"BTCB-1DE_USDSB-1AC\",\n    \"timestamp\": 2019-07-01T00:00:52.793488Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.0077156,\n        \"price\": 10578,\n      },\n    ],\n    \"exchange\": \"binance-dex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:54.909588Z,\n    \"symbol\": \"BTCB-1DE_USDSB-1AC\",\n    \"timestamp\": 2019-07-01T00:00:54.909588Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.05313,\n        \"price\": 11834,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"binance-dex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:56.390430Z,\n    \"symbol\": \"BTCB-1DE_USDSB-1AC\",\n    \"timestamp\": 2019-07-01T00:00:56.390430Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: binance-jersey 1`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.043783,\n        \"price\": 8168.27,\n      },\n    ],\n    \"exchange\": \"binance-jersey\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-11-01T00:00:06.811876Z,\n    \"symbol\": \"BTCEUR\",\n    \"timestamp\": 2019-11-01T00:00:06.805Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 7042.04,\n      },\n    ],\n    \"exchange\": \"binance-jersey\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-11-01T00:00:07.311948Z,\n    \"symbol\": \"BTCGBP\",\n    \"timestamp\": 2019-11-01T00:00:07.305Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.008475,\n        \"price\": 7042,\n      },\n    ],\n    \"exchange\": \"binance-jersey\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-11-01T00:00:07.411118Z,\n    \"symbol\": \"BTCGBP\",\n    \"timestamp\": 2019-11-01T00:00:07.405Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 8183.77,\n      },\n    ],\n    \"exchange\": \"binance-jersey\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-11-01T00:00:08.011796Z,\n    \"symbol\": \"BTCEUR\",\n    \"timestamp\": 2019-11-01T00:00:08.005Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.008197,\n        \"price\": 7004.45,\n      },\n    ],\n    \"exchange\": \"binance-jersey\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-11-01T00:00:09.013405Z,\n    \"symbol\": \"BTCGBP\",\n    \"timestamp\": 2019-11-01T00:00:09.007Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1.180913,\n        \"price\": 7004.45,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 6975.01,\n      },\n    ],\n    \"exchange\": \"binance-jersey\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-11-01T00:00:09.113312Z,\n    \"symbol\": \"BTCGBP\",\n    \"timestamp\": 2019-11-01T00:00:09.107Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.027087,\n        \"price\": 7004.45,\n      },\n      {\n        \"amount\": 1.228838,\n        \"price\": 6975.01,\n      },\n    ],\n    \"exchange\": \"binance-jersey\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-11-01T00:00:09.313574Z,\n    \"symbol\": \"BTCGBP\",\n    \"timestamp\": 2019-11-01T00:00:09.307Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1.25076,\n        \"price\": 7004.45,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 6975.01,\n      },\n    ],\n    \"exchange\": \"binance-jersey\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-11-01T00:00:09.513781Z,\n    \"symbol\": \"BTCGBP\",\n    \"timestamp\": 2019-11-01T00:00:09.507Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.05,\n        \"price\": 7187,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"binance-jersey\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-11-01T00:00:09.814252Z,\n    \"symbol\": \"BTCGBP\",\n    \"timestamp\": 2019-11-01T00:00:09.807Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1.251853,\n        \"price\": 7004.45,\n      },\n    ],\n    \"exchange\": \"binance-jersey\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-11-01T00:00:10.014452Z,\n    \"symbol\": \"BTCGBP\",\n    \"timestamp\": 2019-11-01T00:00:10.007Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: binance-us 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.04,\n        \"price\": 8316.17,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"binance-us\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:14.333162Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:14.292Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8314.17,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 8295.16,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8141.04,\n      },\n    ],\n    \"exchange\": \"binance-us\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:14.432510Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:14.392Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 0.023253,\n    \"exchange\": \"binance-us\",\n    \"id\": \"8122\",\n    \"localTimestamp\": 2019-10-01T00:00:14.509645Z,\n    \"price\": 8313.22,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:14.466Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1.109555,\n        \"price\": 8313.22,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8315.42,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8316.67,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8332.71,\n      },\n      {\n        \"amount\": 0.146991,\n        \"price\": 8333.53,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8334.14,\n      },\n      {\n        \"amount\": 0.734967,\n        \"price\": 8479.33,\n      },\n      {\n        \"amount\": 0.385772,\n        \"price\": 8480.67,\n      },\n      {\n        \"amount\": 0.261,\n        \"price\": 8482.77,\n      },\n      {\n        \"amount\": 0.284586,\n        \"price\": 8484.49,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.118869,\n        \"price\": 8310.39,\n      },\n    ],\n    \"exchange\": \"binance-us\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:14.532324Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:14.492Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.04,\n        \"price\": 8301.16,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"binance-us\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:14.633443Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-10-01T00:00:14.592Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 8289.2,\n      },\n    ],\n    \"exchange\": \"binance-us\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:15.032564Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:14.992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 8288.31,\n      },\n    ],\n    \"exchange\": \"binance-us\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:15.033018Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-10-01T00:00:14.992Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 8277.32,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8272.21,\n      },\n    ],\n    \"exchange\": \"binance-us\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:15.733405Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-10-01T00:00:15.693Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8298.06,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8304.98,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8318.7,\n      },\n      {\n        \"amount\": 0.186495,\n        \"price\": 8318.88,\n      },\n      {\n        \"amount\": 0.303088,\n        \"price\": 8502.34,\n      },\n      {\n        \"amount\": 0.259136,\n        \"price\": 8504.81,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.055753,\n        \"price\": 8292.8,\n      },\n      {\n        \"amount\": 0.151793,\n        \"price\": 8277.32,\n      },\n      {\n        \"amount\": 0.110347,\n        \"price\": 8272.21,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8269,\n      },\n      {\n        \"amount\": 0.313073,\n        \"price\": 8268.65,\n      },\n      {\n        \"amount\": 0.13162,\n        \"price\": 8257.03,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8256.14,\n      },\n      {\n        \"amount\": 0.267607,\n        \"price\": 8255.78,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8240.03,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 8191.89,\n      },\n    ],\n    \"exchange\": \"binance-us\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:15.833864Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-10-01T00:00:15.793Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8298.81,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"binance-us\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:15.933832Z,\n    \"symbol\": \"BTCUSDT\",\n    \"timestamp\": 2019-10-01T00:00:15.893Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: bitfinex 1`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 8328.5,\n      },\n    ],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:07.010923Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:07.003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8350.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:07.010941Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:07.003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8360.9,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:07.010949Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:07.003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8371.3,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:07.010954Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:07.003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1.93930625,\n        \"price\": 8331.1,\n      },\n    ],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:07.010958Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:07.003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 3.60417531,\n        \"price\": 8274.7,\n      },\n    ],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:07.010962Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:07.003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 5.96629,\n        \"price\": 8363.3,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:07.010966Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:07.003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1.5,\n        \"price\": 8364.7,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:07.010970Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:07.003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1,\n        \"price\": 8376.4,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:07.010974Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:07.003Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.00144562,\n        \"price\": 8378.3,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:07.010978Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-10-01T00:00:07.003Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: bitfinex-derivatives 1`] = `\n[\n  {\n    \"exchange\": \"bitfinex-derivatives\",\n    \"fundingRate\": -0.0025,\n    \"fundingTimestamp\": 2019-10-01T08:00:00.000Z,\n    \"indexPrice\": 8288.75,\n    \"lastPrice\": 8243.3,\n    \"localTimestamp\": 2019-10-01T00:00:00.853487Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0.00023044,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-10-01T00:00:00.846Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"exchange\": \"bitfinex-derivatives\",\n    \"fundingRate\": -0.0025,\n    \"fundingTimestamp\": 2019-10-01T08:00:00.000Z,\n    \"indexPrice\": 8288.85,\n    \"lastPrice\": 8243.25,\n    \"localTimestamp\": 2019-10-01T00:00:02.688238Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": 0,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-10-01T00:00:02.679Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 9528.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex-derivatives\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:03.700356Z,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-10-01T00:00:03.690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.1,\n        \"price\": 8302.1,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex-derivatives\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:03.700381Z,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-10-01T00:00:03.690Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8302.1,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex-derivatives\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:03.833739Z,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-10-01T00:00:03.826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.81140447,\n        \"price\": 9528.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex-derivatives\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:03.833756Z,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-10-01T00:00:03.826Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8322.4,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex-derivatives\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:04.041609Z,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-10-01T00:00:04.034Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.8947033,\n        \"price\": 9542.8,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex-derivatives\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:04.041634Z,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-10-01T00:00:04.034Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8299.8,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex-derivatives\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:04.228271Z,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-10-01T00:00:04.221Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 8313.7,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitfinex-derivatives\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-10-01T00:00:04.228500Z,\n    \"symbol\": \"BTCF0:USTF0\",\n    \"timestamp\": 2019-10-01T00:00:04.221Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: bitflyer 1`] = `\n[\n  {\n    \"amount\": 0.01,\n    \"exchange\": \"bitflyer\",\n    \"id\": \"1246448971\",\n    \"localTimestamp\": 2019-09-01T00:00:04.340575Z,\n    \"price\": 1020378,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:04.083442Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.30650541,\n    \"exchange\": \"bitflyer\",\n    \"id\": \"1246448972\",\n    \"localTimestamp\": 2019-09-01T00:00:04.340575Z,\n    \"price\": 1020379,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:04.083442Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.19349459,\n    \"exchange\": \"bitflyer\",\n    \"id\": \"1246448973\",\n    \"localTimestamp\": 2019-09-01T00:00:04.340575Z,\n    \"price\": 1020395,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:04.083442Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 1020378,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 1020379,\n      },\n      {\n        \"amount\": 0.13650541,\n        \"price\": 1020395,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 1021333,\n      },\n      {\n        \"amount\": 0.2,\n        \"price\": 1020810,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 1019187,\n      },\n      {\n        \"amount\": 1.44,\n        \"price\": 1013327,\n      },\n    ],\n    \"exchange\": \"bitflyer\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:04.788591Z,\n    \"symbol\": \"BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:04.788591Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.2,\n        \"price\": 1020330,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitflyer\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:04.789519Z,\n    \"symbol\": \"BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:04.789519Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.30000013,\n        \"price\": 1019501,\n      },\n    ],\n    \"exchange\": \"bitflyer\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:04.789789Z,\n    \"symbol\": \"BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:04.789789Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 1021299,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitflyer\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:04.789904Z,\n    \"symbol\": \"BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:04.789904Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.2500029,\n        \"price\": 1019636,\n      },\n    ],\n    \"exchange\": \"bitflyer\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:04.892461Z,\n    \"symbol\": \"BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:04.892461Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 1020933,\n      },\n      {\n        \"amount\": 0.30000013,\n        \"price\": 1021299,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1.01,\n        \"price\": 1017000,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 1017369,\n      },\n    ],\n    \"exchange\": \"bitflyer\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:05.053796Z,\n    \"symbol\": \"BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:05.053796Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.2499971,\n        \"price\": 1020895,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitflyer\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:05.206747Z,\n    \"symbol\": \"BTC_JPY\",\n    \"timestamp\": 2019-09-01T00:00:05.206747Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: bitmex 1`] = `\n[\n  {\n    \"exchange\": \"bitmex\",\n    \"fundingRate\": 0.0001,\n    \"fundingTimestamp\": 2019-07-01T04:00:00.000Z,\n    \"indexPrice\": 10756.81,\n    \"lastPrice\": 10761,\n    \"localTimestamp\": 2019-07-01T00:00:01.481755Z,\n    \"markPrice\": 10757.35,\n    \"openInterest\": 721672402,\n    \"predictedFundingRate\": 0.0001,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-06-30T23:59:59.914Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"exchange\": \"bitmex\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 10756.81,\n    \"lastPrice\": 11099.5,\n    \"localTimestamp\": 2019-07-01T00:00:01.481755Z,\n    \"markPrice\": 11074.21,\n    \"openInterest\": 55736941,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"XBTZ19\",\n    \"timestamp\": 2019-06-30T23:59:59.329Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 308721,\n        \"price\": 10761,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:03.293801Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-07-01T00:00:03.293801Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 11367.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 11334.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 11234.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 11201.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 11101.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 10758.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:03.293808Z,\n    \"symbol\": \"XBTZ19\",\n    \"timestamp\": 2019-07-01T00:00:03.293808Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 148586,\n        \"price\": 11401.5,\n      },\n      {\n        \"amount\": 16592,\n        \"price\": 11345.5,\n      },\n      {\n        \"amount\": 144350,\n        \"price\": 11301.5,\n      },\n      {\n        \"amount\": 137605,\n        \"price\": 11268.5,\n      },\n      {\n        \"amount\": 57597,\n        \"price\": 11168.5,\n      },\n      {\n        \"amount\": 35751,\n        \"price\": 11135.5,\n      },\n      {\n        \"amount\": 3244,\n        \"price\": 11112.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 10009,\n        \"price\": 11057.5,\n      },\n      {\n        \"amount\": 18400,\n        \"price\": 11023.5,\n      },\n      {\n        \"amount\": 5087,\n        \"price\": 11001.5,\n      },\n      {\n        \"amount\": 29730,\n        \"price\": 10990.5,\n      },\n      {\n        \"amount\": 41127,\n        \"price\": 10957.5,\n      },\n      {\n        \"amount\": 52594,\n        \"price\": 10924.5,\n      },\n      {\n        \"amount\": 7686,\n        \"price\": 10901.5,\n      },\n      {\n        \"amount\": 64480,\n        \"price\": 10890.5,\n      },\n      {\n        \"amount\": 75095,\n        \"price\": 10857.5,\n      },\n      {\n        \"amount\": 75095,\n        \"price\": 10824.5,\n      },\n      {\n        \"amount\": 75095,\n        \"price\": 10791.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:03.293819Z,\n    \"symbol\": \"XBTZ19\",\n    \"timestamp\": 2019-07-01T00:00:03.293819Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 16442,\n        \"price\": 11412.5,\n      },\n      {\n        \"amount\": 16442,\n        \"price\": 11378.5,\n      },\n      {\n        \"amount\": 16009,\n        \"price\": 11312.5,\n      },\n      {\n        \"amount\": 13650,\n        \"price\": 11279.5,\n      },\n      {\n        \"amount\": 11206,\n        \"price\": 11245.5,\n      },\n      {\n        \"amount\": 8819,\n        \"price\": 11212.5,\n      },\n      {\n        \"amount\": 6419,\n        \"price\": 11179.5,\n      },\n      {\n        \"amount\": 3930,\n        \"price\": 11145.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 873,\n        \"price\": 11067.5,\n      },\n      {\n        \"amount\": 2131,\n        \"price\": 11034.5,\n      },\n      {\n        \"amount\": 4772,\n        \"price\": 10968.5,\n      },\n      {\n        \"amount\": 6145,\n        \"price\": 10934.5,\n      },\n      {\n        \"amount\": 8737,\n        \"price\": 10868.5,\n      },\n      {\n        \"amount\": 8737,\n        \"price\": 10834.5,\n      },\n      {\n        \"amount\": 8737,\n        \"price\": 10801.5,\n      },\n      {\n        \"amount\": 8737,\n        \"price\": 10768.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:03.293831Z,\n    \"symbol\": \"XBTZ19\",\n    \"timestamp\": 2019-07-01T00:00:03.293831Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 11239.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 11106.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 11028.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 10994.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 10961.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 10928.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 10895.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 10828.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 10795.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 10762.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:03.293839Z,\n    \"symbol\": \"XBTZ19\",\n    \"timestamp\": 2019-07-01T00:00:03.293839Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 126642,\n        \"price\": 11405.5,\n      },\n      {\n        \"amount\": 152,\n        \"price\": 11372.5,\n      },\n      {\n        \"amount\": 126642,\n        \"price\": 11338.5,\n      },\n      {\n        \"amount\": 125737,\n        \"price\": 11305.5,\n      },\n      {\n        \"amount\": 107568,\n        \"price\": 11272.5,\n      },\n      {\n        \"amount\": 70350,\n        \"price\": 11205.5,\n      },\n      {\n        \"amount\": 51855,\n        \"price\": 11172.5,\n      },\n      {\n        \"amount\": 33250,\n        \"price\": 11139.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1237,\n        \"price\": 11061.5,\n      },\n      {\n        \"amount\": 4038,\n        \"price\": 10872.5,\n      },\n      {\n        \"amount\": 700,\n        \"price\": 10862.5,\n      },\n      {\n        \"amount\": 200202,\n        \"price\": 10805.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:03.293848Z,\n    \"symbol\": \"XBTZ19\",\n    \"timestamp\": 2019-07-01T00:00:03.293848Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 318,\n        \"price\": 11416.5,\n      },\n      {\n        \"amount\": 318,\n        \"price\": 11383.5,\n      },\n      {\n        \"amount\": 318,\n        \"price\": 11349.5,\n      },\n      {\n        \"amount\": 310,\n        \"price\": 11316.5,\n      },\n      {\n        \"amount\": 264,\n        \"price\": 11283.5,\n      },\n      {\n        \"amount\": 218,\n        \"price\": 11250.5,\n      },\n      {\n        \"amount\": 170,\n        \"price\": 11216.5,\n      },\n      {\n        \"amount\": 124,\n        \"price\": 11183.5,\n      },\n      {\n        \"amount\": 77,\n        \"price\": 11150.5,\n      },\n      {\n        \"amount\": 31,\n        \"price\": 11116.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 20,\n        \"price\": 11072.5,\n      },\n      {\n        \"amount\": 49,\n        \"price\": 11038.5,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 11005.5,\n      },\n      {\n        \"amount\": 110,\n        \"price\": 10972.5,\n      },\n      {\n        \"amount\": 141,\n        \"price\": 10939.5,\n      },\n      {\n        \"amount\": 173,\n        \"price\": 10905.5,\n      },\n      {\n        \"amount\": 202,\n        \"price\": 10839.5,\n      },\n      {\n        \"amount\": 202,\n        \"price\": 10772.5,\n      },\n    ],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:03.293861Z,\n    \"symbol\": \"XBTZ19\",\n    \"timestamp\": 2019-07-01T00:00:03.293861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 32018,\n        \"price\": 10762,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"bitmex\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:03.293867Z,\n    \"symbol\": \"XBTUSD\",\n    \"timestamp\": 2019-07-01T00:00:03.293867Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: bitstamp 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 4.63565946,\n        \"price\": 4092.99,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4093.79,\n      },\n      {\n        \"amount\": 0.75921098,\n        \"price\": 4094.08,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4094.18,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 4096.23,\n      },\n      {\n        \"amount\": 4.00550984,\n        \"price\": 4100.53,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4100.88,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.19661846,\n        \"price\": 4092.01,\n      },\n      {\n        \"amount\": 2.5,\n        \"price\": 4091.56,\n      },\n      {\n        \"amount\": 2.54143057,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4090.13,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4090.04,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 4089.99,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4089.95,\n      },\n      {\n        \"amount\": 5.6622,\n        \"price\": 4089.81,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4089.63,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4089.54,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4089.33,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4087.51,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4082.3,\n      },\n    ],\n    \"exchange\": \"bitstamp\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.196139Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.045621Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 0.02742352,\n    \"exchange\": \"bitstamp\",\n    \"id\": \"84550457\",\n    \"localTimestamp\": 2019-04-01T00:00:02.360385Z,\n    \"price\": 4092.02,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-04-01T00:00:02.303145Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 3654.98,\n      },\n      {\n        \"amount\": 0.045,\n        \"price\": 3654.99,\n      },\n      {\n        \"amount\": 0.029,\n        \"price\": 3657.38,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 14.657,\n        \"price\": 3644,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 3643.91,\n      },\n      {\n        \"amount\": 0.209,\n        \"price\": 3639.24,\n      },\n    ],\n    \"exchange\": \"bitstamp\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.548694Z,\n    \"symbol\": \"BTCEUR\",\n    \"timestamp\": 2019-04-01T00:00:02.054085Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 0.001643,\n    \"exchange\": \"bitstamp\",\n    \"id\": \"84550458\",\n    \"localTimestamp\": 2019-04-01T00:00:03.269614Z,\n    \"price\": 3651.3,\n    \"side\": \"buy\",\n    \"symbol\": \"BTCEUR\",\n    \"timestamp\": 2019-04-01T00:00:03.243152Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4092.99,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4093.11,\n      },\n      {\n        \"amount\": 0.157,\n        \"price\": 4095.79,\n      },\n      {\n        \"amount\": 3.659,\n        \"price\": 4096.13,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4097.55,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 4097.72,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4108.2,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1.80345325,\n        \"price\": 4092.01,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 3.6599,\n        \"price\": 4090.14,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4089.81,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4089.72,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4088.43,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4085.87,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4084.41,\n      },\n      {\n        \"amount\": 17.10580238,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4076.39,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 4076.13,\n      },\n      {\n        \"amount\": 61.18917395,\n        \"price\": 3000,\n      },\n    ],\n    \"exchange\": \"bitstamp\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.334916Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-04-01T00:00:02.158261Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 0.040804,\n    \"exchange\": \"bitstamp\",\n    \"id\": \"84550464\",\n    \"localTimestamp\": 2019-04-01T00:00:04.988740Z,\n    \"price\": 4092.01,\n    \"side\": \"sell\",\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.949418Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.96505239,\n        \"price\": 3651.3,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 3644,\n      },\n      {\n        \"amount\": 14.656,\n        \"price\": 3643.77,\n      },\n    ],\n    \"exchange\": \"bitstamp\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.043855Z,\n    \"symbol\": \"BTCEUR\",\n    \"timestamp\": 2019-04-01T00:00:04.265861Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.3460871,\n        \"price\": 4092.02,\n      },\n      {\n        \"amount\": 0.35360893,\n        \"price\": 4092.81,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4094.08,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 4108.2,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.55,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4088.43,\n      },\n      {\n        \"amount\": 61.19167395,\n        \"price\": 3000,\n      },\n    ],\n    \"exchange\": \"bitstamp\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:05.386031Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-04-01T00:00:04.135232Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 3646.03,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 3644.91,\n      },\n      {\n        \"amount\": 8.15694,\n        \"price\": 3644.64,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 3643.97,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 3643.96,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 3639.82,\n      },\n      {\n        \"amount\": 0.4,\n        \"price\": 3637.41,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 3636.91,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 3636.88,\n      },\n    ],\n    \"exchange\": \"bitstamp\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.331527Z,\n    \"symbol\": \"BTCEUR\",\n    \"timestamp\": 2019-04-01T00:00:06.619892Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4.63565946,\n        \"price\": 4093.05,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4093.14,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4093.27,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4093.36,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4093.88,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4093.97,\n      },\n      {\n        \"amount\": 3.9166,\n        \"price\": 4094.75,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4096.23,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4096.99,\n      },\n      {\n        \"amount\": 8.9002,\n        \"price\": 4104.99,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1.76264925,\n        \"price\": 4092.01,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4090.75,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4090.5,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4090.26,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4090.14,\n      },\n      {\n        \"amount\": 3.6591,\n        \"price\": 4090.05,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4089.99,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4089.81,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4089.68,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 4089.28,\n      },\n    ],\n    \"exchange\": \"bitstamp\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:07.683967Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-04-01T00:00:06.458715Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: coinbase 1`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4092.02,\n      },\n    ],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.243185Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2019-04-01T00:00:00.686000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 0.03572127,\n    \"exchange\": \"coinbase\",\n    \"id\": \"61165587\",\n    \"localTimestamp\": 2019-04-01T00:00:01.243487Z,\n    \"price\": 4095,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2019-04-01T00:00:00.691000Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12.92602169,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.243492Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2019-04-01T00:00:00.702000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.47609365,\n        \"price\": 4092.02,\n      },\n    ],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.243650Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2019-04-01T00:00:00.711000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4090.44,\n      },\n    ],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.255613Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2019-04-01T00:00:01.002000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 5,\n        \"price\": 4089.6,\n      },\n    ],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.255724Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2019-04-01T00:00:01.057000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"amount\": 0.01506752,\n    \"exchange\": \"coinbase\",\n    \"id\": \"61165588\",\n    \"localTimestamp\": 2019-04-01T00:00:01.267794Z,\n    \"price\": 4095,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2019-04-01T00:00:01.208000Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 12.91095417,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.268166Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2019-04-01T00:00:01.201000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4088.36,\n      },\n    ],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.443719Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2019-04-01T00:00:01.374000Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4096.54,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"coinbase\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:01.443755Z,\n    \"symbol\": \"BTC-USD\",\n    \"timestamp\": 2019-04-01T00:00:01.376000Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: cryptofacilities 1`] = `\n[\n  {\n    \"exchange\": \"cryptofacilities\",\n    \"fundingRate\": -6.916949965e-9,\n    \"fundingTimestamp\": 2019-04-01T04:00:00.000Z,\n    \"indexPrice\": 4093.89,\n    \"lastPrice\": 4093,\n    \"localTimestamp\": 2019-04-01T00:00:00.355406Z,\n    \"markPrice\": 4093.25,\n    \"openInterest\": 4884493,\n    \"predictedFundingRate\": -6.916949965e-9,\n    \"symbol\": \"PI_XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.135Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"exchange\": \"cryptofacilities\",\n    \"fundingRate\": 0.00018970853102633,\n    \"fundingTimestamp\": 2019-04-01T00:00:00.000Z,\n    \"indexPrice\": 0.30826,\n    \"lastPrice\": 0.3082,\n    \"localTimestamp\": 2019-04-01T00:00:00.355420Z,\n    \"markPrice\": 0.3083,\n    \"openInterest\": 1826145,\n    \"predictedFundingRate\": 0.000226080102369057,\n    \"symbol\": \"PI_XRPUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.006Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 329218,\n        \"price\": 4093,\n      },\n    ],\n    \"exchange\": \"cryptofacilities\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.355523Z,\n    \"symbol\": \"PI_XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.355523Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 18050,\n        \"price\": 4095,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"cryptofacilities\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.355527Z,\n    \"symbol\": \"PI_XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.355527Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 8100,\n        \"price\": 4085.5,\n      },\n    ],\n    \"exchange\": \"cryptofacilities\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.569127Z,\n    \"symbol\": \"PI_XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.569127Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4103.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"cryptofacilities\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.570215Z,\n    \"symbol\": \"PI_XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.570215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 100,\n        \"price\": 4101,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"cryptofacilities\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.571894Z,\n    \"symbol\": \"PI_XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.571894Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"exchange\": \"cryptofacilities\",\n    \"fundingRate\": 0.000226094770512986,\n    \"fundingTimestamp\": 2019-04-01T04:00:00.000Z,\n    \"indexPrice\": 0.30826,\n    \"lastPrice\": 0.3082,\n    \"localTimestamp\": 2019-04-01T00:00:00.692287Z,\n    \"markPrice\": 0.3083,\n    \"openInterest\": 1826145,\n    \"predictedFundingRate\": 0.000226094770512986,\n    \"symbol\": \"PI_XRPUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.670Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 10000,\n        \"price\": 0.3072,\n      },\n    ],\n    \"exchange\": \"cryptofacilities\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.787323Z,\n    \"symbol\": \"PI_XRPUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.787323Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 311168,\n        \"price\": 4093,\n      },\n    ],\n    \"exchange\": \"cryptofacilities\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.811859Z,\n    \"symbol\": \"PI_XBTUSD\",\n    \"timestamp\": 2019-04-01T00:00:00.811859Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: deribit 1`] = `\n[\n  {\n    \"exchange\": \"deribit\",\n    \"fundingRate\": 0,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": 4094.32,\n    \"lastPrice\": 4092.25,\n    \"localTimestamp\": 2019-04-01T00:00:00.244531Z,\n    \"markPrice\": 4092.39,\n    \"openInterest\": 27124991,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.180Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 42750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.336181Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.189Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 29100,\n        \"price\": 4093.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.336230Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.215Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 130180,\n        \"price\": 4092.75,\n      },\n      {\n        \"amount\": 90700,\n        \"price\": 4093,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.336278Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.294Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 59490,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.336349Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.306Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 91750,\n        \"price\": 4094,\n      },\n      {\n        \"amount\": 89490,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.336793Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.315Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 61750,\n        \"price\": 4094,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.336803Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.316Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 51780,\n        \"price\": 4094.5,\n      },\n      {\n        \"amount\": 57750,\n        \"price\": 4093.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.421310Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.410Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 119490,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.432085Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.417Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 114950,\n        \"price\": 4094.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"deribit\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:00.436038Z,\n    \"symbol\": \"BTC-PERPETUAL\",\n    \"timestamp\": 2019-04-01T00:00:00.425Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: ftx 1`] = `\n[\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 9649.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:02.805223Z,\n    \"symbol\": \"BTC-PERP\",\n    \"timestamp\": 2019-09-01T00:00:02.690336Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1.6462,\n        \"price\": 9610.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1.4935,\n        \"price\": 9599,\n      },\n    ],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:02.853016Z,\n    \"symbol\": \"BTC/USD\",\n    \"timestamp\": 2019-09-01T00:00:02.739477Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 33.9609,\n        \"price\": 9604.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:02.961133Z,\n    \"symbol\": \"BTC-PERP\",\n    \"timestamp\": 2019-09-01T00:00:02.846662Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.001,\n        \"price\": 9606,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:03.070758Z,\n    \"symbol\": \"BTC-PERP\",\n    \"timestamp\": 2019-09-01T00:00:02.957080Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 9606,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:03.208130Z,\n    \"symbol\": \"BTC-PERP\",\n    \"timestamp\": 2019-09-01T00:00:03.094028Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 9609,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 6.6513,\n        \"price\": 9598,\n      },\n    ],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:03.246250Z,\n    \"symbol\": \"BTC/USD\",\n    \"timestamp\": 2019-09-01T00:00:03.133512Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 8.67,\n        \"price\": 9611.5,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:03.285479Z,\n    \"symbol\": \"BTC/USD\",\n    \"timestamp\": 2019-09-01T00:00:03.171374Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 9603.5,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.9897,\n        \"price\": 9600,\n      },\n    ],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:03.352356Z,\n    \"symbol\": \"BTC/USD\",\n    \"timestamp\": 2019-09-01T00:00:03.235074Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 9603.25,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:03.358188Z,\n    \"symbol\": \"BTC-PERP\",\n    \"timestamp\": 2019-09-01T00:00:03.243794Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0.001,\n        \"price\": 9648.75,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 7700,\n      },\n      {\n        \"amount\": 34.9625,\n        \"price\": 9603.25,\n      },\n    ],\n    \"exchange\": \"ftx\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:03.482975Z,\n    \"symbol\": \"BTC-PERP\",\n    \"timestamp\": 2019-09-01T00:00:03.352118Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: gemini 1`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0.02082953,\n        \"price\": 9556.14,\n      },\n    ],\n    \"exchange\": \"gemini\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.542940Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:01.542940Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 9604.59,\n      },\n      {\n        \"amount\": 2.5944,\n        \"price\": 9604.08,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9606.15,\n      },\n      {\n        \"amount\": 2.20676953,\n        \"price\": 9604.07,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.20676953,\n        \"price\": 9594.64,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9596.6,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9563.26,\n      },\n      {\n        \"amount\": 2.5962,\n        \"price\": 9596.84,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9597.64,\n      },\n    ],\n    \"exchange\": \"gemini\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.542945Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:01.542945Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2.26336912,\n        \"price\": 9604.04,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9605.09,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 9604.03,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"gemini\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.542967Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:01.542967Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 9604.08,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9605.06,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 2.5923,\n        \"price\": 9596.6,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 9563.24,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9596.84,\n      },\n    ],\n    \"exchange\": \"gemini\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.542971Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:01.542971Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4.84946912,\n        \"price\": 9604.04,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"gemini\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.542997Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:01.542997Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 9596.6,\n      },\n    ],\n    \"exchange\": \"gemini\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:01.547506Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:01.547506Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 2.604,\n        \"price\": 9595.59,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 9563.24,\n      },\n    ],\n    \"exchange\": \"gemini\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:02.346573Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:02.346573Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2.26336912,\n        \"price\": 9604.04,\n      },\n      {\n        \"amount\": 4.5997,\n        \"price\": 9604.03,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"gemini\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:02.447528Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:02.447528Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 9560.85,\n      },\n    ],\n    \"exchange\": \"gemini\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:03.047170Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:03.047170Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 2,\n        \"price\": 9604.03,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"gemini\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-09-01T00:00:03.247087Z,\n    \"symbol\": \"BTCUSD\",\n    \"timestamp\": 2019-09-01T00:00:03.247087Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: kraken 1`] = `\n[\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 1,\n        \"price\": 10689.9,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:02.435284Z,\n    \"symbol\": \"XBT/USD\",\n    \"timestamp\": 2019-07-01T00:00:00.999327Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 10786.3,\n      },\n      {\n        \"amount\": 0.02797,\n        \"price\": 18300,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 10735.5,\n      },\n      {\n        \"amount\": 0.025,\n        \"price\": 9221.5,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:02.435461Z,\n    \"symbol\": \"XBT/USD\",\n    \"timestamp\": 2019-07-01T00:00:01.183480Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 10795.8,\n      },\n      {\n        \"amount\": 0.1,\n        \"price\": 18368.1,\n      },\n      {\n        \"amount\": 0.03388228,\n        \"price\": 10759.1,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 10804.8,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 10762.3,\n      },\n      {\n        \"amount\": 0.02797,\n        \"price\": 18300,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0.93600202,\n        \"price\": 10725.3,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:02.435623Z,\n    \"symbol\": \"XBT/USD\",\n    \"timestamp\": 2019-07-01T00:00:01.339084Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 1.05,\n        \"price\": 10809.2,\n      },\n    ],\n    \"bids\": [],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:02.435863Z,\n    \"symbol\": \"XBT/USD\",\n    \"timestamp\": 2019-07-01T00:00:01.437096Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 10734.2,\n      },\n      {\n        \"amount\": 0.025,\n        \"price\": 9221.5,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:02.437689Z,\n    \"symbol\": \"XBT/USD\",\n    \"timestamp\": 2019-07-01T00:00:01.654798Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 10798.6,\n      },\n      {\n        \"amount\": 0.02797,\n        \"price\": 18300,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 10718.3,\n      },\n      {\n        \"amount\": 0.00867584,\n        \"price\": 9221,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 10308.3,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 9220,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:02.437939Z,\n    \"symbol\": \"XBT/USD\",\n    \"timestamp\": 2019-07-01T00:00:01.878841Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 10759.2,\n      },\n      {\n        \"amount\": 0.1,\n        \"price\": 18368.1,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 10709.4,\n      },\n      {\n        \"amount\": 1.1,\n        \"price\": 9215,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 10696.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 9214,\n      },\n      {\n        \"amount\": 1.392,\n        \"price\": 10744.9,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:02.438160Z,\n    \"symbol\": \"XBT/USD\",\n    \"timestamp\": 2019-07-01T00:00:02.041242Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 10769.8,\n      },\n      {\n        \"amount\": 3.505,\n        \"price\": 18400,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 10710.8,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 9214,\n      },\n      {\n        \"amount\": 15.1,\n        \"price\": 10294.1,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:02.445531Z,\n    \"symbol\": \"XBT/USD\",\n    \"timestamp\": 2019-07-01T00:00:02.073269Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 1140001,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:02.593840Z,\n    \"symbol\": \"XBT/JPY\",\n    \"timestamp\": 2019-07-01T00:00:02.281059Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 10770.4,\n      },\n      {\n        \"amount\": 0.00701,\n        \"price\": 18431.1,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 1.556975,\n        \"price\": 10722.5,\n      },\n    ],\n    \"exchange\": \"kraken\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-07-01T00:00:02.598821Z,\n    \"symbol\": \"XBT/USD\",\n    \"timestamp\": 2019-07-01T00:00:02.311790Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: okex 1`] = `\n[\n  {\n    \"amount\": 0.00865209,\n    \"exchange\": \"okex\",\n    \"id\": \"1219300011\",\n    \"localTimestamp\": 2019-04-01T00:00:02.666125Z,\n    \"price\": 4103.2,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2019-04-01T00:00:00.535Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.01,\n    \"exchange\": \"okex\",\n    \"id\": \"1219300013\",\n    \"localTimestamp\": 2019-04-01T00:00:02.666125Z,\n    \"price\": 4103.1,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2019-04-01T00:00:00.535Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.016,\n    \"exchange\": \"okex\",\n    \"id\": \"1219300015\",\n    \"localTimestamp\": 2019-04-01T00:00:02.666125Z,\n    \"price\": 4103.1,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2019-04-01T00:00:00.535Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.051,\n    \"exchange\": \"okex\",\n    \"id\": \"1219300017\",\n    \"localTimestamp\": 2019-04-01T00:00:02.666125Z,\n    \"price\": 4103.1,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2019-04-01T00:00:00.535Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.01734791,\n    \"exchange\": \"okex\",\n    \"id\": \"1219300019\",\n    \"localTimestamp\": 2019-04-01T00:00:02.666125Z,\n    \"price\": 4103.1,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2019-04-01T00:00:00.535Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.02891277,\n    \"exchange\": \"okex\",\n    \"id\": \"1219300024\",\n    \"localTimestamp\": 2019-04-01T00:00:02.666125Z,\n    \"price\": 4103.1,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2019-04-01T00:00:00.573Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.05790102,\n    \"exchange\": \"okex\",\n    \"id\": \"1219300026\",\n    \"localTimestamp\": 2019-04-01T00:00:02.666125Z,\n    \"price\": 4103.1,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2019-04-01T00:00:00.573Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.08398831,\n    \"exchange\": \"okex\",\n    \"id\": \"1219300028\",\n    \"localTimestamp\": 2019-04-01T00:00:02.666125Z,\n    \"price\": 4103.1,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2019-04-01T00:00:00.573Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.15766401,\n    \"exchange\": \"okex\",\n    \"id\": \"1219300030\",\n    \"localTimestamp\": 2019-04-01T00:00:02.666125Z,\n    \"price\": 4103.1,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2019-04-01T00:00:00.573Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"amount\": 0.08559255,\n    \"exchange\": \"okex\",\n    \"id\": \"1219300032\",\n    \"localTimestamp\": 2019-04-01T00:00:02.666125Z,\n    \"price\": 4103.1,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USDT\",\n    \"timestamp\": 2019-04-01T00:00:00.573Z,\n    \"type\": \"trade\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: okex-futures 1`] = `\n[\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 4084.81,\n    \"localTimestamp\": 2019-04-01T00:00:01.801231Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-190405\",\n    \"timestamp\": 2019-04-01T00:00:00.209Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"amount\": 91,\n    \"exchange\": \"okex-futures\",\n    \"id\": \"2578234853523461\",\n    \"localTimestamp\": 2019-04-01T00:00:01.801242Z,\n    \"price\": 4084.81,\n    \"side\": \"sell\",\n    \"symbol\": \"BTC-USD-190405\",\n    \"timestamp\": 2019-03-31T23:59:01.786Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 4084.81,\n    \"localTimestamp\": 2019-04-01T00:00:01.801273Z,\n    \"markPrice\": 4084.59,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-190405\",\n    \"timestamp\": 2019-04-01T00:00:00.209Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4,\n        \"price\": 4086.74,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 4086.78,\n      },\n      {\n        \"amount\": 3,\n        \"price\": 4086.79,\n      },\n      {\n        \"amount\": 17,\n        \"price\": 4086.82,\n      },\n      {\n        \"amount\": 19,\n        \"price\": 4087.24,\n      },\n      {\n        \"amount\": 9,\n        \"price\": 4087.62,\n      },\n      {\n        \"amount\": 9,\n        \"price\": 4087.64,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 4087.83,\n      },\n      {\n        \"amount\": 47,\n        \"price\": 4088.27,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4088.38,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4090.26,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 4104.47,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4104.75,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4233.08,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4237.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4250,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4250.11,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4267.54,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 25,\n        \"price\": 4083.29,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4083.16,\n      },\n      {\n        \"amount\": 7,\n        \"price\": 4082.99,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 4082.78,\n      },\n      {\n        \"amount\": 7,\n        \"price\": 4082.59,\n      },\n      {\n        \"amount\": 18,\n        \"price\": 4082.34,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4082.31,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 4080.46,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4077.52,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4008.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4008.36,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4007,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4006,\n      },\n    ],\n    \"exchange\": \"okex-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.375675Z,\n    \"symbol\": \"BTC-USD-190405\",\n    \"timestamp\": 2019-04-01T00:00:01.525Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 20,\n        \"price\": 4085.54,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4085.77,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4086.62,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4086.74,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4086.78,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4086.79,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4086.82,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 4087.06,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4087.24,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 4087.37,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4087.43,\n      },\n      {\n        \"amount\": 31,\n        \"price\": 4087.64,\n      },\n      {\n        \"amount\": 124,\n        \"price\": 4087.83,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4089.84,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4090.26,\n      },\n      {\n        \"amount\": 9,\n        \"price\": 4233.08,\n      },\n      {\n        \"amount\": 85,\n        \"price\": 4237.5,\n      },\n      {\n        \"amount\": 255,\n        \"price\": 4250,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4250.11,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 4267.54,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 4278,\n      },\n      {\n        \"amount\": 11,\n        \"price\": 4299.12,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4083.29,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 4083.16,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 4083.08,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 4082.99,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4082.78,\n      },\n      {\n        \"amount\": 37,\n        \"price\": 4082.75,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4082.59,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4082.51,\n      },\n      {\n        \"amount\": 15,\n        \"price\": 4082.34,\n      },\n      {\n        \"amount\": 54,\n        \"price\": 4082.31,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 4082.27,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4082.13,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4080.74,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4080.46,\n      },\n      {\n        \"amount\": 25,\n        \"price\": 4080.09,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4077.52,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4077.04,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4008.5,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4008.36,\n      },\n      {\n        \"amount\": 97,\n        \"price\": 4007,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 4006,\n      },\n      {\n        \"amount\": 96,\n        \"price\": 4005.8,\n      },\n    ],\n    \"exchange\": \"okex-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.668042Z,\n    \"symbol\": \"BTC-USD-190405\",\n    \"timestamp\": 2019-04-01T00:00:02.064Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 4,\n        \"price\": 4086.74,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4086.83,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4087.06,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4087.31,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 4087.42,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4087.62,\n      },\n      {\n        \"amount\": 22,\n        \"price\": 4087.64,\n      },\n      {\n        \"amount\": 6,\n        \"price\": 4088.46,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4089.3,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4089.77,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4089.84,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4097.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4097.92,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4299.12,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4083.77,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4083.08,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 4082.78,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4082.58,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 4082.31,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4082.29,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 4082.13,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 4081.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4081.24,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4080.87,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 4080.74,\n      },\n      {\n        \"amount\": 60,\n        \"price\": 4080.35,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4080.09,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4079.68,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4079.61,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4079.45,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 4077.06,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4077.04,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4076.17,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4073.84,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 4005.78,\n      },\n      {\n        \"amount\": 140,\n        \"price\": 4005.4,\n      },\n      {\n        \"amount\": 120,\n        \"price\": 4005,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 4003,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4002.53,\n      },\n      {\n        \"amount\": 33,\n        \"price\": 4002.3,\n      },\n      {\n        \"amount\": 1,\n        \"price\": 4002.27,\n      },\n      {\n        \"amount\": 434,\n        \"price\": 4001,\n      },\n    ],\n    \"exchange\": \"okex-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.748097Z,\n    \"symbol\": \"BTC-USD-190405\",\n    \"timestamp\": 2019-04-01T00:00:02.599Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 4084.81,\n    \"localTimestamp\": 2019-04-01T00:00:02.944573Z,\n    \"markPrice\": 4083.59,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-190405\",\n    \"timestamp\": 2019-04-01T00:00:02.652Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 4084.81,\n    \"localTimestamp\": 2019-04-01T00:00:03.010797Z,\n    \"markPrice\": 4083.61,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-190405\",\n    \"timestamp\": 2019-04-01T00:00:02.862Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"exchange\": \"okex-futures\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 4084.81,\n    \"localTimestamp\": 2019-04-01T00:00:03.216020Z,\n    \"markPrice\": 4083.63,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-190405\",\n    \"timestamp\": 2019-04-01T00:00:03.077Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 3,\n        \"price\": 4086.79,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 4087,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4087.27,\n      },\n      {\n        \"amount\": 7,\n        \"price\": 4087.37,\n      },\n      {\n        \"amount\": 9,\n        \"price\": 4087.62,\n      },\n      {\n        \"amount\": 32,\n        \"price\": 4087.64,\n      },\n      {\n        \"amount\": 24,\n        \"price\": 4087.83,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4087.95,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 0,\n        \"price\": 4083.47,\n      },\n      {\n        \"amount\": 7,\n        \"price\": 4083.18,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4083.17,\n      },\n      {\n        \"amount\": 37,\n        \"price\": 4082.75,\n      },\n      {\n        \"amount\": 9,\n        \"price\": 4082.58,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 4082.41,\n      },\n      {\n        \"amount\": 18,\n        \"price\": 4082.34,\n      },\n      {\n        \"amount\": 7,\n        \"price\": 4082.27,\n      },\n      {\n        \"amount\": 23,\n        \"price\": 4082.2,\n      },\n      {\n        \"amount\": 5,\n        \"price\": 4082.13,\n      },\n      {\n        \"amount\": 7,\n        \"price\": 4082,\n      },\n      {\n        \"amount\": 42,\n        \"price\": 4080.82,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4080.35,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4079.45,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4077.06,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 4076.17,\n      },\n      {\n        \"amount\": 50,\n        \"price\": 4073.51,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4002.53,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4002.3,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4002.27,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4001,\n      },\n    ],\n    \"exchange\": \"okex-futures\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.288948Z,\n    \"symbol\": \"BTC-USD-190405\",\n    \"timestamp\": 2019-04-01T00:00:03.145Z,\n    \"type\": \"book_change\",\n  },\n]\n`;\n\nexports[`replay replays normalized data for each supported exchange: okex-swap 1`] = `\n[\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": undefined,\n    \"fundingTimestamp\": undefined,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 4092.1,\n    \"localTimestamp\": 2019-04-01T00:00:02.374697Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2019-03-31T23:59:02.722Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"amount\": 44,\n    \"exchange\": \"okex-swap\",\n    \"id\": \"202322746506944513\",\n    \"localTimestamp\": 2019-04-01T00:00:02.374711Z,\n    \"price\": 4092.1,\n    \"side\": \"buy\",\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2019-03-31T23:58:10.871Z,\n    \"type\": \"trade\",\n  },\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": -0.00054,\n    \"fundingTimestamp\": 2019-04-01T02:00:00.000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 4092.1,\n    \"localTimestamp\": 2019-04-01T00:00:02.374739Z,\n    \"markPrice\": undefined,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2019-03-31T23:59:02.722Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": -0.00054,\n    \"fundingTimestamp\": 2019-04-01T02:00:00.000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 4092.1,\n    \"localTimestamp\": 2019-04-01T00:00:02.374762Z,\n    \"markPrice\": 4090.8,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2019-04-01T00:00:00.499Z,\n    \"type\": \"derivative_ticker\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 0,\n        \"price\": 4091.7,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4092.9,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4094.9,\n      },\n      {\n        \"amount\": 590,\n        \"price\": 4111.5,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4208,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 13,\n        \"price\": 4088.8,\n      },\n      {\n        \"amount\": 23,\n        \"price\": 4086.8,\n      },\n    ],\n    \"exchange\": \"okex-swap\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.375711Z,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2019-04-01T00:00:01.555Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 25,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4091.7,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4092,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4092.7,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4094.6,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4128.1,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4129.3,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4205,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4208,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 4,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4087.1,\n      },\n      {\n        \"amount\": 80,\n        \"price\": 4081.1,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4079.8,\n      },\n    ],\n    \"exchange\": \"okex-swap\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.667362Z,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2019-04-01T00:00:01.750Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 621,\n        \"price\": 4090.9,\n      },\n      {\n        \"amount\": 107,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4091.7,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4092.7,\n      },\n      {\n        \"amount\": 22,\n        \"price\": 4093.4,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4094.6,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4111.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4122.4,\n      },\n      {\n        \"amount\": 21,\n        \"price\": 4205,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4208,\n      },\n      {\n        \"amount\": 64,\n        \"price\": 4210,\n      },\n      {\n        \"amount\": 21,\n        \"price\": 4215,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 410,\n        \"price\": 4090.8,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4089,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4087.1,\n      },\n      {\n        \"amount\": 102,\n        \"price\": 4081.2,\n      },\n      {\n        \"amount\": 204,\n        \"price\": 4079.9,\n      },\n      {\n        \"amount\": 2240,\n        \"price\": 4000,\n      },\n    ],\n    \"exchange\": \"okex-swap\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:02.675617Z,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2019-04-01T00:00:02.235Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 25,\n        \"price\": 4091.5,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4091.8,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4092.9,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 4094.9,\n      },\n      {\n        \"amount\": 590,\n        \"price\": 4111.5,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4208,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4210,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4215,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 15,\n        \"price\": 4088.8,\n      },\n      {\n        \"amount\": 4,\n        \"price\": 4086.4,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4081.9,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4081.2,\n      },\n      {\n        \"amount\": 40,\n        \"price\": 4079.9,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4077.2,\n      },\n      {\n        \"amount\": 21,\n        \"price\": 3999.4,\n      },\n      {\n        \"amount\": 710,\n        \"price\": 3999,\n      },\n    ],\n    \"exchange\": \"okex-swap\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.018275Z,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2019-04-01T00:00:02.646Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"asks\": [\n      {\n        \"amount\": 703,\n        \"price\": 4090.9,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4091.8,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4092.3,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 4092.9,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4094.9,\n      },\n      {\n        \"amount\": 20,\n        \"price\": 4208,\n      },\n      {\n        \"amount\": 64,\n        \"price\": 4210,\n      },\n      {\n        \"amount\": 21,\n        \"price\": 4215,\n      },\n    ],\n    \"bids\": [\n      {\n        \"amount\": 13,\n        \"price\": 4088.8,\n      },\n      {\n        \"amount\": 2,\n        \"price\": 4086.4,\n      },\n      {\n        \"amount\": 41,\n        \"price\": 4081.7,\n      },\n      {\n        \"amount\": 99,\n        \"price\": 4081.6,\n      },\n      {\n        \"amount\": 88,\n        \"price\": 4081,\n      },\n      {\n        \"amount\": 164,\n        \"price\": 4079.6,\n      },\n      {\n        \"amount\": 360,\n        \"price\": 4076.9,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 3999.4,\n      },\n      {\n        \"amount\": 0,\n        \"price\": 3999,\n      },\n    ],\n    \"exchange\": \"okex-swap\",\n    \"isSnapshot\": false,\n    \"localTimestamp\": 2019-04-01T00:00:03.360535Z,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2019-04-01T00:00:03.174Z,\n    \"type\": \"book_change\",\n  },\n  {\n    \"exchange\": \"okex-swap\",\n    \"fundingRate\": -0.00054,\n    \"fundingTimestamp\": 2019-04-01T02:00:00.000Z,\n    \"indexPrice\": undefined,\n    \"lastPrice\": 4090.9,\n    \"localTimestamp\": 2019-04-01T00:00:03.613913Z,\n    \"markPrice\": 4090.8,\n    \"openInterest\": undefined,\n    \"predictedFundingRate\": undefined,\n    \"symbol\": \"BTC-USD-SWAP\",\n    \"timestamp\": 2019-04-01T00:00:03.474Z,\n    \"type\": \"derivative_ticker\",\n  },\n]\n`;\n\nexports[`replay replays raw Binance data feed for 1st of Jun 2019 (batpax trades) 1`] = `[]`;\n\nexports[`replay replays raw Binance data feed for 1st of Jun 2019 (batpax trades) 2`] = `[]`;\n\nexports[`replay replays raw Bitmex data feed (ETHUSD trades) for 1st of April 2019 and compares with not decoded sample: bitmex-received-messages 1`] = `\n[\n  {\n    \"action\": \"partial\",\n    \"attributes\": {\n      \"symbol\": \"grouped\",\n      \"timestamp\": \"sorted\",\n    },\n    \"data\": [\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": -0.001179,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTUSDPI8H\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-04-30T20:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": -0.000179,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".ETHUSDPI8H\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-04-30T20:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0003,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTBON8H\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T20:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0006,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".USDBON8H\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T20:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0003,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".ETHBON8H\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T20:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": -0.000835,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTUSDPI2H\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T22:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.000338,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".ETHUSDPI2H\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T22:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0003,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTBON2H\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T22:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0006,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".USDBON2H\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T22:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0003,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".ETHBON2H\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T22:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 1.87,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BVOL24H\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:55:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 7.06,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BVOL7D\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T23:55:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 4.52,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".EVOL7D\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T23:55:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": 0.00229,\n        \"grossValue\": 10000000,\n        \"homeNotional\": 0.1,\n        \"price\": 0.00229,\n        \"side\": \"Buy\",\n        \"size\": 1,\n        \"symbol\": \"XBT7D_U105\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:57:04.721Z\",\n        \"trdMatchID\": \"cf9382a9-97eb-0121-c811-0879357fe636\",\n      },\n      {\n        \"foreignNotional\": 0.00000449,\n        \"grossValue\": 449,\n        \"homeNotional\": 1,\n        \"price\": 0.00000449,\n        \"side\": \"Buy\",\n        \"size\": 1,\n        \"symbol\": \"TRXM19\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:58:17.241Z\",\n        \"trdMatchID\": \"e44ed643-af21-759e-5b76-41f4b0e70b18\",\n      },\n      {\n        \"foreignNotional\": 0.0366482,\n        \"grossValue\": 3664820,\n        \"homeNotional\": 620,\n        \"price\": 0.00005911,\n        \"side\": \"Buy\",\n        \"size\": 620,\n        \"symbol\": \"XRPM19\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:58:41.447Z\",\n        \"trdMatchID\": \"87d9edab-0aff-bfd7-deaa-524e6c5f56b9\",\n      },\n      {\n        \"foreignNotional\": 0.1812203,\n        \"grossValue\": 18122030,\n        \"homeNotional\": 197,\n        \"price\": 0.0009199,\n        \"side\": \"Sell\",\n        \"size\": 197,\n        \"symbol\": \"EOSM19\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T23:58:59.116Z\",\n        \"trdMatchID\": \"065f8a7a-cf6f-0b40-c9a4-a3b98593fbf7\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": -0.001108,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTUSDPI\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.001537,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".ETHUSDPI\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.00001317,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BADAXBT\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.05025,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BBCHXBT\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0009055,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BEOSXBT\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 160.13,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BETH\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.03038,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BETHXBT\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.01392,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BLTCXBT\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 5266.94,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BXBT\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 587064.92,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BXBTJPY\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.00005796,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BXRPXBT\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0003,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".ETHBON\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0006,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".USDBON\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 5266.94,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBT\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0003,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTBON\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 587736,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTJPY\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.00000441,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".TRXXBT\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": 0.6565,\n        \"grossValue\": 65650000,\n        \"homeNotional\": 13,\n        \"price\": 0.0505,\n        \"side\": \"Buy\",\n        \"size\": 13,\n        \"symbol\": \"BCHM19\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:37.248Z\",\n        \"trdMatchID\": \"ac740e1c-18ba-a086-8bd7-73478c901c4a\",\n      },\n      {\n        \"foreignNotional\": 3229,\n        \"grossValue\": 62155021,\n        \"homeNotional\": 0.62155021,\n        \"price\": 5195,\n        \"side\": \"Buy\",\n        \"size\": 3229,\n        \"symbol\": \"XBTM19\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:37.271Z\",\n        \"trdMatchID\": \"1064c327-6bac-2143-eb3e-f72ecb1a2d59\",\n      },\n      {\n        \"foreignNotional\": 32.10379346680717,\n        \"grossValue\": 609330,\n        \"homeNotional\": 0.20021074815595363,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 38,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:41.477Z\",\n        \"trdMatchID\": \"dec631ab-3af3-2ef8-be14-6f0b2eb287ac\",\n      },\n      {\n        \"foreignNotional\": 0.00609738,\n        \"grossValue\": 609738,\n        \"homeNotional\": 453,\n        \"price\": 0.00001346,\n        \"side\": \"Sell\",\n        \"size\": 453,\n        \"symbol\": \"ADAM19\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:48.348Z\",\n        \"trdMatchID\": \"e8f4663f-221c-8ee7-e459-01fdfa7607d8\",\n      },\n      {\n        \"foreignNotional\": 10,\n        \"grossValue\": 193050,\n        \"homeNotional\": 0.0019305,\n        \"price\": 5180,\n        \"side\": \"Buy\",\n        \"size\": 10,\n        \"symbol\": \"XBTU19\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:50.535Z\",\n        \"trdMatchID\": \"a2d5d7cb-024d-9cda-4dd7-f8dc366b099d\",\n      },\n      {\n        \"foreignNotional\": 0.06194,\n        \"grossValue\": 6194000,\n        \"homeNotional\": 2,\n        \"price\": 0.03097,\n        \"side\": \"Buy\",\n        \"size\": 2,\n        \"symbol\": \"ETHM19\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:55.647Z\",\n        \"trdMatchID\": \"92e4bd28-ca5a-cf2a-e7d9-e2151f5bd831\",\n      },\n      {\n        \"foreignNotional\": 2000,\n        \"grossValue\": 37994000,\n        \"homeNotional\": 0.37994,\n        \"price\": 5264,\n        \"side\": \"Buy\",\n        \"size\": 2000,\n        \"symbol\": \"XBTUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:58.272Z\",\n        \"trdMatchID\": \"4b2676b8-579e-3457-b44f-626cbd4b63c5\",\n      },\n      {\n        \"foreignNotional\": 0.04251,\n        \"grossValue\": 4251000,\n        \"homeNotional\": 3,\n        \"price\": 0.01417,\n        \"side\": \"Buy\",\n        \"size\": 3,\n        \"symbol\": \"LTCM19\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:59.668Z\",\n        \"trdMatchID\": \"db459784-08d1-4e9c-af95-c94619da9d70\",\n      },\n    ],\n    \"filter\": {},\n    \"foreignKeys\": {\n      \"side\": \"side\",\n      \"symbol\": \"instrument\",\n    },\n    \"keys\": [],\n    \"table\": \"trade\",\n    \"types\": {\n      \"foreignNotional\": \"float\",\n      \"grossValue\": \"long\",\n      \"homeNotional\": \"float\",\n      \"price\": \"float\",\n      \"side\": \"symbol\",\n      \"size\": \"long\",\n      \"symbol\": \"symbol\",\n      \"tickDirection\": \"symbol\",\n      \"timestamp\": \"timestamp\",\n      \"trdMatchID\": \"guid\",\n    },\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 2079.549620733249,\n        \"grossValue\": 39478170,\n        \"homeNotional\": 12.96881584492204,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 2462,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"28c94cd5-fdcf-e657-4f64-a8e5d02b7de3\",\n      },\n      {\n        \"foreignNotional\": 51.524178255372945,\n        \"grossValue\": 978135,\n        \"homeNotional\": 0.32132321955330806,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 61,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"8dacd11f-1886-0d1d-e4a6-484c14a4ebd9\",\n      },\n      {\n        \"foreignNotional\": 4322.9630214917825,\n        \"grossValue\": 82067130,\n        \"homeNotional\": 26.95954487989886,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 5118,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"16ec6abc-f0f7-6762-d75b-88b649c14a95\",\n      },\n      {\n        \"foreignNotional\": 2533.97597977244,\n        \"grossValue\": 48105000,\n        \"homeNotional\": 15.802781289506953,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 3000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"09765142-e68d-7017-4b5c-59c26980b9d3\",\n      },\n      {\n        \"foreignNotional\": 2533.97597977244,\n        \"grossValue\": 48105000,\n        \"homeNotional\": 15.802781289506953,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 3000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"29f08254-1466-c140-36a0-d54ee9f0e449\",\n      },\n      {\n        \"foreignNotional\": 505.95053729456384,\n        \"grossValue\": 9604965,\n        \"homeNotional\": 3.155288664138222,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 599,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"d02afcba-2b83-0a9b-32cb-94a0a64f2974\",\n      },\n      {\n        \"foreignNotional\": 844.6586599241466,\n        \"grossValue\": 16035000,\n        \"homeNotional\": 5.267593763168985,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"af7f660f-90d6-5df2-1190-d4c03ee6abdf\",\n      },\n      {\n        \"foreignNotional\": 4223.293299620733,\n        \"grossValue\": 80175000,\n        \"homeNotional\": 26.33796881584492,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"f10ee959-8dd0-bd6e-2abe-3dee67227c45\",\n      },\n      {\n        \"foreignNotional\": 109.83986514959966,\n        \"grossValue\": 2085200,\n        \"homeNotional\": 0.684787189211968,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 130,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"6b1e40c6-e3cc-7277-4a21-978d66db5046\",\n      },\n      {\n        \"foreignNotional\": 2534.766118836915,\n        \"grossValue\": 48120000,\n        \"homeNotional\": 15.802781289506953,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 3000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"047daf26-8265-7175-f666-2bd1c18ce23c\",\n      },\n      {\n        \"foreignNotional\": 42.24610198061526,\n        \"grossValue\": 802000,\n        \"homeNotional\": 0.2633796881584492,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 50,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"97deb08e-d8ff-88a8-a240-45f0e5c45ebb\",\n      },\n      {\n        \"foreignNotional\": 19.43320691108302,\n        \"grossValue\": 368920,\n        \"homeNotional\": 0.12115465655288664,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 23,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"50371741-145f-210c-713d-41ae6d33800f\",\n      },\n      {\n        \"foreignNotional\": 53.230088495575224,\n        \"grossValue\": 1010520,\n        \"homeNotional\": 0.33185840707964603,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 63,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"f0f0ccbd-1ff9-6aa1-dc95-8a3f2c41a80a\",\n      },\n      {\n        \"foreignNotional\": 253.47661188369153,\n        \"grossValue\": 4812000,\n        \"homeNotional\": 1.5802781289506953,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"e98ec002-b670-c326-2024-8897f528a5bc\",\n      },\n      {\n        \"foreignNotional\": 126.73830594184577,\n        \"grossValue\": 2406000,\n        \"homeNotional\": 0.7901390644753477,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 150,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"7cd42785-ff59-69f7-0c14-2dd578a4054b\",\n      },\n      {\n        \"foreignNotional\": 253.47661188369153,\n        \"grossValue\": 4812000,\n        \"homeNotional\": 1.5802781289506953,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"013b4e0d-7ce3-507f-f40e-513fbba20ad0\",\n      },\n      {\n        \"foreignNotional\": 126.73830594184577,\n        \"grossValue\": 2406000,\n        \"homeNotional\": 0.7901390644753477,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 150,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"8b00d117-225a-14ca-c676-a32fa15ad9ab\",\n      },\n      {\n        \"foreignNotional\": 253.47661188369153,\n        \"grossValue\": 4812000,\n        \"homeNotional\": 1.5802781289506953,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"ef78e0a6-943d-d0d2-77d7-72d519f0ad22\",\n      },\n      {\n        \"foreignNotional\": 126.73830594184577,\n        \"grossValue\": 2406000,\n        \"homeNotional\": 0.7901390644753477,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 150,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"fd185d01-023f-b5f2-7d43-015d5e56523e\",\n      },\n      {\n        \"foreignNotional\": 10139.06447534766,\n        \"grossValue\": 192480000,\n        \"homeNotional\": 63.21112515802781,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 12000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"e9c319e4-8806-68c1-4f70-53547bb425b3\",\n      },\n      {\n        \"foreignNotional\": 63.36915297092288,\n        \"grossValue\": 1203000,\n        \"homeNotional\": 0.3950695322376738,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 75,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"4827be79-1228-fc33-6a7c-095721e804e0\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"7bb2bc52-31a8-7a2d-5526-b675c2664dc1\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"2733fbda-69c2-fd6d-dc84-4ce825e23745\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"0dee99d6-2c30-cc3b-2257-babfdb930565\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"5e2e34ab-fc59-50b1-7c13-631a7717a1e6\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"8ae4eb36-912d-7c38-1522-d70914710c19\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"9cd7790b-ce27-c2d2-98ff-0a986e7afd72\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"939c89cf-9041-0e70-0108-d04a52d886ee\",\n      },\n      {\n        \"foreignNotional\": 893.9275179098188,\n        \"grossValue\": 16970320,\n        \"homeNotional\": 5.5731142014327855,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 1058,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"d207295f-0a19-5e9e-4691-3c0ac090f24b\",\n      },\n      {\n        \"foreignNotional\": 42.24610198061526,\n        \"grossValue\": 802000,\n        \"homeNotional\": 0.2633796881584492,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 50,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"e6e3084c-a143-1fda-e866-9a1113ab3553\",\n      },\n      {\n        \"foreignNotional\": 16898.440792246103,\n        \"grossValue\": 320800000,\n        \"homeNotional\": 105.35187526337968,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 20000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"33c4abfa-ec70-122f-a307-c9fbf413fe6f\",\n      },\n      {\n        \"foreignNotional\": 507.1112515802781,\n        \"grossValue\": 9627000,\n        \"homeNotional\": 3.1605562579013906,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 600,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"59f6365d-4a57-53da-c9c6-9f70c92c5f1c\",\n      },\n      {\n        \"foreignNotional\": 169.0370838600927,\n        \"grossValue\": 3209000,\n        \"homeNotional\": 1.0535187526337968,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"692b7f52-1d53-1856-fcf2-61fe93ed5916\",\n      },\n      {\n        \"foreignNotional\": 4225.927096502318,\n        \"grossValue\": 80225000,\n        \"homeNotional\": 26.33796881584492,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"acb200ca-001f-9be6-13e1-85377390a317\",\n      },\n      {\n        \"foreignNotional\": 7.606668773704172,\n        \"grossValue\": 144405,\n        \"homeNotional\": 0.04740834386852086,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 9,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"c1d32d81-fc19-ca58-e940-b853f3058e08\",\n      },\n      {\n        \"foreignNotional\": 42.25927096502318,\n        \"grossValue\": 802250,\n        \"homeNotional\": 0.2633796881584492,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 50,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"c45f7891-e286-0b2f-ed0c-92cd1cfd6b8b\",\n      },\n      {\n        \"foreignNotional\": 89.58965444584913,\n        \"grossValue\": 1700770,\n        \"homeNotional\": 0.5583649388959123,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 106,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"4cc4d9d2-4465-a6d9-2a73-061cf0943d59\",\n      },\n      {\n        \"foreignNotional\": 60.00816477033291,\n        \"grossValue\": 1139195,\n        \"homeNotional\": 0.3739991571849979,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 71,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"a14ad4f9-3881-4aea-ffc5-47452dbd49de\",\n      },\n      {\n        \"foreignNotional\": 1056.4817741255795,\n        \"grossValue\": 20056250,\n        \"homeNotional\": 6.58449220396123,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1250,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"71a20563-45dd-71ea-2d30-34f0d6989349\",\n      },\n      {\n        \"foreignNotional\": 338.0741677201854,\n        \"grossValue\": 6418000,\n        \"homeNotional\": 2.1070375052675936,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 400,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"1b54cb64-6ad4-c4b0-3974-3ff927228d0e\",\n      },\n      {\n        \"foreignNotional\": 19.43926464391066,\n        \"grossValue\": 369035,\n        \"homeNotional\": 0.12115465655288664,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 23,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"1c766fd4-219a-bc99-c050-f14555e69296\",\n      },\n      {\n        \"foreignNotional\": 2112.963548251159,\n        \"grossValue\": 40112500,\n        \"homeNotional\": 13.16898440792246,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"bd4e5609-5388-3689-9061-6aac7102e0a4\",\n      },\n      {\n        \"foreignNotional\": 53.2466814159292,\n        \"grossValue\": 1010835,\n        \"homeNotional\": 0.33185840707964603,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 63,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"1cc42201-6bf1-f4f3-4ce9-b74f0ef2ac2b\",\n      },\n      {\n        \"foreignNotional\": 1690.370838600927,\n        \"grossValue\": 32090000,\n        \"homeNotional\": 10.53518752633797,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"73b884d6-6b58-c654-1916-389e19d6ca94\",\n      },\n      {\n        \"foreignNotional\": 845.1854193004635,\n        \"grossValue\": 16045000,\n        \"homeNotional\": 5.267593763168985,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"e1c31a00-1df7-99fe-dc5c-cf7c9f708530\",\n      },\n      {\n        \"foreignNotional\": 8357.193426042984,\n        \"grossValue\": 158652960,\n        \"homeNotional\": 52.08596713021492,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 9888,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"31c5f5fc-3e24-dbab-897d-843bc4ba160a\",\n      },\n      {\n        \"foreignNotional\": 993.9380530973451,\n        \"grossValue\": 18868920,\n        \"homeNotional\": 6.1946902654867255,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1176,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"ba1799a4-6c79-7198-4480-327399ce80b5\",\n      },\n      {\n        \"foreignNotional\": 105.64817741255794,\n        \"grossValue\": 2005625,\n        \"homeNotional\": 0.6584492203961231,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 125,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"0a897bb2-dec7-d5ca-034f-0b66d5b9ee7c\",\n      },\n      {\n        \"foreignNotional\": 344.8356510745891,\n        \"grossValue\": 6546360,\n        \"homeNotional\": 2.1491782553729455,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 408,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"43662e57-fa79-57e8-3696-dc6c60d64ce9\",\n      },\n      {\n        \"foreignNotional\": 544.2994100294985,\n        \"grossValue\": 10332980,\n        \"homeNotional\": 3.392330383480826,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 644,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"416794ad-3145-4ef5-ac21-e8dec1a08877\",\n      },\n      {\n        \"foreignNotional\": 367.65565739570167,\n        \"grossValue\": 6979575,\n        \"homeNotional\": 2.2914032869785084,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 435,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"8f0b8604-d7e2-647e-5cb0-91190d83c553\",\n      },\n      {\n        \"foreignNotional\": 88.74446902654867,\n        \"grossValue\": 1684725,\n        \"homeNotional\": 0.5530973451327433,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 105,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"80b2393a-feeb-a220-6664-4aa3b184c2ab\",\n      },\n      {\n        \"foreignNotional\": 422.59270965023177,\n        \"grossValue\": 8022500,\n        \"homeNotional\": 2.6337968815844923,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"e3f8aeee-61fd-4126-abf8-4dc707bd2924\",\n      },\n      {\n        \"foreignNotional\": 240.8778445006321,\n        \"grossValue\": 4572825,\n        \"homeNotional\": 1.5012642225031605,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 285,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"7c403e55-ab42-d4ea-26a9-09c12f5228c1\",\n      },\n      {\n        \"foreignNotional\": 1321.0248103666245,\n        \"grossValue\": 25078335,\n        \"homeNotional\": 8.233249051833123,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1563,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"25b74c26-2270-22e2-ed88-8cf5dcb6fbf5\",\n      },\n      {\n        \"foreignNotional\": 0.8451854193004635,\n        \"grossValue\": 16045,\n        \"homeNotional\": 0.005267593763168985,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"5b72769e-a9d0-28e9-388a-cb7acfbac910\",\n      },\n      {\n        \"foreignNotional\": 0.8451854193004635,\n        \"grossValue\": 16045,\n        \"homeNotional\": 0.005267593763168985,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"a620b637-2fcb-1e43-a761-bb86fe658f98\",\n      },\n      {\n        \"foreignNotional\": 19.445322376738307,\n        \"grossValue\": 369150,\n        \"homeNotional\": 0.12115465655288664,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 23,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"326ea74e-a337-8e88-3413-9c0e8847040b\",\n      },\n      {\n        \"foreignNotional\": 21136.21997471555,\n        \"grossValue\": 401250000,\n        \"homeNotional\": 131.6898440792246,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 25000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"c68fe2cc-8525-e82e-0d3f-bb305e4c2947\",\n      },\n      {\n        \"foreignNotional\": 2536.346396965866,\n        \"grossValue\": 48150000,\n        \"homeNotional\": 15.802781289506953,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 3000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"b1a24e5b-4952-227b-7fd9-73d449c8a018\",\n      },\n      {\n        \"foreignNotional\": 84.5448798988622,\n        \"grossValue\": 1605000,\n        \"homeNotional\": 0.5267593763168984,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 100,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"8cc87891-c22a-1c38-b59f-8b154e72aa25\",\n      },\n      {\n        \"foreignNotional\": 634.0865992414665,\n        \"grossValue\": 12037500,\n        \"homeNotional\": 3.9506953223767383,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 750,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"3d38e11e-7560-884f-0232-33301e47c8a1\",\n      },\n      {\n        \"foreignNotional\": 1392.4541719342603,\n        \"grossValue\": 26434350,\n        \"homeNotional\": 8.675726927939317,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1647,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"1c7b38f6-4834-3ad8-5028-aeda5c87570b\",\n      },\n      {\n        \"foreignNotional\": 84.5448798988622,\n        \"grossValue\": 1605000,\n        \"homeNotional\": 0.5267593763168984,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 100,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"d27f0b12-cd82-e99c-2b11-be755d437183\",\n      },\n      {\n        \"foreignNotional\": 126.8173198482933,\n        \"grossValue\": 2407500,\n        \"homeNotional\": 0.7901390644753477,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 150,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"c77fc4bb-b06a-898d-189a-1c87cdd4537a\",\n      },\n      {\n        \"foreignNotional\": 253.6346396965866,\n        \"grossValue\": 4815000,\n        \"homeNotional\": 1.5802781289506953,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"62b84228-12a5-13e8-44b4-80f6961a699d\",\n      },\n      {\n        \"foreignNotional\": 845.448798988622,\n        \"grossValue\": 16050000,\n        \"homeNotional\": 5.267593763168985,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"63841e2b-3d78-1ae8-6c65-fceac65a49a4\",\n      },\n      {\n        \"foreignNotional\": 8454.48798988622,\n        \"grossValue\": 160500000,\n        \"homeNotional\": 52.67593763168984,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 10000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"bb9d7ff6-5e85-c3e6-b28c-07e141c80bbe\",\n      },\n      {\n        \"foreignNotional\": 676.3590391908976,\n        \"grossValue\": 12840000,\n        \"homeNotional\": 4.214075010535187,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 800,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"f48073a1-403b-5f53-6b27-0afdb6a32198\",\n      },\n      {\n        \"foreignNotional\": 253.6346396965866,\n        \"grossValue\": 4815000,\n        \"homeNotional\": 1.5802781289506953,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"b3f74684-e686-87f6-e84f-fc578d8d6d61\",\n      },\n      {\n        \"foreignNotional\": 126.8173198482933,\n        \"grossValue\": 2407500,\n        \"homeNotional\": 0.7901390644753477,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 150,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"02e05777-80b3-a419-8655-96072d8ffd8a\",\n      },\n      {\n        \"foreignNotional\": 1099.0834386852086,\n        \"grossValue\": 20865000,\n        \"homeNotional\": 6.84787189211968,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"8d230c56-63d1-5359-b38a-9583728380fa\",\n      },\n      {\n        \"foreignNotional\": 2732.490518331226,\n        \"grossValue\": 51873600,\n        \"homeNotional\": 17.024863042562156,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 3232,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"b865b908-9a3d-3031-1078-9c31ebf5bb34\",\n      },\n      {\n        \"foreignNotional\": 4.22724399494311,\n        \"grossValue\": 80250,\n        \"homeNotional\": 0.026337968815844923,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 5,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"693cafec-5bda-85a1-072f-109529d8ad7e\",\n      },\n      {\n        \"foreignNotional\": 21.13621997471555,\n        \"grossValue\": 401250,\n        \"homeNotional\": 0.1316898440792246,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 25,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"bacf0b99-7e01-f83c-6e24-0dd8c976b90f\",\n      },\n      {\n        \"foreignNotional\": 13.527180783817952,\n        \"grossValue\": 256800,\n        \"homeNotional\": 0.08428150021070376,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 16,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"d11ec1fc-f0e7-0744-7623-736594988b72\",\n      },\n      {\n        \"foreignNotional\": 845.448798988622,\n        \"grossValue\": 16050000,\n        \"homeNotional\": 5.267593763168985,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"fd2f3d64-f856-a2ad-ae0a-fd8f4302b7c0\",\n      },\n      {\n        \"foreignNotional\": 16908.97597977244,\n        \"grossValue\": 321000000,\n        \"homeNotional\": 105.35187526337968,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 20000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"df09484c-4f10-3e36-66b5-764a5a98ff08\",\n      },\n      {\n        \"foreignNotional\": 253.6346396965866,\n        \"grossValue\": 4815000,\n        \"homeNotional\": 1.5802781289506953,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"f269984a-7871-6b1d-9962-f76afac4e7df\",\n      },\n      {\n        \"foreignNotional\": 43.963337547408344,\n        \"grossValue\": 834600,\n        \"homeNotional\": 0.2739148756847872,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 52,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"34051502-5a0e-eb28-8e19-90f951d42473\",\n      },\n      {\n        \"foreignNotional\": 43.963337547408344,\n        \"grossValue\": 834600,\n        \"homeNotional\": 0.2739148756847872,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 52,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"54868b06-902c-f71f-e571-0010cd4108a2\",\n      },\n      {\n        \"foreignNotional\": 1093.1652970922883,\n        \"grossValue\": 20752650,\n        \"homeNotional\": 6.810998735777497,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1293,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"58bd4efe-924d-6489-a15d-78299e5db9cf\",\n      },\n      {\n        \"foreignNotional\": 84.5448798988622,\n        \"grossValue\": 1605000,\n        \"homeNotional\": 0.5267593763168984,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 100,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"178f455a-e61a-7a4b-2d73-f6c77353798e\",\n      },\n      {\n        \"foreignNotional\": 4227.24399494311,\n        \"grossValue\": 80250000,\n        \"homeNotional\": 26.33796881584492,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"92a56df0-8bc0-133d-e95a-6b44b2535762\",\n      },\n      {\n        \"foreignNotional\": 1321.436472819216,\n        \"grossValue\": 25086150,\n        \"homeNotional\": 8.233249051833123,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1563,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"98ec476c-7c96-9890-bb2f-6c0bc535ddc0\",\n      },\n      {\n        \"foreignNotional\": 240.95290771175726,\n        \"grossValue\": 4574250,\n        \"homeNotional\": 1.5012642225031605,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 285,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"acb81671-84cc-d12e-f833-8403ac458dcb\",\n      },\n      {\n        \"foreignNotional\": 1780.5151706700378,\n        \"grossValue\": 33801300,\n        \"homeNotional\": 11.09355246523388,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 2106,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"06dcd0ce-0279-2246-0e99-9c589cc98c3f\",\n      },\n      {\n        \"foreignNotional\": 84.5448798988622,\n        \"grossValue\": 1605000,\n        \"homeNotional\": 0.5267593763168984,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 100,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"c9d26802-2f0c-81a0-95e2-4466e88f6e8c\",\n      },\n      {\n        \"foreignNotional\": 1923.396017699115,\n        \"grossValue\": 36513750,\n        \"homeNotional\": 11.983775811209439,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 2275,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"bba6ceb2-f663-b585-abae-1a0ce47217e2\",\n      },\n      {\n        \"foreignNotional\": 8602.44152970923,\n        \"grossValue\": 163308750,\n        \"homeNotional\": 53.597766540244415,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 10175,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"396f42b2-5e77-9bbc-ec1f-21f089a2ed77\",\n      },\n      {\n        \"foreignNotional\": 2626.8094184576485,\n        \"grossValue\": 49867350,\n        \"homeNotional\": 16.366413822166034,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 3107,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"9449aa07-e4a2-6108-7553-1c044d3f3674\",\n      },\n      {\n        \"foreignNotional\": 169.1424357353561,\n        \"grossValue\": 3211000,\n        \"homeNotional\": 1.0535187526337968,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"fcec770c-2208-5d4e-b717-2d7b6c75a901\",\n      },\n      {\n        \"foreignNotional\": 19.45138010956595,\n        \"grossValue\": 369265,\n        \"homeNotional\": 0.12115465655288664,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 23,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"4340cd03-3087-05e0-a670-31b401bd77f6\",\n      },\n      {\n        \"foreignNotional\": 779.7466287399916,\n        \"grossValue\": 14802710,\n        \"homeNotional\": 4.856721449641803,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 922,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"4075746c-e957-9c46-044f-2af365e10e84\",\n      },\n      {\n        \"foreignNotional\": 169.1424357353561,\n        \"grossValue\": 3211000,\n        \"homeNotional\": 1.0535187526337968,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"4323e992-d894-0f9c-2f9d-06c591217e87\",\n      },\n      {\n        \"foreignNotional\": 11779.079224610197,\n        \"grossValue\": 223614040,\n        \"homeNotional\": 73.36704593341761,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 13928,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"7c4ed2e1-f877-900b-0e63-733d53e9b1ea\",\n      },\n      {\n        \"foreignNotional\": 1057.1402233459755,\n        \"grossValue\": 20068750,\n        \"homeNotional\": 6.58449220396123,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1250,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"24b742f5-5553-753c-dd7a-5726f3e9cacb\",\n      },\n      {\n        \"foreignNotional\": 5.074273072060683,\n        \"grossValue\": 96330,\n        \"homeNotional\": 0.0316055625790139,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 6,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"aeaf7a4b-a1ba-ff07-9088-2be2424025f8\",\n      },\n      {\n        \"foreignNotional\": 2114.280446691951,\n        \"grossValue\": 40137500,\n        \"homeNotional\": 13.16898440792246,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 2500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"2246c116-4648-2471-23cd-9ab4c9c0fcf2\",\n      },\n      {\n        \"foreignNotional\": 40.59418457648546,\n        \"grossValue\": 770640,\n        \"homeNotional\": 0.2528445006321112,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 48,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"276d3ccf-23fb-ad48-ea2a-dc931aaa3b8e\",\n      },\n      {\n        \"foreignNotional\": 169.1424357353561,\n        \"grossValue\": 3211000,\n        \"homeNotional\": 1.0535187526337968,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"e94f9bd9-88dd-cec0-7280-3e6f788c31ed\",\n      },\n      {\n        \"foreignNotional\": 845.7121786767805,\n        \"grossValue\": 16055000,\n        \"homeNotional\": 5.267593763168985,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"c7d8d917-c44e-ce5d-ca70-f266c2902c8e\",\n      },\n      {\n        \"foreignNotional\": 1193.2998841129372,\n        \"grossValue\": 22653605,\n        \"homeNotional\": 7.432574799831437,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1411,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"9a671e4a-e2a3-8196-141f-b874435b5eb4\",\n      },\n      {\n        \"foreignNotional\": 27.062789717656976,\n        \"grossValue\": 513760,\n        \"homeNotional\": 0.1685630004214075,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 32,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"79df651c-e004-2cdb-6103-10b5a79532bf\",\n      },\n      {\n        \"foreignNotional\": 1321.848135271808,\n        \"grossValue\": 25093965,\n        \"homeNotional\": 8.233249051833123,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1563,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"1d6fa5f1-2ad0-8758-a4a7-afc76c74b788\",\n      },\n      {\n        \"foreignNotional\": 4418.000421407501,\n        \"grossValue\": 83871320,\n        \"homeNotional\": 27.517909818794774,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 5224,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"cb17b373-6a11-8a71-a973-de72985f1a3d\",\n      },\n      {\n        \"foreignNotional\": 4059.4184576485463,\n        \"grossValue\": 77064000,\n        \"homeNotional\": 25.284450063211125,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 4800,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"448f76f0-8177-dd22-a9c5-4a24a21b0596\",\n      },\n      {\n        \"foreignNotional\": 1268.5682680151706,\n        \"grossValue\": 24082500,\n        \"homeNotional\": 7.9013906447534765,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"ea24856c-b78c-2da7-530d-ac1e9602dab2\",\n      },\n      {\n        \"foreignNotional\": 2114.280446691951,\n        \"grossValue\": 40137500,\n        \"homeNotional\": 13.16898440792246,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 2500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"89d6b70c-8581-f38b-7c12-d71d53d2217c\",\n      },\n      {\n        \"foreignNotional\": 1270.2596923725243,\n        \"grossValue\": 24114610,\n        \"homeNotional\": 7.911925832279815,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1502,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"03715e8a-b45c-93e6-4a4f-5890961c2936\",\n      },\n      {\n        \"foreignNotional\": 21.149388959123474,\n        \"grossValue\": 401500,\n        \"homeNotional\": 0.1316898440792246,\n        \"price\": 160.6,\n        \"side\": \"Buy\",\n        \"size\": 25,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"a7083e98-0a66-fb6f-80a1-d47306941f01\",\n      },\n      {\n        \"foreignNotional\": 18.611462284028654,\n        \"grossValue\": 353320,\n        \"homeNotional\": 0.11588706278971765,\n        \"price\": 160.6,\n        \"side\": \"Buy\",\n        \"size\": 22,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"3b120e27-18fd-60e5-81ac-672ad373a3d5\",\n      },\n      {\n        \"foreignNotional\": 109.97682258744206,\n        \"grossValue\": 2087800,\n        \"homeNotional\": 0.684787189211968,\n        \"price\": 160.6,\n        \"side\": \"Buy\",\n        \"size\": 130,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"5113c667-204f-b968-4e7f-6b3e1b32f604\",\n      },\n      {\n        \"foreignNotional\": 16.91951116729878,\n        \"grossValue\": 321200,\n        \"homeNotional\": 0.10535187526337969,\n        \"price\": 160.6,\n        \"side\": \"Buy\",\n        \"size\": 20,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"672d1c8c-f367-483a-68fa-91b60ccd5992\",\n      },\n      {\n        \"foreignNotional\": 8036.767804466919,\n        \"grossValue\": 152570000,\n        \"homeNotional\": 50.042140750105354,\n        \"price\": 160.6,\n        \"side\": \"Buy\",\n        \"size\": 9500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"86a07d7d-3106-d31a-6781-55f7e39bfe50\",\n      },\n      {\n        \"foreignNotional\": 12559.353139485884,\n        \"grossValue\": 238426760,\n        \"homeNotional\": 78.20269700800674,\n        \"price\": 160.6,\n        \"side\": \"Buy\",\n        \"size\": 14846,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"7aecb3a3-f06c-1b02-f3eb-6b69db4b136e\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1068.6472819216183,\n        \"grossValue\": 20287200,\n        \"homeNotional\": 6.658238516645596,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1264,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.233Z\",\n        \"trdMatchID\": \"5e35557d-a59a-428e-3880-c5bff98b0cc8\",\n      },\n      {\n        \"foreignNotional\": 1105.001580278129,\n        \"grossValue\": 20977350,\n        \"homeNotional\": 6.884745048461863,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1307,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.233Z\",\n        \"trdMatchID\": \"07f71939-a142-1aec-291c-df961d15a6d6\",\n      },\n      {\n        \"foreignNotional\": 976.4933628318585,\n        \"grossValue\": 18537750,\n        \"homeNotional\": 6.084070796460177,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1155,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.233Z\",\n        \"trdMatchID\": \"cc8e31bf-8c6d-2e74-f8aa-b8f2965b014f\",\n      },\n      {\n        \"foreignNotional\": 930.8391276864728,\n        \"grossValue\": 17671050,\n        \"homeNotional\": 5.799620733249052,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1101,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.233Z\",\n        \"trdMatchID\": \"d5d15480-b7e9-050f-d14c-71418167d26f\",\n      },\n      {\n        \"foreignNotional\": 822.6216814159292,\n        \"grossValue\": 15616650,\n        \"homeNotional\": 5.125368731563422,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 973,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.233Z\",\n        \"trdMatchID\": \"69b30c22-3de3-00f6-56e2-34f9497d1801\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 422.724399494311,\n        \"grossValue\": 8025000,\n        \"homeNotional\": 2.6337968815844923,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.243Z\",\n        \"trdMatchID\": \"28ce81cb-355d-726b-2fd7-8ea44932da9a\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 840.3761061946902,\n        \"grossValue\": 15953700,\n        \"homeNotional\": 5.23598820058997,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 994,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.249Z\",\n        \"trdMatchID\": \"d1c6caab-a36b-2661-8b6b-7e9900bb7b0b\",\n      },\n      {\n        \"foreignNotional\": 875.0395069532237,\n        \"grossValue\": 16611750,\n        \"homeNotional\": 5.451959544879899,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1035,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.249Z\",\n        \"trdMatchID\": \"898d093c-2ce4-2bb6-9f7c-80095baa434c\",\n      },\n      {\n        \"foreignNotional\": 2275.1027180783817,\n        \"grossValue\": 43190550,\n        \"homeNotional\": 14.175094816687738,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 2691,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.249Z\",\n        \"trdMatchID\": \"aa40d7fc-eadf-33cf-e206-8b3a2030e5a7\",\n      },\n      {\n        \"foreignNotional\": 1505.3676780446692,\n        \"grossValue\": 28577900,\n        \"homeNotional\": 9.376316898440793,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1780,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.249Z\",\n        \"trdMatchID\": \"e4cbf3cd-771c-6087-30a7-8dfad1663260\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 2554.050779603877,\n        \"grossValue\": 48486100,\n        \"homeNotional\": 15.908133164770334,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 3020,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.339Z\",\n        \"trdMatchID\": \"f7824ae6-8fb2-576c-a80a-97e18b750cb4\",\n      },\n      {\n        \"foreignNotional\": 4059.4184576485463,\n        \"grossValue\": 77064000,\n        \"homeNotional\": 25.284450063211125,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 4800,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.339Z\",\n        \"trdMatchID\": \"5dc02d18-58ab-06a0-55d0-19109f878604\",\n      },\n      {\n        \"foreignNotional\": 3957.9329962073325,\n        \"grossValue\": 75137400,\n        \"homeNotional\": 24.652338811630848,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 4680,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.339Z\",\n        \"trdMatchID\": \"e8140b44-c01d-101b-bed1-f23f8b878669\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 591.9985250737464,\n        \"grossValue\": 11238500,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.352Z\",\n        \"trdMatchID\": \"d752cb96-6dcf-3e71-d0b6-7ea7f8398fd2\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 12364.31205225453,\n        \"grossValue\": 234724100,\n        \"homeNotional\": 77.01222081753055,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 14620,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.359Z\",\n        \"trdMatchID\": \"b64b3b89-8196-bcea-1b63-8554c683f7fe\",\n      },\n      {\n        \"foreignNotional\": 1691.424357353561,\n        \"grossValue\": 32110000,\n        \"homeNotional\": 10.53518752633797,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 2000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.359Z\",\n        \"trdMatchID\": \"186dfcb2-b1cb-2fb9-462b-3ec9d2e1e4d2\",\n      },\n      {\n        \"foreignNotional\": 7087.0680573114205,\n        \"grossValue\": 134540900,\n        \"homeNotional\": 44.14243573535609,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 8380,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.359Z\",\n        \"trdMatchID\": \"82090931-a6c2-a8a3-7c3a-91bb3664cada\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 4228.560893383902,\n        \"grossValue\": 80275000,\n        \"homeNotional\": 26.33796881584492,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.367Z\",\n        \"trdMatchID\": \"48e6cb5a-4ca7-8de9-ff4e-0c4ea397ab46\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 756.9123999157185,\n        \"grossValue\": 14369225,\n        \"homeNotional\": 4.714496418036241,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 895,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.502Z\",\n        \"trdMatchID\": \"ae80fb86-12d5-bf9f-f7a4-7b41b5519065\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1356.9453223767382,\n        \"grossValue\": 25760250,\n        \"homeNotional\": 8.45448798988622,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1605,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:22.922Z\",\n        \"trdMatchID\": \"62b58688-04a0-75ed-114b-00824347f3d7\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 51.556310577328276,\n        \"grossValue\": 978745,\n        \"homeNotional\": 0.32132321955330806,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 61,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:23.567Z\",\n        \"trdMatchID\": \"a29e0d2c-0ffb-ad6c-41ba-cefb443fcb64\",\n      },\n      {\n        \"foreignNotional\": 371.0363990729035,\n        \"grossValue\": 7043755,\n        \"homeNotional\": 2.3124736620311843,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 439,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:23.567Z\",\n        \"trdMatchID\": \"68904e15-e0a1-dad5-a9fd-6e6245a7c0b7\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 137.8081542351454,\n        \"grossValue\": 2616150,\n        \"homeNotional\": 0.8586177833965445,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 163,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:23.834Z\",\n        \"trdMatchID\": \"c2071f22-3b89-46c4-9106-f5f301d9344e\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 75.24494310998736,\n        \"grossValue\": 1428450,\n        \"homeNotional\": 0.4688158449220396,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 89,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:23.848Z\",\n        \"trdMatchID\": \"0c830907-343d-805a-3e7c-78222fd845d6\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1351.4514854614413,\n        \"grossValue\": 25655955,\n        \"homeNotional\": 8.422882427307206,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 1599,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:24.597Z\",\n        \"trdMatchID\": \"d3e59306-4295-d8d4-bfef-4dd0ae4ea537\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 5687.252686472819,\n        \"grossValue\": 107966805,\n        \"homeNotional\": 35.4456384323641,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 6729,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:24.683Z\",\n        \"trdMatchID\": \"4c691222-65b5-bf70-7b6a-8fc1421a4013\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 5088.861409608091,\n        \"grossValue\": 96606945,\n        \"homeNotional\": 31.716182048040455,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 6021,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:24.721Z\",\n        \"trdMatchID\": \"f9f3e12c-c860-ae82-8231-af92351f7ee3\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 702.3490834386852,\n        \"grossValue\": 13333395,\n        \"homeNotional\": 4.3773704171934265,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 831,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:24.761Z\",\n        \"trdMatchID\": \"01856d2a-4dda-bfe6-976a-452c25d5777a\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 158.04967340918668,\n        \"grossValue\": 3000415,\n        \"homeNotional\": 0.9850400337126001,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 187,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:25.002Z\",\n        \"trdMatchID\": \"b7ff8784-de26-17a3-9c1f-311f6d9319b7\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 3096.0335018963337,\n        \"grossValue\": 58775100,\n        \"homeNotional\": 19.289928360724822,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 3662,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:25.672Z\",\n        \"trdMatchID\": \"5d5581eb-bd39-39ad-82d0-3aa17bc48122\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 422.59270965023177,\n        \"grossValue\": 8022500,\n        \"homeNotional\": 2.6337968815844923,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:26.826Z\",\n        \"trdMatchID\": \"6172bfe5-4563-dc1f-fa02-d6526465bf6b\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 147.95353982300884,\n        \"grossValue\": 2808750,\n        \"homeNotional\": 0.9218289085545722,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 175,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:27.053Z\",\n        \"trdMatchID\": \"8451b905-9bbb-24f0-d318-fec177a7a4f8\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 80.31763590391908,\n        \"grossValue\": 1524750,\n        \"homeNotional\": 0.5004214075010536,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 95,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:27.108Z\",\n        \"trdMatchID\": \"49b8d836-c1c7-2640-ed64-86ceed8e2539\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 4225.927096502318,\n        \"grossValue\": 80225000,\n        \"homeNotional\": 26.33796881584492,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:27.531Z\",\n        \"trdMatchID\": \"431a6b02-61bd-df6d-86bb-d481e371eebd\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 520.7964601769911,\n        \"grossValue\": 9886800,\n        \"homeNotional\": 3.2448377581120944,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 616,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:27.772Z\",\n        \"trdMatchID\": \"838adf83-0433-dbee-4b2f-36727357e3be\",\n      },\n      {\n        \"foreignNotional\": 1584.3710493046776,\n        \"grossValue\": 30077700,\n        \"homeNotional\": 9.871470712178677,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1874,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:27.772Z\",\n        \"trdMatchID\": \"edd2883b-14d0-7656-2eb8-fbf7865bb816\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 24251.7504214075,\n        \"grossValue\": 460395230,\n        \"homeNotional\": 151.14833544037083,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 28694,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"851fe6c5-155b-f2ec-383d-e4be848a2d11\",\n      },\n      {\n        \"foreignNotional\": 4009.5596291613992,\n        \"grossValue\": 76117480,\n        \"homeNotional\": 24.989464812473663,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 4744,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"107224c7-0b2b-74f7-c494-e92e122128d9\",\n      },\n      {\n        \"foreignNotional\": 76.06668773704172,\n        \"grossValue\": 1444050,\n        \"homeNotional\": 0.4740834386852086,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 90,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"7c6adeab-d537-8dd8-cfcd-c88205fa309e\",\n      },\n      {\n        \"foreignNotional\": 32.96223135271808,\n        \"grossValue\": 625755,\n        \"homeNotional\": 0.2054361567635904,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 39,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"16b8762b-8bcf-a28c-ff0f-f6e6b1f23a6a\",\n      },\n      {\n        \"foreignNotional\": 45.64001264222503,\n        \"grossValue\": 866430,\n        \"homeNotional\": 0.28445006321112515,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 54,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"b44113b4-e802-b7c7-8c6a-a33f8c94843a\",\n      },\n      {\n        \"foreignNotional\": 22.820006321112515,\n        \"grossValue\": 433215,\n        \"homeNotional\": 0.14222503160556257,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 27,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"03d10a64-bc4b-1cc9-284c-ea744dd16c05\",\n      },\n      {\n        \"foreignNotional\": 43.949641803624104,\n        \"grossValue\": 834340,\n        \"homeNotional\": 0.2739148756847872,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 52,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"fa8a403b-9c03-4f50-ecee-d381bd32d81c\",\n      },\n      {\n        \"foreignNotional\": 29.581489675516224,\n        \"grossValue\": 561575,\n        \"homeNotional\": 0.18436578171091444,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 35,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"afcad49d-9f3e-390c-5b43-696ca3fff68d\",\n      },\n      {\n        \"foreignNotional\": 27.045933417614833,\n        \"grossValue\": 513440,\n        \"homeNotional\": 0.1685630004214075,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 32,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"6f870dd7-e6f2-69d4-12f1-60a856843287\",\n      },\n      {\n        \"foreignNotional\": 820.6750421407501,\n        \"grossValue\": 15579695,\n        \"homeNotional\": 5.114833544037084,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 971,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"16217df2-397f-8811-e660-9239d14ec6c6\",\n      },\n      {\n        \"foreignNotional\": 51.556310577328276,\n        \"grossValue\": 978745,\n        \"homeNotional\": 0.32132321955330806,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 61,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"ede1af07-b57d-e806-9d04-7e5997819398\",\n      },\n      {\n        \"foreignNotional\": 45.64001264222503,\n        \"grossValue\": 866430,\n        \"homeNotional\": 0.28445006321112515,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 54,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"74cac676-d71f-476d-cbf4-1f052e0a5cc7\",\n      },\n      {\n        \"foreignNotional\": 42.25927096502318,\n        \"grossValue\": 802250,\n        \"homeNotional\": 0.2633796881584492,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 50,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"9c059f87-8c6b-ac80-4ae5-0dd3a900ea28\",\n      },\n      {\n        \"foreignNotional\": 236.6519174041298,\n        \"grossValue\": 4492600,\n        \"homeNotional\": 1.4749262536873156,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 280,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"caa908df-4e4b-5c11-020b-8c5c4f1137bf\",\n      },\n      {\n        \"foreignNotional\": 711.6461230509904,\n        \"grossValue\": 13509890,\n        \"homeNotional\": 4.435313948588285,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 842,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"b605c391-a191-d8e4-e189-d1ae4fc4d0c4\",\n      },\n      {\n        \"foreignNotional\": 4225.927096502318,\n        \"grossValue\": 80225000,\n        \"homeNotional\": 26.33796881584492,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"8e18ed1b-4bb6-3b33-2e80-f44271d4fad2\",\n      },\n      {\n        \"foreignNotional\": 2914.1993257479985,\n        \"grossValue\": 55323160,\n        \"homeNotional\": 18.16266329540666,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 3448,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"846c4e4e-993b-0175-9e93-95b9be651d30\",\n      },\n      {\n        \"foreignNotional\": 179.17930889169827,\n        \"grossValue\": 3401540,\n        \"homeNotional\": 1.1167298777918246,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 212,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"ebe79574-61d7-41bc-0214-6c08c8077e9e\",\n      },\n      {\n        \"foreignNotional\": 66.76964812473662,\n        \"grossValue\": 1267555,\n        \"homeNotional\": 0.4161399072903498,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 79,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"ff236ee6-d3fb-85bc-d26d-89a4ca0289f6\",\n      },\n      {\n        \"foreignNotional\": 8451.854193004636,\n        \"grossValue\": 160450000,\n        \"homeNotional\": 52.67593763168984,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 10000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"4a39018b-e423-7b1e-fc9e-ddfe9ba0d6e9\",\n      },\n      {\n        \"foreignNotional\": 2112.963548251159,\n        \"grossValue\": 40112500,\n        \"homeNotional\": 13.16898440792246,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 2500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"1abe8ad8-3cb0-82f4-f6ae-78e347212556\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 31.276803118908383,\n        \"grossValue\": 593665,\n        \"homeNotional\": 0.1949317738791423,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 37,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:30.655Z\",\n        \"trdMatchID\": \"1c9f920c-9f9d-d4cb-63e7-0be13a8c7df0\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1169.556925346399,\n        \"grossValue\": 22199360,\n        \"homeNotional\": 7.291502028344134,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 1384,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:31.720Z\",\n        \"trdMatchID\": \"4001d105-9107-b47b-a803-1c0094164411\",\n      },\n      {\n        \"foreignNotional\": 109.85722564669933,\n        \"grossValue\": 2085200,\n        \"homeNotional\": 0.684895421737527,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 130,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:31.720Z\",\n        \"trdMatchID\": \"4187f454-8310-d121-1620-a59e690fc0f4\",\n      },\n      {\n        \"foreignNotional\": 2945.8637584953376,\n        \"grossValue\": 55915440,\n        \"homeNotional\": 18.36573415520784,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 3486,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:31.720Z\",\n        \"trdMatchID\": \"a08f3dbc-3ba6-150f-e23b-cd6948b097bd\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 145.39486855276328,\n        \"grossValue\": 2759740,\n        \"homeNotional\": 0.9061693272219588,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 172,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:31.735Z\",\n        \"trdMatchID\": \"355e8046-7305-38f8-d03f-bc767fd221ff\",\n      },\n      {\n        \"foreignNotional\": 911.2538854644117,\n        \"grossValue\": 17296510,\n        \"homeNotional\": 5.6793635741004165,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1078,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:31.735Z\",\n        \"trdMatchID\": \"36938377-b0fe-a644-6edf-81cb532ca22e\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 238.3056740951478,\n        \"grossValue\": 4523280,\n        \"homeNotional\": 1.485696222538328,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 282,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:31.804Z\",\n        \"trdMatchID\": \"7b70e983-67ef-5d95-1419-8edd01907f13\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 5.070333491386123,\n        \"grossValue\": 96240,\n        \"homeNotional\": 0.0316105579263474,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 6,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:32.042Z\",\n        \"trdMatchID\": \"95c464bd-9337-1b7c-eec5-e981a3fd939e\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 3334.7834676782045,\n        \"grossValue\": 63297525,\n        \"homeNotional\": 20.783941836573415,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 3945,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:32.718Z\",\n        \"trdMatchID\": \"639cbd72-2b06-a493-64da-fd0ef1980ec9\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1056.6487540171752,\n        \"grossValue\": 20056250,\n        \"homeNotional\": 6.585532901322375,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1250,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:33.474Z\",\n        \"trdMatchID\": \"b97369e1-f2ea-fbcc-68b7-1ac207014bb0\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 5876.657710341921,\n        \"grossValue\": 111544840,\n        \"homeNotional\": 36.62609978399452,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 6952,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:41.673Z\",\n        \"trdMatchID\": \"9d845f4f-1c77-5571-2c05-a37877c6c96a\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 5284.089089089089,\n        \"grossValue\": 100297295,\n        \"homeNotional\": 32.932932932932935,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 6251,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:43.397Z\",\n        \"trdMatchID\": \"5c8d4254-a583-64b8-6368-8b1018d50761\",\n      },\n      {\n        \"foreignNotional\": 3169.1009430483114,\n        \"grossValue\": 60152705,\n        \"homeNotional\": 19.751330277646066,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 3749,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:43.397Z\",\n        \"trdMatchID\": \"2b4434c5-f749-0f59-e9b9-656620e3aa01\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 2535.1667456930613,\n        \"grossValue\": 48120000,\n        \"homeNotional\": 15.8052789631737,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 3000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:43.444Z\",\n        \"trdMatchID\": \"866eaa3d-d736-e133-8b0b-12fa80aca5ce\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 18230.14962330752,\n        \"grossValue\": 346026470,\n        \"homeNotional\": 113.61888203993468,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 21566,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:50.204Z\",\n        \"trdMatchID\": \"fe637404-39d1-2e39-4613-615657630a1e\",\n      },\n      {\n        \"foreignNotional\": 4590.927506453822,\n        \"grossValue\": 87140395,\n        \"homeNotional\": 28.612823349665454,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5431,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:50.204Z\",\n        \"trdMatchID\": \"7bdad422-b803-e699-82b5-fb92a545c3cf\",\n      },\n      {\n        \"foreignNotional\": 5072.759338285654,\n        \"grossValue\": 96286045,\n        \"homeNotional\": 31.615826352668456,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 6001,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:50.204Z\",\n        \"trdMatchID\": \"6a13e439-4120-b773-a5df-b7866b0a5572\",\n      },\n      {\n        \"foreignNotional\": 845.3190032137401,\n        \"grossValue\": 16045000,\n        \"homeNotional\": 5.2684263210579,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:50.204Z\",\n        \"trdMatchID\": \"ddc0db00-ecb5-52ca-b896-1d1c779b064a\",\n      },\n      {\n        \"foreignNotional\": 8139.576681945103,\n        \"grossValue\": 154497305,\n        \"homeNotional\": 50.72967704546652,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 9629,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:50.204Z\",\n        \"trdMatchID\": \"954852cc-4397-6317-dfaa-ddba3b89d601\",\n      },\n      {\n        \"foreignNotional\": 5387.218007481165,\n        \"grossValue\": 102254785,\n        \"homeNotional\": 33.575680944102,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 6373,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:50.204Z\",\n        \"trdMatchID\": \"5e332f8a-11e7-501e-6be9-c3bce672142d\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 213.02038880986248,\n        \"grossValue\": 4043340,\n        \"homeNotional\": 1.3276434329065907,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 252,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:51.948Z\",\n        \"trdMatchID\": \"85561536-7d8b-0965-d3dc-339f3fdae934\",\n      },\n      {\n        \"foreignNotional\": 5234.215267899478,\n        \"grossValue\": 99350640,\n        \"homeNotional\": 32.62209577999052,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 6192,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:51.948Z\",\n        \"trdMatchID\": \"56aa5f1d-d1fa-d099-18b6-e12663bc0dd9\",\n      },\n      {\n        \"foreignNotional\": 3005.95437542806,\n        \"grossValue\": 57056020,\n        \"homeNotional\": 18.734523997681894,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 3556,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:51.948Z\",\n        \"trdMatchID\": \"f322436c-ae91-eb91-f923-7546d37b4d08\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1934.0898793530373,\n        \"grossValue\": 36710960,\n        \"homeNotional\": 12.054159422580476,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2288,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:52.252Z\",\n        \"trdMatchID\": \"141fcd57-8355-00a6-7993-87474c4303a4\",\n      },\n      {\n        \"foreignNotional\": 2292.505136715663,\n        \"grossValue\": 43514040,\n        \"homeNotional\": 14.287972182709025,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2712,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:52.252Z\",\n        \"trdMatchID\": \"41f8941d-cb6c-39be-9fc5-10269159de07\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 4183.4837469048,\n        \"grossValue\": 79406705,\n        \"homeNotional\": 26.073441862915548,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 4949,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:54.271Z\",\n        \"trdMatchID\": \"e2fb9485-f79e-0662-5e7c-d0df09bd9b03\",\n      },\n      {\n        \"foreignNotional\": 4269.706285232601,\n        \"grossValue\": 81043295,\n        \"homeNotional\": 26.610821347663453,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5051,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:54.271Z\",\n        \"trdMatchID\": \"f8aad428-6b71-fd00-65e2-cdceb67ca322\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 2205.9021447014807,\n        \"grossValue\": 41861405,\n        \"homeNotional\": 13.748221531327395,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2609,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:03.147Z\",\n        \"trdMatchID\": \"a1acef94-a916-91b4-3a7a-7cf35914b703\",\n      },\n      {\n        \"foreignNotional\": 1268.2457711967118,\n        \"grossValue\": 24067500,\n        \"homeNotional\": 7.904305211571903,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:03.147Z\",\n        \"trdMatchID\": \"62d369ff-36e0-29d4-ee0e-e4a4f5fb3259\",\n      },\n      {\n        \"foreignNotional\": 4980.823892079886,\n        \"grossValue\": 94521095,\n        \"homeNotional\": 31.04284133424672,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5891,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:03.147Z\",\n        \"trdMatchID\": \"a9be8612-0310-472b-4e07-92bac6a04bbe\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 169.09943615956158,\n        \"grossValue\": 3209000,\n        \"homeNotional\": 1.0539073615429204,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:05.696Z\",\n        \"trdMatchID\": \"b17873a8-af32-a8fb-d6d1-ed16cb242b45\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 701.7626600621805,\n        \"grossValue\": 13317350,\n        \"homeNotional\": 4.373715550403119,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 830,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:06.641Z\",\n        \"trdMatchID\": \"e7464688-aa8d-ca6b-99d4-b922b86caf8a\",\n      },\n      {\n        \"foreignNotional\": 5332.550719291774,\n        \"grossValue\": 101195815,\n        \"homeNotional\": 33.23496864625599,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 6307,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:06.641Z\",\n        \"trdMatchID\": \"e4835d65-1cad-6031-f9e4-8e795bd318d7\",\n      },\n      {\n        \"foreignNotional\": 2113.74295199452,\n        \"grossValue\": 40112500,\n        \"homeNotional\": 13.173842019286505,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:06.641Z\",\n        \"trdMatchID\": \"532d69fd-fd15-6679-8319-c9b9fad0ec87\",\n      },\n      {\n        \"foreignNotional\": 306.91547662960426,\n        \"grossValue\": 5824335,\n        \"homeNotional\": 1.9128418612004006,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 363,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:06.641Z\",\n        \"trdMatchID\": \"21b199e8-b599-6dc3-36b7-eafa172f37f8\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 84.54971807978079,\n        \"grossValue\": 1604500,\n        \"homeNotional\": 0.5269536807714602,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 100,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:07.413Z\",\n        \"trdMatchID\": \"de8f0bf6-00ed-3c6a-8337-67dd086c2cfb\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 169.09943615956158,\n        \"grossValue\": 3209000,\n        \"homeNotional\": 1.0539073615429204,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:10.210Z\",\n        \"trdMatchID\": \"80fa2791-085b-6500-4de7-4f4b106fa053\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1553.1783211255731,\n        \"grossValue\": 29474665,\n        \"homeNotional\": 9.680139115771723,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1837,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"724ed575-dfe1-bc34-3ba5-94a379027375\",\n      },\n      {\n        \"foreignNotional\": 252.80365705854456,\n        \"grossValue\": 4797455,\n        \"homeNotional\": 1.575591505506666,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 299,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"32097138-4e8c-9af8-e62e-00b769b23c9b\",\n      },\n      {\n        \"foreignNotional\": 10.145966169573695,\n        \"grossValue\": 192540,\n        \"homeNotional\": 0.06323444169257522,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 12,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"b183d7d2-50be-c0c1-2b7d-afeeb51312c3\",\n      },\n      {\n        \"foreignNotional\": 17.755440796753966,\n        \"grossValue\": 336945,\n        \"homeNotional\": 0.11066027296200664,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 21,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"f1c806a9-b9b6-8021-00e7-d91c2f62e7f7\",\n      },\n      {\n        \"foreignNotional\": 43.96585340148601,\n        \"grossValue\": 834340,\n        \"homeNotional\": 0.2740159140011593,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 52,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"22c804ae-97f1-7b2b-2700-9d678bf8ece7\",\n      },\n      {\n        \"foreignNotional\": 51.57532802866628,\n        \"grossValue\": 978745,\n        \"homeNotional\": 0.3214417452705907,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 61,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"7aad3e1a-63d6-4226-9540-e0df722774e8\",\n      },\n      {\n        \"foreignNotional\": 212.21979238024977,\n        \"grossValue\": 4027295,\n        \"homeNotional\": 1.322653738736365,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 251,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"5d91dd15-e5e5-c6ca-7c9d-8b97e45d65ca\",\n      },\n      {\n        \"foreignNotional\": 4941.931021763187,\n        \"grossValue\": 93783025,\n        \"homeNotional\": 30.80044264109185,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5845,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"81dae928-19a8-bd49-d399-99a51bf25925\",\n      },\n      {\n        \"foreignNotional\": 295.9240132792328,\n        \"grossValue\": 5615750,\n        \"homeNotional\": 1.8443378827001107,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 350,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"af34ebbe-2f93-7493-28e7-4626ec54e465\",\n      },\n      {\n        \"foreignNotional\": 1075.4724139748116,\n        \"grossValue\": 20409240,\n        \"homeNotional\": 6.702850819412974,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1272,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"3d511b20-6328-8d94-40c7-f14f17cfa5ad\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 253.64915423934235,\n        \"grossValue\": 4813500,\n        \"homeNotional\": 1.5808610423143805,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:13.728Z\",\n        \"trdMatchID\": \"5254a43a-abf3-1a61-98fe-be946c62b418\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 126.82457711967118,\n        \"grossValue\": 2406750,\n        \"homeNotional\": 0.7904305211571903,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 150,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:15.389Z\",\n        \"trdMatchID\": \"83af9915-a2ae-c65d-d40e-65e237ca52e0\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 3781.0633925277966,\n        \"grossValue\": 71753240,\n        \"homeNotional\": 23.5653686040997,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 4472,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:17.508Z\",\n        \"trdMatchID\": \"83cc3d30-79d5-4e84-fb03-343f121bf676\",\n      },\n      {\n        \"foreignNotional\": 4185.211044949149,\n        \"grossValue\": 79422750,\n        \"homeNotional\": 26.08420719818728,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 4950,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:17.508Z\",\n        \"trdMatchID\": \"b8628d4e-ef30-f0ca-cdbf-bf68800bd1d8\",\n      },\n      {\n        \"foreignNotional\": 93.00468988775887,\n        \"grossValue\": 1764950,\n        \"homeNotional\": 0.5796490488486062,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 110,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:17.508Z\",\n        \"trdMatchID\": \"aecccfb8-888d-35b7-b7a2-fd5c0f0a1edb\",\n      },\n      {\n        \"foreignNotional\": 395.6926806133741,\n        \"grossValue\": 7509060,\n        \"homeNotional\": 2.4661432260104337,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 468,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:17.508Z\",\n        \"trdMatchID\": \"616bc2f3-1317-2c96-6e85-8de1b6cc8b27\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 422.74859039890396,\n        \"grossValue\": 8022500,\n        \"homeNotional\": 2.634768403857301,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:19.282Z\",\n        \"trdMatchID\": \"8996df52-12b8-57b2-f89a-6e440e70b855\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 8452.337039574222,\n        \"grossValue\": 160400000,\n        \"homeNotional\": 52.69536807714602,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 10000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:01:20.401Z\",\n        \"trdMatchID\": \"f6ec059e-9053-1ea5-15be-71f2833b7d5d\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1745.9516783474733,\n        \"grossValue\": 33132925,\n        \"homeNotional\": 10.881593507930653,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2065,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:23.294Z\",\n        \"trdMatchID\": \"ee0e14eb-b7ee-39d8-49a7-fc43607e551c\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1267.850555936133,\n        \"grossValue\": 24060000,\n        \"homeNotional\": 7.904305211571903,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 1500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:01:23.866Z\",\n        \"trdMatchID\": \"29a19030-84c2-5f54-830d-5c265d4054ab\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 270.55909785529855,\n        \"grossValue\": 5134400,\n        \"homeNotional\": 1.6862517784686726,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 320,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:27.831Z\",\n        \"trdMatchID\": \"d69ae39d-090f-1c80-5753-8ca451d9b085\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 422.57045035554387,\n        \"grossValue\": 8022500,\n        \"homeNotional\": 2.6336581511719777,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:31.321Z\",\n        \"trdMatchID\": \"865b1e3c-8344-ec89-1354-b573c18a0a93\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 169.02818014221754,\n        \"grossValue\": 3209000,\n        \"homeNotional\": 1.0534632604687912,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:32.073Z\",\n        \"trdMatchID\": \"22faa61a-f889-915e-3332-8168d5c741a2\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 6670.697129312615,\n        \"grossValue\": 126643185,\n        \"homeNotional\": 41.574927574400846,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 7893,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:34.887Z\",\n        \"trdMatchID\": \"8787aad5-7f4d-fe9e-e916-b58e19f4edb1\",\n      },\n      {\n        \"foreignNotional\": 1780.7118777982619,\n        \"grossValue\": 33806815,\n        \"homeNotional\": 11.098235449038715,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2107,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:34.887Z\",\n        \"trdMatchID\": \"1a24b59a-2ba7-9ba8-5a09-d8ae0ab6b495\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 422.43876744798524,\n        \"grossValue\": 8020000,\n        \"homeNotional\": 2.6336581511719777,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:01:35.972Z\",\n        \"trdMatchID\": \"5caa8592-fe9c-c166-2ab2-d0073e54476e\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 8451.409007110877,\n        \"grossValue\": 160450000,\n        \"homeNotional\": 52.67316302343956,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 10000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:39.926Z\",\n        \"trdMatchID\": \"0fbaf56f-4f47-dfd2-ca15-9e2cb61ec2a3\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 466.5177771925204,\n        \"grossValue\": 8856840,\n        \"homeNotional\": 2.9075585988938637,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 552,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:45.851Z\",\n        \"trdMatchID\": \"6484ea35-ffc2-6dc2-0cce-1e2d4ee1fbce\",\n      },\n      {\n        \"foreignNotional\": 1690.2818014221755,\n        \"grossValue\": 32090000,\n        \"homeNotional\": 10.53463260468791,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:45.851Z\",\n        \"trdMatchID\": \"f7f4662e-1155-98dc-987e-8414dd369426\",\n      },\n      {\n        \"foreignNotional\": 5020.136950223861,\n        \"grossValue\": 95307300,\n        \"homeNotional\": 31.287858835923096,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5940,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:45.851Z\",\n        \"trdMatchID\": \"d5b5471e-a11f-e270-411a-c67d0003e335\",\n      },\n      {\n        \"foreignNotional\": 52.39873584408744,\n        \"grossValue\": 994790,\n        \"homeNotional\": 0.32657361074532526,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 62,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:45.851Z\",\n        \"trdMatchID\": \"36f70e11-b205-24fd-86b7-621d70fffebb\",\n      },\n      {\n        \"foreignNotional\": 1222.073742428233,\n        \"grossValue\": 23201070,\n        \"homeNotional\": 7.61653937318936,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1446,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:45.851Z\",\n        \"trdMatchID\": \"67a5c10b-5820-35cc-ee58-5e9842e7bfd1\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 414.119041348433,\n        \"grossValue\": 7862050,\n        \"homeNotional\": 2.5809849881485385,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 490,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:48.869Z\",\n        \"trdMatchID\": \"62f74f1f-c25a-598f-92ac-2aed8df21637\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 8451.409007110877,\n        \"grossValue\": 160450000,\n        \"homeNotional\": 52.67316302343956,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 10000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:50.080Z\",\n        \"trdMatchID\": \"26537978-f496-a7fe-16fb-74a655a43a15\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 953.318936002107,\n        \"grossValue\": 18098760,\n        \"homeNotional\": 5.941532789043982,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1128,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:56.836Z\",\n        \"trdMatchID\": \"4925149b-f7b6-753e-6dc1-78c5507273a1\",\n      },\n      {\n        \"foreignNotional\": 4225.704503555438,\n        \"grossValue\": 80225000,\n        \"homeNotional\": 26.33658151171978,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:56.836Z\",\n        \"trdMatchID\": \"20ce8f57-6549-bab4-2dc6-aef138505066\",\n      },\n      {\n        \"foreignNotional\": 3272.3855675533314,\n        \"grossValue\": 62126240,\n        \"homeNotional\": 20.395048722675796,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 3872,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:56.836Z\",\n        \"trdMatchID\": \"ee97257f-68a4-e42f-3afa-3d2c473b0990\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 844.8775348959705,\n        \"grossValue\": 16040000,\n        \"homeNotional\": 5.267316302343955,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:01:58.724Z\",\n        \"trdMatchID\": \"3b5e7feb-6eb6-9e47-4130-a6c46b0c7c30\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n]\n`;\n\nexports[`replay replays raw Bitmex data feed (ETHUSD trades) for 1st of April 2019 and compares with not decoded sample: bitmex-received-messages 2`] = `\n[\n  {\n    \"action\": \"partial\",\n    \"attributes\": {\n      \"symbol\": \"grouped\",\n      \"timestamp\": \"sorted\",\n    },\n    \"data\": [\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": -0.001179,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTUSDPI8H\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-04-30T20:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": -0.000179,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".ETHUSDPI8H\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-04-30T20:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0003,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTBON8H\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T20:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0006,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".USDBON8H\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T20:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0003,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".ETHBON8H\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T20:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": -0.000835,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTUSDPI2H\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T22:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.000338,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".ETHUSDPI2H\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T22:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0003,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTBON2H\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T22:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0006,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".USDBON2H\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T22:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0003,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".ETHBON2H\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T22:00:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 1.87,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BVOL24H\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:55:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 7.06,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BVOL7D\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T23:55:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 4.52,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".EVOL7D\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T23:55:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": 0.00229,\n        \"grossValue\": 10000000,\n        \"homeNotional\": 0.1,\n        \"price\": 0.00229,\n        \"side\": \"Buy\",\n        \"size\": 1,\n        \"symbol\": \"XBT7D_U105\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:57:04.721Z\",\n        \"trdMatchID\": \"cf9382a9-97eb-0121-c811-0879357fe636\",\n      },\n      {\n        \"foreignNotional\": 0.00000449,\n        \"grossValue\": 449,\n        \"homeNotional\": 1,\n        \"price\": 0.00000449,\n        \"side\": \"Buy\",\n        \"size\": 1,\n        \"symbol\": \"TRXM19\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:58:17.241Z\",\n        \"trdMatchID\": \"e44ed643-af21-759e-5b76-41f4b0e70b18\",\n      },\n      {\n        \"foreignNotional\": 0.0366482,\n        \"grossValue\": 3664820,\n        \"homeNotional\": 620,\n        \"price\": 0.00005911,\n        \"side\": \"Buy\",\n        \"size\": 620,\n        \"symbol\": \"XRPM19\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:58:41.447Z\",\n        \"trdMatchID\": \"87d9edab-0aff-bfd7-deaa-524e6c5f56b9\",\n      },\n      {\n        \"foreignNotional\": 0.1812203,\n        \"grossValue\": 18122030,\n        \"homeNotional\": 197,\n        \"price\": 0.0009199,\n        \"side\": \"Sell\",\n        \"size\": 197,\n        \"symbol\": \"EOSM19\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T23:58:59.116Z\",\n        \"trdMatchID\": \"065f8a7a-cf6f-0b40-c9a4-a3b98593fbf7\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": -0.001108,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTUSDPI\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.001537,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".ETHUSDPI\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.00001317,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BADAXBT\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.05025,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BBCHXBT\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0009055,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BEOSXBT\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 160.13,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BETH\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.03038,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BETHXBT\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.01392,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BLTCXBT\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 5266.94,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BXBT\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 587064.92,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BXBTJPY\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.00005796,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".BXRPXBT\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0003,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".ETHBON\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0006,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".USDBON\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 5266.94,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBT\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.0003,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTBON\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 587736,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".XBTJPY\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": null,\n        \"grossValue\": null,\n        \"homeNotional\": null,\n        \"price\": 0.00000441,\n        \"side\": \"Buy\",\n        \"size\": 0,\n        \"symbol\": \".TRXXBT\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:00.000Z\",\n        \"trdMatchID\": \"00000000-0000-0000-0000-000000000000\",\n      },\n      {\n        \"foreignNotional\": 0.6565,\n        \"grossValue\": 65650000,\n        \"homeNotional\": 13,\n        \"price\": 0.0505,\n        \"side\": \"Buy\",\n        \"size\": 13,\n        \"symbol\": \"BCHM19\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:37.248Z\",\n        \"trdMatchID\": \"ac740e1c-18ba-a086-8bd7-73478c901c4a\",\n      },\n      {\n        \"foreignNotional\": 3229,\n        \"grossValue\": 62155021,\n        \"homeNotional\": 0.62155021,\n        \"price\": 5195,\n        \"side\": \"Buy\",\n        \"size\": 3229,\n        \"symbol\": \"XBTM19\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:37.271Z\",\n        \"trdMatchID\": \"1064c327-6bac-2143-eb3e-f72ecb1a2d59\",\n      },\n      {\n        \"foreignNotional\": 32.10379346680717,\n        \"grossValue\": 609330,\n        \"homeNotional\": 0.20021074815595363,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 38,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:41.477Z\",\n        \"trdMatchID\": \"dec631ab-3af3-2ef8-be14-6f0b2eb287ac\",\n      },\n      {\n        \"foreignNotional\": 0.00609738,\n        \"grossValue\": 609738,\n        \"homeNotional\": 453,\n        \"price\": 0.00001346,\n        \"side\": \"Sell\",\n        \"size\": 453,\n        \"symbol\": \"ADAM19\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:48.348Z\",\n        \"trdMatchID\": \"e8f4663f-221c-8ee7-e459-01fdfa7607d8\",\n      },\n      {\n        \"foreignNotional\": 10,\n        \"grossValue\": 193050,\n        \"homeNotional\": 0.0019305,\n        \"price\": 5180,\n        \"side\": \"Buy\",\n        \"size\": 10,\n        \"symbol\": \"XBTU19\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:50.535Z\",\n        \"trdMatchID\": \"a2d5d7cb-024d-9cda-4dd7-f8dc366b099d\",\n      },\n      {\n        \"foreignNotional\": 0.06194,\n        \"grossValue\": 6194000,\n        \"homeNotional\": 2,\n        \"price\": 0.03097,\n        \"side\": \"Buy\",\n        \"size\": 2,\n        \"symbol\": \"ETHM19\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:55.647Z\",\n        \"trdMatchID\": \"92e4bd28-ca5a-cf2a-e7d9-e2151f5bd831\",\n      },\n      {\n        \"foreignNotional\": 2000,\n        \"grossValue\": 37994000,\n        \"homeNotional\": 0.37994,\n        \"price\": 5264,\n        \"side\": \"Buy\",\n        \"size\": 2000,\n        \"symbol\": \"XBTUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:58.272Z\",\n        \"trdMatchID\": \"4b2676b8-579e-3457-b44f-626cbd4b63c5\",\n      },\n      {\n        \"foreignNotional\": 0.04251,\n        \"grossValue\": 4251000,\n        \"homeNotional\": 3,\n        \"price\": 0.01417,\n        \"side\": \"Buy\",\n        \"size\": 3,\n        \"symbol\": \"LTCM19\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-04-30T23:59:59.668Z\",\n        \"trdMatchID\": \"db459784-08d1-4e9c-af95-c94619da9d70\",\n      },\n    ],\n    \"filter\": {},\n    \"foreignKeys\": {\n      \"side\": \"side\",\n      \"symbol\": \"instrument\",\n    },\n    \"keys\": [],\n    \"table\": \"trade\",\n    \"types\": {\n      \"foreignNotional\": \"float\",\n      \"grossValue\": \"long\",\n      \"homeNotional\": \"float\",\n      \"price\": \"float\",\n      \"side\": \"symbol\",\n      \"size\": \"long\",\n      \"symbol\": \"symbol\",\n      \"tickDirection\": \"symbol\",\n      \"timestamp\": \"timestamp\",\n      \"trdMatchID\": \"guid\",\n    },\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 2079.549620733249,\n        \"grossValue\": 39478170,\n        \"homeNotional\": 12.96881584492204,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 2462,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"28c94cd5-fdcf-e657-4f64-a8e5d02b7de3\",\n      },\n      {\n        \"foreignNotional\": 51.524178255372945,\n        \"grossValue\": 978135,\n        \"homeNotional\": 0.32132321955330806,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 61,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"8dacd11f-1886-0d1d-e4a6-484c14a4ebd9\",\n      },\n      {\n        \"foreignNotional\": 4322.9630214917825,\n        \"grossValue\": 82067130,\n        \"homeNotional\": 26.95954487989886,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 5118,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"16ec6abc-f0f7-6762-d75b-88b649c14a95\",\n      },\n      {\n        \"foreignNotional\": 2533.97597977244,\n        \"grossValue\": 48105000,\n        \"homeNotional\": 15.802781289506953,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 3000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"09765142-e68d-7017-4b5c-59c26980b9d3\",\n      },\n      {\n        \"foreignNotional\": 2533.97597977244,\n        \"grossValue\": 48105000,\n        \"homeNotional\": 15.802781289506953,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 3000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"29f08254-1466-c140-36a0-d54ee9f0e449\",\n      },\n      {\n        \"foreignNotional\": 505.95053729456384,\n        \"grossValue\": 9604965,\n        \"homeNotional\": 3.155288664138222,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 599,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"d02afcba-2b83-0a9b-32cb-94a0a64f2974\",\n      },\n      {\n        \"foreignNotional\": 844.6586599241466,\n        \"grossValue\": 16035000,\n        \"homeNotional\": 5.267593763168985,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"af7f660f-90d6-5df2-1190-d4c03ee6abdf\",\n      },\n      {\n        \"foreignNotional\": 4223.293299620733,\n        \"grossValue\": 80175000,\n        \"homeNotional\": 26.33796881584492,\n        \"price\": 160.35,\n        \"side\": \"Buy\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"f10ee959-8dd0-bd6e-2abe-3dee67227c45\",\n      },\n      {\n        \"foreignNotional\": 109.83986514959966,\n        \"grossValue\": 2085200,\n        \"homeNotional\": 0.684787189211968,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 130,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"6b1e40c6-e3cc-7277-4a21-978d66db5046\",\n      },\n      {\n        \"foreignNotional\": 2534.766118836915,\n        \"grossValue\": 48120000,\n        \"homeNotional\": 15.802781289506953,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 3000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"047daf26-8265-7175-f666-2bd1c18ce23c\",\n      },\n      {\n        \"foreignNotional\": 42.24610198061526,\n        \"grossValue\": 802000,\n        \"homeNotional\": 0.2633796881584492,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 50,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"97deb08e-d8ff-88a8-a240-45f0e5c45ebb\",\n      },\n      {\n        \"foreignNotional\": 19.43320691108302,\n        \"grossValue\": 368920,\n        \"homeNotional\": 0.12115465655288664,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 23,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"50371741-145f-210c-713d-41ae6d33800f\",\n      },\n      {\n        \"foreignNotional\": 53.230088495575224,\n        \"grossValue\": 1010520,\n        \"homeNotional\": 0.33185840707964603,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 63,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"f0f0ccbd-1ff9-6aa1-dc95-8a3f2c41a80a\",\n      },\n      {\n        \"foreignNotional\": 253.47661188369153,\n        \"grossValue\": 4812000,\n        \"homeNotional\": 1.5802781289506953,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"e98ec002-b670-c326-2024-8897f528a5bc\",\n      },\n      {\n        \"foreignNotional\": 126.73830594184577,\n        \"grossValue\": 2406000,\n        \"homeNotional\": 0.7901390644753477,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 150,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"7cd42785-ff59-69f7-0c14-2dd578a4054b\",\n      },\n      {\n        \"foreignNotional\": 253.47661188369153,\n        \"grossValue\": 4812000,\n        \"homeNotional\": 1.5802781289506953,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"013b4e0d-7ce3-507f-f40e-513fbba20ad0\",\n      },\n      {\n        \"foreignNotional\": 126.73830594184577,\n        \"grossValue\": 2406000,\n        \"homeNotional\": 0.7901390644753477,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 150,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"8b00d117-225a-14ca-c676-a32fa15ad9ab\",\n      },\n      {\n        \"foreignNotional\": 253.47661188369153,\n        \"grossValue\": 4812000,\n        \"homeNotional\": 1.5802781289506953,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"ef78e0a6-943d-d0d2-77d7-72d519f0ad22\",\n      },\n      {\n        \"foreignNotional\": 126.73830594184577,\n        \"grossValue\": 2406000,\n        \"homeNotional\": 0.7901390644753477,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 150,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"fd185d01-023f-b5f2-7d43-015d5e56523e\",\n      },\n      {\n        \"foreignNotional\": 10139.06447534766,\n        \"grossValue\": 192480000,\n        \"homeNotional\": 63.21112515802781,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 12000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"e9c319e4-8806-68c1-4f70-53547bb425b3\",\n      },\n      {\n        \"foreignNotional\": 63.36915297092288,\n        \"grossValue\": 1203000,\n        \"homeNotional\": 0.3950695322376738,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 75,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"4827be79-1228-fc33-6a7c-095721e804e0\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"7bb2bc52-31a8-7a2d-5526-b675c2664dc1\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"2733fbda-69c2-fd6d-dc84-4ce825e23745\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"0dee99d6-2c30-cc3b-2257-babfdb930565\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"5e2e34ab-fc59-50b1-7c13-631a7717a1e6\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"8ae4eb36-912d-7c38-1522-d70914710c19\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"9cd7790b-ce27-c2d2-98ff-0a986e7afd72\",\n      },\n      {\n        \"foreignNotional\": 591.4454277286136,\n        \"grossValue\": 11228000,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"939c89cf-9041-0e70-0108-d04a52d886ee\",\n      },\n      {\n        \"foreignNotional\": 893.9275179098188,\n        \"grossValue\": 16970320,\n        \"homeNotional\": 5.5731142014327855,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 1058,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"d207295f-0a19-5e9e-4691-3c0ac090f24b\",\n      },\n      {\n        \"foreignNotional\": 42.24610198061526,\n        \"grossValue\": 802000,\n        \"homeNotional\": 0.2633796881584492,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 50,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"e6e3084c-a143-1fda-e866-9a1113ab3553\",\n      },\n      {\n        \"foreignNotional\": 16898.440792246103,\n        \"grossValue\": 320800000,\n        \"homeNotional\": 105.35187526337968,\n        \"price\": 160.4,\n        \"side\": \"Buy\",\n        \"size\": 20000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"33c4abfa-ec70-122f-a307-c9fbf413fe6f\",\n      },\n      {\n        \"foreignNotional\": 507.1112515802781,\n        \"grossValue\": 9627000,\n        \"homeNotional\": 3.1605562579013906,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 600,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"59f6365d-4a57-53da-c9c6-9f70c92c5f1c\",\n      },\n      {\n        \"foreignNotional\": 169.0370838600927,\n        \"grossValue\": 3209000,\n        \"homeNotional\": 1.0535187526337968,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"692b7f52-1d53-1856-fcf2-61fe93ed5916\",\n      },\n      {\n        \"foreignNotional\": 4225.927096502318,\n        \"grossValue\": 80225000,\n        \"homeNotional\": 26.33796881584492,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"acb200ca-001f-9be6-13e1-85377390a317\",\n      },\n      {\n        \"foreignNotional\": 7.606668773704172,\n        \"grossValue\": 144405,\n        \"homeNotional\": 0.04740834386852086,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 9,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"c1d32d81-fc19-ca58-e940-b853f3058e08\",\n      },\n      {\n        \"foreignNotional\": 42.25927096502318,\n        \"grossValue\": 802250,\n        \"homeNotional\": 0.2633796881584492,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 50,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"c45f7891-e286-0b2f-ed0c-92cd1cfd6b8b\",\n      },\n      {\n        \"foreignNotional\": 89.58965444584913,\n        \"grossValue\": 1700770,\n        \"homeNotional\": 0.5583649388959123,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 106,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"4cc4d9d2-4465-a6d9-2a73-061cf0943d59\",\n      },\n      {\n        \"foreignNotional\": 60.00816477033291,\n        \"grossValue\": 1139195,\n        \"homeNotional\": 0.3739991571849979,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 71,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"a14ad4f9-3881-4aea-ffc5-47452dbd49de\",\n      },\n      {\n        \"foreignNotional\": 1056.4817741255795,\n        \"grossValue\": 20056250,\n        \"homeNotional\": 6.58449220396123,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1250,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"71a20563-45dd-71ea-2d30-34f0d6989349\",\n      },\n      {\n        \"foreignNotional\": 338.0741677201854,\n        \"grossValue\": 6418000,\n        \"homeNotional\": 2.1070375052675936,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 400,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"1b54cb64-6ad4-c4b0-3974-3ff927228d0e\",\n      },\n      {\n        \"foreignNotional\": 19.43926464391066,\n        \"grossValue\": 369035,\n        \"homeNotional\": 0.12115465655288664,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 23,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"1c766fd4-219a-bc99-c050-f14555e69296\",\n      },\n      {\n        \"foreignNotional\": 2112.963548251159,\n        \"grossValue\": 40112500,\n        \"homeNotional\": 13.16898440792246,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"bd4e5609-5388-3689-9061-6aac7102e0a4\",\n      },\n      {\n        \"foreignNotional\": 53.2466814159292,\n        \"grossValue\": 1010835,\n        \"homeNotional\": 0.33185840707964603,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 63,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"1cc42201-6bf1-f4f3-4ce9-b74f0ef2ac2b\",\n      },\n      {\n        \"foreignNotional\": 1690.370838600927,\n        \"grossValue\": 32090000,\n        \"homeNotional\": 10.53518752633797,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"73b884d6-6b58-c654-1916-389e19d6ca94\",\n      },\n      {\n        \"foreignNotional\": 845.1854193004635,\n        \"grossValue\": 16045000,\n        \"homeNotional\": 5.267593763168985,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"e1c31a00-1df7-99fe-dc5c-cf7c9f708530\",\n      },\n      {\n        \"foreignNotional\": 8357.193426042984,\n        \"grossValue\": 158652960,\n        \"homeNotional\": 52.08596713021492,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 9888,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"31c5f5fc-3e24-dbab-897d-843bc4ba160a\",\n      },\n      {\n        \"foreignNotional\": 993.9380530973451,\n        \"grossValue\": 18868920,\n        \"homeNotional\": 6.1946902654867255,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1176,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"ba1799a4-6c79-7198-4480-327399ce80b5\",\n      },\n      {\n        \"foreignNotional\": 105.64817741255794,\n        \"grossValue\": 2005625,\n        \"homeNotional\": 0.6584492203961231,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 125,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"0a897bb2-dec7-d5ca-034f-0b66d5b9ee7c\",\n      },\n      {\n        \"foreignNotional\": 344.8356510745891,\n        \"grossValue\": 6546360,\n        \"homeNotional\": 2.1491782553729455,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 408,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"43662e57-fa79-57e8-3696-dc6c60d64ce9\",\n      },\n      {\n        \"foreignNotional\": 544.2994100294985,\n        \"grossValue\": 10332980,\n        \"homeNotional\": 3.392330383480826,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 644,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"416794ad-3145-4ef5-ac21-e8dec1a08877\",\n      },\n      {\n        \"foreignNotional\": 367.65565739570167,\n        \"grossValue\": 6979575,\n        \"homeNotional\": 2.2914032869785084,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 435,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"8f0b8604-d7e2-647e-5cb0-91190d83c553\",\n      },\n      {\n        \"foreignNotional\": 88.74446902654867,\n        \"grossValue\": 1684725,\n        \"homeNotional\": 0.5530973451327433,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 105,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"80b2393a-feeb-a220-6664-4aa3b184c2ab\",\n      },\n      {\n        \"foreignNotional\": 422.59270965023177,\n        \"grossValue\": 8022500,\n        \"homeNotional\": 2.6337968815844923,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"e3f8aeee-61fd-4126-abf8-4dc707bd2924\",\n      },\n      {\n        \"foreignNotional\": 240.8778445006321,\n        \"grossValue\": 4572825,\n        \"homeNotional\": 1.5012642225031605,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 285,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"7c403e55-ab42-d4ea-26a9-09c12f5228c1\",\n      },\n      {\n        \"foreignNotional\": 1321.0248103666245,\n        \"grossValue\": 25078335,\n        \"homeNotional\": 8.233249051833123,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1563,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"25b74c26-2270-22e2-ed88-8cf5dcb6fbf5\",\n      },\n      {\n        \"foreignNotional\": 0.8451854193004635,\n        \"grossValue\": 16045,\n        \"homeNotional\": 0.005267593763168985,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"5b72769e-a9d0-28e9-388a-cb7acfbac910\",\n      },\n      {\n        \"foreignNotional\": 0.8451854193004635,\n        \"grossValue\": 16045,\n        \"homeNotional\": 0.005267593763168985,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"a620b637-2fcb-1e43-a761-bb86fe658f98\",\n      },\n      {\n        \"foreignNotional\": 19.445322376738307,\n        \"grossValue\": 369150,\n        \"homeNotional\": 0.12115465655288664,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 23,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"326ea74e-a337-8e88-3413-9c0e8847040b\",\n      },\n      {\n        \"foreignNotional\": 21136.21997471555,\n        \"grossValue\": 401250000,\n        \"homeNotional\": 131.6898440792246,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 25000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"c68fe2cc-8525-e82e-0d3f-bb305e4c2947\",\n      },\n      {\n        \"foreignNotional\": 2536.346396965866,\n        \"grossValue\": 48150000,\n        \"homeNotional\": 15.802781289506953,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 3000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"b1a24e5b-4952-227b-7fd9-73d449c8a018\",\n      },\n      {\n        \"foreignNotional\": 84.5448798988622,\n        \"grossValue\": 1605000,\n        \"homeNotional\": 0.5267593763168984,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 100,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"8cc87891-c22a-1c38-b59f-8b154e72aa25\",\n      },\n      {\n        \"foreignNotional\": 634.0865992414665,\n        \"grossValue\": 12037500,\n        \"homeNotional\": 3.9506953223767383,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 750,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"3d38e11e-7560-884f-0232-33301e47c8a1\",\n      },\n      {\n        \"foreignNotional\": 1392.4541719342603,\n        \"grossValue\": 26434350,\n        \"homeNotional\": 8.675726927939317,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1647,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"1c7b38f6-4834-3ad8-5028-aeda5c87570b\",\n      },\n      {\n        \"foreignNotional\": 84.5448798988622,\n        \"grossValue\": 1605000,\n        \"homeNotional\": 0.5267593763168984,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 100,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"d27f0b12-cd82-e99c-2b11-be755d437183\",\n      },\n      {\n        \"foreignNotional\": 126.8173198482933,\n        \"grossValue\": 2407500,\n        \"homeNotional\": 0.7901390644753477,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 150,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"c77fc4bb-b06a-898d-189a-1c87cdd4537a\",\n      },\n      {\n        \"foreignNotional\": 253.6346396965866,\n        \"grossValue\": 4815000,\n        \"homeNotional\": 1.5802781289506953,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"62b84228-12a5-13e8-44b4-80f6961a699d\",\n      },\n      {\n        \"foreignNotional\": 845.448798988622,\n        \"grossValue\": 16050000,\n        \"homeNotional\": 5.267593763168985,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"63841e2b-3d78-1ae8-6c65-fceac65a49a4\",\n      },\n      {\n        \"foreignNotional\": 8454.48798988622,\n        \"grossValue\": 160500000,\n        \"homeNotional\": 52.67593763168984,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 10000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"bb9d7ff6-5e85-c3e6-b28c-07e141c80bbe\",\n      },\n      {\n        \"foreignNotional\": 676.3590391908976,\n        \"grossValue\": 12840000,\n        \"homeNotional\": 4.214075010535187,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 800,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"f48073a1-403b-5f53-6b27-0afdb6a32198\",\n      },\n      {\n        \"foreignNotional\": 253.6346396965866,\n        \"grossValue\": 4815000,\n        \"homeNotional\": 1.5802781289506953,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"b3f74684-e686-87f6-e84f-fc578d8d6d61\",\n      },\n      {\n        \"foreignNotional\": 126.8173198482933,\n        \"grossValue\": 2407500,\n        \"homeNotional\": 0.7901390644753477,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 150,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"02e05777-80b3-a419-8655-96072d8ffd8a\",\n      },\n      {\n        \"foreignNotional\": 1099.0834386852086,\n        \"grossValue\": 20865000,\n        \"homeNotional\": 6.84787189211968,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"8d230c56-63d1-5359-b38a-9583728380fa\",\n      },\n      {\n        \"foreignNotional\": 2732.490518331226,\n        \"grossValue\": 51873600,\n        \"homeNotional\": 17.024863042562156,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 3232,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"b865b908-9a3d-3031-1078-9c31ebf5bb34\",\n      },\n      {\n        \"foreignNotional\": 4.22724399494311,\n        \"grossValue\": 80250,\n        \"homeNotional\": 0.026337968815844923,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 5,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"693cafec-5bda-85a1-072f-109529d8ad7e\",\n      },\n      {\n        \"foreignNotional\": 21.13621997471555,\n        \"grossValue\": 401250,\n        \"homeNotional\": 0.1316898440792246,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 25,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"bacf0b99-7e01-f83c-6e24-0dd8c976b90f\",\n      },\n      {\n        \"foreignNotional\": 13.527180783817952,\n        \"grossValue\": 256800,\n        \"homeNotional\": 0.08428150021070376,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 16,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"d11ec1fc-f0e7-0744-7623-736594988b72\",\n      },\n      {\n        \"foreignNotional\": 845.448798988622,\n        \"grossValue\": 16050000,\n        \"homeNotional\": 5.267593763168985,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"fd2f3d64-f856-a2ad-ae0a-fd8f4302b7c0\",\n      },\n      {\n        \"foreignNotional\": 16908.97597977244,\n        \"grossValue\": 321000000,\n        \"homeNotional\": 105.35187526337968,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 20000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"df09484c-4f10-3e36-66b5-764a5a98ff08\",\n      },\n      {\n        \"foreignNotional\": 253.6346396965866,\n        \"grossValue\": 4815000,\n        \"homeNotional\": 1.5802781289506953,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"f269984a-7871-6b1d-9962-f76afac4e7df\",\n      },\n      {\n        \"foreignNotional\": 43.963337547408344,\n        \"grossValue\": 834600,\n        \"homeNotional\": 0.2739148756847872,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 52,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"34051502-5a0e-eb28-8e19-90f951d42473\",\n      },\n      {\n        \"foreignNotional\": 43.963337547408344,\n        \"grossValue\": 834600,\n        \"homeNotional\": 0.2739148756847872,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 52,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"54868b06-902c-f71f-e571-0010cd4108a2\",\n      },\n      {\n        \"foreignNotional\": 1093.1652970922883,\n        \"grossValue\": 20752650,\n        \"homeNotional\": 6.810998735777497,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1293,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"58bd4efe-924d-6489-a15d-78299e5db9cf\",\n      },\n      {\n        \"foreignNotional\": 84.5448798988622,\n        \"grossValue\": 1605000,\n        \"homeNotional\": 0.5267593763168984,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 100,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"178f455a-e61a-7a4b-2d73-f6c77353798e\",\n      },\n      {\n        \"foreignNotional\": 4227.24399494311,\n        \"grossValue\": 80250000,\n        \"homeNotional\": 26.33796881584492,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"92a56df0-8bc0-133d-e95a-6b44b2535762\",\n      },\n      {\n        \"foreignNotional\": 1321.436472819216,\n        \"grossValue\": 25086150,\n        \"homeNotional\": 8.233249051833123,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1563,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"98ec476c-7c96-9890-bb2f-6c0bc535ddc0\",\n      },\n      {\n        \"foreignNotional\": 240.95290771175726,\n        \"grossValue\": 4574250,\n        \"homeNotional\": 1.5012642225031605,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 285,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"acb81671-84cc-d12e-f833-8403ac458dcb\",\n      },\n      {\n        \"foreignNotional\": 1780.5151706700378,\n        \"grossValue\": 33801300,\n        \"homeNotional\": 11.09355246523388,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 2106,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"06dcd0ce-0279-2246-0e99-9c589cc98c3f\",\n      },\n      {\n        \"foreignNotional\": 84.5448798988622,\n        \"grossValue\": 1605000,\n        \"homeNotional\": 0.5267593763168984,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 100,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"c9d26802-2f0c-81a0-95e2-4466e88f6e8c\",\n      },\n      {\n        \"foreignNotional\": 1923.396017699115,\n        \"grossValue\": 36513750,\n        \"homeNotional\": 11.983775811209439,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 2275,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"bba6ceb2-f663-b585-abae-1a0ce47217e2\",\n      },\n      {\n        \"foreignNotional\": 8602.44152970923,\n        \"grossValue\": 163308750,\n        \"homeNotional\": 53.597766540244415,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 10175,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"396f42b2-5e77-9bbc-ec1f-21f089a2ed77\",\n      },\n      {\n        \"foreignNotional\": 2626.8094184576485,\n        \"grossValue\": 49867350,\n        \"homeNotional\": 16.366413822166034,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 3107,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"9449aa07-e4a2-6108-7553-1c044d3f3674\",\n      },\n      {\n        \"foreignNotional\": 169.1424357353561,\n        \"grossValue\": 3211000,\n        \"homeNotional\": 1.0535187526337968,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"fcec770c-2208-5d4e-b717-2d7b6c75a901\",\n      },\n      {\n        \"foreignNotional\": 19.45138010956595,\n        \"grossValue\": 369265,\n        \"homeNotional\": 0.12115465655288664,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 23,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"4340cd03-3087-05e0-a670-31b401bd77f6\",\n      },\n      {\n        \"foreignNotional\": 779.7466287399916,\n        \"grossValue\": 14802710,\n        \"homeNotional\": 4.856721449641803,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 922,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"4075746c-e957-9c46-044f-2af365e10e84\",\n      },\n      {\n        \"foreignNotional\": 169.1424357353561,\n        \"grossValue\": 3211000,\n        \"homeNotional\": 1.0535187526337968,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"4323e992-d894-0f9c-2f9d-06c591217e87\",\n      },\n      {\n        \"foreignNotional\": 11779.079224610197,\n        \"grossValue\": 223614040,\n        \"homeNotional\": 73.36704593341761,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 13928,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"7c4ed2e1-f877-900b-0e63-733d53e9b1ea\",\n      },\n      {\n        \"foreignNotional\": 1057.1402233459755,\n        \"grossValue\": 20068750,\n        \"homeNotional\": 6.58449220396123,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1250,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"24b742f5-5553-753c-dd7a-5726f3e9cacb\",\n      },\n      {\n        \"foreignNotional\": 5.074273072060683,\n        \"grossValue\": 96330,\n        \"homeNotional\": 0.0316055625790139,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 6,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"aeaf7a4b-a1ba-ff07-9088-2be2424025f8\",\n      },\n      {\n        \"foreignNotional\": 2114.280446691951,\n        \"grossValue\": 40137500,\n        \"homeNotional\": 13.16898440792246,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 2500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"2246c116-4648-2471-23cd-9ab4c9c0fcf2\",\n      },\n      {\n        \"foreignNotional\": 40.59418457648546,\n        \"grossValue\": 770640,\n        \"homeNotional\": 0.2528445006321112,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 48,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"276d3ccf-23fb-ad48-ea2a-dc931aaa3b8e\",\n      },\n      {\n        \"foreignNotional\": 169.1424357353561,\n        \"grossValue\": 3211000,\n        \"homeNotional\": 1.0535187526337968,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"e94f9bd9-88dd-cec0-7280-3e6f788c31ed\",\n      },\n      {\n        \"foreignNotional\": 845.7121786767805,\n        \"grossValue\": 16055000,\n        \"homeNotional\": 5.267593763168985,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"c7d8d917-c44e-ce5d-ca70-f266c2902c8e\",\n      },\n      {\n        \"foreignNotional\": 1193.2998841129372,\n        \"grossValue\": 22653605,\n        \"homeNotional\": 7.432574799831437,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1411,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"9a671e4a-e2a3-8196-141f-b874435b5eb4\",\n      },\n      {\n        \"foreignNotional\": 27.062789717656976,\n        \"grossValue\": 513760,\n        \"homeNotional\": 0.1685630004214075,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 32,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"79df651c-e004-2cdb-6103-10b5a79532bf\",\n      },\n      {\n        \"foreignNotional\": 1321.848135271808,\n        \"grossValue\": 25093965,\n        \"homeNotional\": 8.233249051833123,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1563,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"1d6fa5f1-2ad0-8758-a4a7-afc76c74b788\",\n      },\n      {\n        \"foreignNotional\": 4418.000421407501,\n        \"grossValue\": 83871320,\n        \"homeNotional\": 27.517909818794774,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 5224,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"cb17b373-6a11-8a71-a973-de72985f1a3d\",\n      },\n      {\n        \"foreignNotional\": 4059.4184576485463,\n        \"grossValue\": 77064000,\n        \"homeNotional\": 25.284450063211125,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 4800,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"448f76f0-8177-dd22-a9c5-4a24a21b0596\",\n      },\n      {\n        \"foreignNotional\": 1268.5682680151706,\n        \"grossValue\": 24082500,\n        \"homeNotional\": 7.9013906447534765,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"ea24856c-b78c-2da7-530d-ac1e9602dab2\",\n      },\n      {\n        \"foreignNotional\": 2114.280446691951,\n        \"grossValue\": 40137500,\n        \"homeNotional\": 13.16898440792246,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 2500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"89d6b70c-8581-f38b-7c12-d71d53d2217c\",\n      },\n      {\n        \"foreignNotional\": 1270.2596923725243,\n        \"grossValue\": 24114610,\n        \"homeNotional\": 7.911925832279815,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1502,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"03715e8a-b45c-93e6-4a4f-5890961c2936\",\n      },\n      {\n        \"foreignNotional\": 21.149388959123474,\n        \"grossValue\": 401500,\n        \"homeNotional\": 0.1316898440792246,\n        \"price\": 160.6,\n        \"side\": \"Buy\",\n        \"size\": 25,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"a7083e98-0a66-fb6f-80a1-d47306941f01\",\n      },\n      {\n        \"foreignNotional\": 18.611462284028654,\n        \"grossValue\": 353320,\n        \"homeNotional\": 0.11588706278971765,\n        \"price\": 160.6,\n        \"side\": \"Buy\",\n        \"size\": 22,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"3b120e27-18fd-60e5-81ac-672ad373a3d5\",\n      },\n      {\n        \"foreignNotional\": 109.97682258744206,\n        \"grossValue\": 2087800,\n        \"homeNotional\": 0.684787189211968,\n        \"price\": 160.6,\n        \"side\": \"Buy\",\n        \"size\": 130,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"5113c667-204f-b968-4e7f-6b3e1b32f604\",\n      },\n      {\n        \"foreignNotional\": 16.91951116729878,\n        \"grossValue\": 321200,\n        \"homeNotional\": 0.10535187526337969,\n        \"price\": 160.6,\n        \"side\": \"Buy\",\n        \"size\": 20,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"672d1c8c-f367-483a-68fa-91b60ccd5992\",\n      },\n      {\n        \"foreignNotional\": 8036.767804466919,\n        \"grossValue\": 152570000,\n        \"homeNotional\": 50.042140750105354,\n        \"price\": 160.6,\n        \"side\": \"Buy\",\n        \"size\": 9500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"86a07d7d-3106-d31a-6781-55f7e39bfe50\",\n      },\n      {\n        \"foreignNotional\": 12559.353139485884,\n        \"grossValue\": 238426760,\n        \"homeNotional\": 78.20269700800674,\n        \"price\": 160.6,\n        \"side\": \"Buy\",\n        \"size\": 14846,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:05.236Z\",\n        \"trdMatchID\": \"7aecb3a3-f06c-1b02-f3eb-6b69db4b136e\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1068.6472819216183,\n        \"grossValue\": 20287200,\n        \"homeNotional\": 6.658238516645596,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1264,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.233Z\",\n        \"trdMatchID\": \"5e35557d-a59a-428e-3880-c5bff98b0cc8\",\n      },\n      {\n        \"foreignNotional\": 1105.001580278129,\n        \"grossValue\": 20977350,\n        \"homeNotional\": 6.884745048461863,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1307,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.233Z\",\n        \"trdMatchID\": \"07f71939-a142-1aec-291c-df961d15a6d6\",\n      },\n      {\n        \"foreignNotional\": 976.4933628318585,\n        \"grossValue\": 18537750,\n        \"homeNotional\": 6.084070796460177,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1155,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.233Z\",\n        \"trdMatchID\": \"cc8e31bf-8c6d-2e74-f8aa-b8f2965b014f\",\n      },\n      {\n        \"foreignNotional\": 930.8391276864728,\n        \"grossValue\": 17671050,\n        \"homeNotional\": 5.799620733249052,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1101,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.233Z\",\n        \"trdMatchID\": \"d5d15480-b7e9-050f-d14c-71418167d26f\",\n      },\n      {\n        \"foreignNotional\": 822.6216814159292,\n        \"grossValue\": 15616650,\n        \"homeNotional\": 5.125368731563422,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 973,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.233Z\",\n        \"trdMatchID\": \"69b30c22-3de3-00f6-56e2-34f9497d1801\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 422.724399494311,\n        \"grossValue\": 8025000,\n        \"homeNotional\": 2.6337968815844923,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.243Z\",\n        \"trdMatchID\": \"28ce81cb-355d-726b-2fd7-8ea44932da9a\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 840.3761061946902,\n        \"grossValue\": 15953700,\n        \"homeNotional\": 5.23598820058997,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 994,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.249Z\",\n        \"trdMatchID\": \"d1c6caab-a36b-2661-8b6b-7e9900bb7b0b\",\n      },\n      {\n        \"foreignNotional\": 875.0395069532237,\n        \"grossValue\": 16611750,\n        \"homeNotional\": 5.451959544879899,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1035,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.249Z\",\n        \"trdMatchID\": \"898d093c-2ce4-2bb6-9f7c-80095baa434c\",\n      },\n      {\n        \"foreignNotional\": 2275.1027180783817,\n        \"grossValue\": 43190550,\n        \"homeNotional\": 14.175094816687738,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 2691,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.249Z\",\n        \"trdMatchID\": \"aa40d7fc-eadf-33cf-e206-8b3a2030e5a7\",\n      },\n      {\n        \"foreignNotional\": 1505.3676780446692,\n        \"grossValue\": 28577900,\n        \"homeNotional\": 9.376316898440793,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 1780,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.249Z\",\n        \"trdMatchID\": \"e4cbf3cd-771c-6087-30a7-8dfad1663260\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 2554.050779603877,\n        \"grossValue\": 48486100,\n        \"homeNotional\": 15.908133164770334,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 3020,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.339Z\",\n        \"trdMatchID\": \"f7824ae6-8fb2-576c-a80a-97e18b750cb4\",\n      },\n      {\n        \"foreignNotional\": 4059.4184576485463,\n        \"grossValue\": 77064000,\n        \"homeNotional\": 25.284450063211125,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 4800,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.339Z\",\n        \"trdMatchID\": \"5dc02d18-58ab-06a0-55d0-19109f878604\",\n      },\n      {\n        \"foreignNotional\": 3957.9329962073325,\n        \"grossValue\": 75137400,\n        \"homeNotional\": 24.652338811630848,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 4680,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.339Z\",\n        \"trdMatchID\": \"e8140b44-c01d-101b-bed1-f23f8b878669\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 591.9985250737464,\n        \"grossValue\": 11238500,\n        \"homeNotional\": 3.687315634218289,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 700,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.352Z\",\n        \"trdMatchID\": \"d752cb96-6dcf-3e71-d0b6-7ea7f8398fd2\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 12364.31205225453,\n        \"grossValue\": 234724100,\n        \"homeNotional\": 77.01222081753055,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 14620,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.359Z\",\n        \"trdMatchID\": \"b64b3b89-8196-bcea-1b63-8554c683f7fe\",\n      },\n      {\n        \"foreignNotional\": 1691.424357353561,\n        \"grossValue\": 32110000,\n        \"homeNotional\": 10.53518752633797,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 2000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.359Z\",\n        \"trdMatchID\": \"186dfcb2-b1cb-2fb9-462b-3ec9d2e1e4d2\",\n      },\n      {\n        \"foreignNotional\": 7087.0680573114205,\n        \"grossValue\": 134540900,\n        \"homeNotional\": 44.14243573535609,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 8380,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.359Z\",\n        \"trdMatchID\": \"82090931-a6c2-a8a3-7c3a-91bb3664cada\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 4228.560893383902,\n        \"grossValue\": 80275000,\n        \"homeNotional\": 26.33796881584492,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.367Z\",\n        \"trdMatchID\": \"48e6cb5a-4ca7-8de9-ff4e-0c4ea397ab46\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 756.9123999157185,\n        \"grossValue\": 14369225,\n        \"homeNotional\": 4.714496418036241,\n        \"price\": 160.55,\n        \"side\": \"Buy\",\n        \"size\": 895,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:06.502Z\",\n        \"trdMatchID\": \"ae80fb86-12d5-bf9f-f7a4-7b41b5519065\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1356.9453223767382,\n        \"grossValue\": 25760250,\n        \"homeNotional\": 8.45448798988622,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1605,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:22.922Z\",\n        \"trdMatchID\": \"62b58688-04a0-75ed-114b-00824347f3d7\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 51.556310577328276,\n        \"grossValue\": 978745,\n        \"homeNotional\": 0.32132321955330806,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 61,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:23.567Z\",\n        \"trdMatchID\": \"a29e0d2c-0ffb-ad6c-41ba-cefb443fcb64\",\n      },\n      {\n        \"foreignNotional\": 371.0363990729035,\n        \"grossValue\": 7043755,\n        \"homeNotional\": 2.3124736620311843,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 439,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:23.567Z\",\n        \"trdMatchID\": \"68904e15-e0a1-dad5-a9fd-6e6245a7c0b7\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 137.8081542351454,\n        \"grossValue\": 2616150,\n        \"homeNotional\": 0.8586177833965445,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 163,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:23.834Z\",\n        \"trdMatchID\": \"c2071f22-3b89-46c4-9106-f5f301d9344e\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 75.24494310998736,\n        \"grossValue\": 1428450,\n        \"homeNotional\": 0.4688158449220396,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 89,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:23.848Z\",\n        \"trdMatchID\": \"0c830907-343d-805a-3e7c-78222fd845d6\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1351.4514854614413,\n        \"grossValue\": 25655955,\n        \"homeNotional\": 8.422882427307206,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 1599,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:24.597Z\",\n        \"trdMatchID\": \"d3e59306-4295-d8d4-bfef-4dd0ae4ea537\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 5687.252686472819,\n        \"grossValue\": 107966805,\n        \"homeNotional\": 35.4456384323641,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 6729,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:24.683Z\",\n        \"trdMatchID\": \"4c691222-65b5-bf70-7b6a-8fc1421a4013\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 5088.861409608091,\n        \"grossValue\": 96606945,\n        \"homeNotional\": 31.716182048040455,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 6021,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:24.721Z\",\n        \"trdMatchID\": \"f9f3e12c-c860-ae82-8231-af92351f7ee3\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 702.3490834386852,\n        \"grossValue\": 13333395,\n        \"homeNotional\": 4.3773704171934265,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 831,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:24.761Z\",\n        \"trdMatchID\": \"01856d2a-4dda-bfe6-976a-452c25d5777a\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 158.04967340918668,\n        \"grossValue\": 3000415,\n        \"homeNotional\": 0.9850400337126001,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 187,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:25.002Z\",\n        \"trdMatchID\": \"b7ff8784-de26-17a3-9c1f-311f6d9319b7\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 3096.0335018963337,\n        \"grossValue\": 58775100,\n        \"homeNotional\": 19.289928360724822,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 3662,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:25.672Z\",\n        \"trdMatchID\": \"5d5581eb-bd39-39ad-82d0-3aa17bc48122\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 422.59270965023177,\n        \"grossValue\": 8022500,\n        \"homeNotional\": 2.6337968815844923,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:26.826Z\",\n        \"trdMatchID\": \"6172bfe5-4563-dc1f-fa02-d6526465bf6b\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 147.95353982300884,\n        \"grossValue\": 2808750,\n        \"homeNotional\": 0.9218289085545722,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 175,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:27.053Z\",\n        \"trdMatchID\": \"8451b905-9bbb-24f0-d318-fec177a7a4f8\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 80.31763590391908,\n        \"grossValue\": 1524750,\n        \"homeNotional\": 0.5004214075010536,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 95,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:27.108Z\",\n        \"trdMatchID\": \"49b8d836-c1c7-2640-ed64-86ceed8e2539\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 4225.927096502318,\n        \"grossValue\": 80225000,\n        \"homeNotional\": 26.33796881584492,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:27.531Z\",\n        \"trdMatchID\": \"431a6b02-61bd-df6d-86bb-d481e371eebd\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 520.7964601769911,\n        \"grossValue\": 9886800,\n        \"homeNotional\": 3.2448377581120944,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 616,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:27.772Z\",\n        \"trdMatchID\": \"838adf83-0433-dbee-4b2f-36727357e3be\",\n      },\n      {\n        \"foreignNotional\": 1584.3710493046776,\n        \"grossValue\": 30077700,\n        \"homeNotional\": 9.871470712178677,\n        \"price\": 160.5,\n        \"side\": \"Buy\",\n        \"size\": 1874,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:27.772Z\",\n        \"trdMatchID\": \"edd2883b-14d0-7656-2eb8-fbf7865bb816\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 24251.7504214075,\n        \"grossValue\": 460395230,\n        \"homeNotional\": 151.14833544037083,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 28694,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"851fe6c5-155b-f2ec-383d-e4be848a2d11\",\n      },\n      {\n        \"foreignNotional\": 4009.5596291613992,\n        \"grossValue\": 76117480,\n        \"homeNotional\": 24.989464812473663,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 4744,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"107224c7-0b2b-74f7-c494-e92e122128d9\",\n      },\n      {\n        \"foreignNotional\": 76.06668773704172,\n        \"grossValue\": 1444050,\n        \"homeNotional\": 0.4740834386852086,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 90,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"7c6adeab-d537-8dd8-cfcd-c88205fa309e\",\n      },\n      {\n        \"foreignNotional\": 32.96223135271808,\n        \"grossValue\": 625755,\n        \"homeNotional\": 0.2054361567635904,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 39,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"16b8762b-8bcf-a28c-ff0f-f6e6b1f23a6a\",\n      },\n      {\n        \"foreignNotional\": 45.64001264222503,\n        \"grossValue\": 866430,\n        \"homeNotional\": 0.28445006321112515,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 54,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"b44113b4-e802-b7c7-8c6a-a33f8c94843a\",\n      },\n      {\n        \"foreignNotional\": 22.820006321112515,\n        \"grossValue\": 433215,\n        \"homeNotional\": 0.14222503160556257,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 27,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"03d10a64-bc4b-1cc9-284c-ea744dd16c05\",\n      },\n      {\n        \"foreignNotional\": 43.949641803624104,\n        \"grossValue\": 834340,\n        \"homeNotional\": 0.2739148756847872,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 52,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"fa8a403b-9c03-4f50-ecee-d381bd32d81c\",\n      },\n      {\n        \"foreignNotional\": 29.581489675516224,\n        \"grossValue\": 561575,\n        \"homeNotional\": 0.18436578171091444,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 35,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"afcad49d-9f3e-390c-5b43-696ca3fff68d\",\n      },\n      {\n        \"foreignNotional\": 27.045933417614833,\n        \"grossValue\": 513440,\n        \"homeNotional\": 0.1685630004214075,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 32,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"6f870dd7-e6f2-69d4-12f1-60a856843287\",\n      },\n      {\n        \"foreignNotional\": 820.6750421407501,\n        \"grossValue\": 15579695,\n        \"homeNotional\": 5.114833544037084,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 971,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"16217df2-397f-8811-e660-9239d14ec6c6\",\n      },\n      {\n        \"foreignNotional\": 51.556310577328276,\n        \"grossValue\": 978745,\n        \"homeNotional\": 0.32132321955330806,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 61,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"ede1af07-b57d-e806-9d04-7e5997819398\",\n      },\n      {\n        \"foreignNotional\": 45.64001264222503,\n        \"grossValue\": 866430,\n        \"homeNotional\": 0.28445006321112515,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 54,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"74cac676-d71f-476d-cbf4-1f052e0a5cc7\",\n      },\n      {\n        \"foreignNotional\": 42.25927096502318,\n        \"grossValue\": 802250,\n        \"homeNotional\": 0.2633796881584492,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 50,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"9c059f87-8c6b-ac80-4ae5-0dd3a900ea28\",\n      },\n      {\n        \"foreignNotional\": 236.6519174041298,\n        \"grossValue\": 4492600,\n        \"homeNotional\": 1.4749262536873156,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 280,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"caa908df-4e4b-5c11-020b-8c5c4f1137bf\",\n      },\n      {\n        \"foreignNotional\": 711.6461230509904,\n        \"grossValue\": 13509890,\n        \"homeNotional\": 4.435313948588285,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 842,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"b605c391-a191-d8e4-e189-d1ae4fc4d0c4\",\n      },\n      {\n        \"foreignNotional\": 4225.927096502318,\n        \"grossValue\": 80225000,\n        \"homeNotional\": 26.33796881584492,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"8e18ed1b-4bb6-3b33-2e80-f44271d4fad2\",\n      },\n      {\n        \"foreignNotional\": 2914.1993257479985,\n        \"grossValue\": 55323160,\n        \"homeNotional\": 18.16266329540666,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 3448,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"846c4e4e-993b-0175-9e93-95b9be651d30\",\n      },\n      {\n        \"foreignNotional\": 179.17930889169827,\n        \"grossValue\": 3401540,\n        \"homeNotional\": 1.1167298777918246,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 212,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"ebe79574-61d7-41bc-0214-6c08c8077e9e\",\n      },\n      {\n        \"foreignNotional\": 66.76964812473662,\n        \"grossValue\": 1267555,\n        \"homeNotional\": 0.4161399072903498,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 79,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"ff236ee6-d3fb-85bc-d26d-89a4ca0289f6\",\n      },\n      {\n        \"foreignNotional\": 8451.854193004636,\n        \"grossValue\": 160450000,\n        \"homeNotional\": 52.67593763168984,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 10000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"4a39018b-e423-7b1e-fc9e-ddfe9ba0d6e9\",\n      },\n      {\n        \"foreignNotional\": 2112.963548251159,\n        \"grossValue\": 40112500,\n        \"homeNotional\": 13.16898440792246,\n        \"price\": 160.45,\n        \"side\": \"Sell\",\n        \"size\": 2500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:29.888Z\",\n        \"trdMatchID\": \"1abe8ad8-3cb0-82f4-f6ae-78e347212556\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 31.276803118908383,\n        \"grossValue\": 593665,\n        \"homeNotional\": 0.1949317738791423,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 37,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:30.655Z\",\n        \"trdMatchID\": \"1c9f920c-9f9d-d4cb-63e7-0be13a8c7df0\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1169.556925346399,\n        \"grossValue\": 22199360,\n        \"homeNotional\": 7.291502028344134,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 1384,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:31.720Z\",\n        \"trdMatchID\": \"4001d105-9107-b47b-a803-1c0094164411\",\n      },\n      {\n        \"foreignNotional\": 109.85722564669933,\n        \"grossValue\": 2085200,\n        \"homeNotional\": 0.684895421737527,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 130,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:31.720Z\",\n        \"trdMatchID\": \"4187f454-8310-d121-1620-a59e690fc0f4\",\n      },\n      {\n        \"foreignNotional\": 2945.8637584953376,\n        \"grossValue\": 55915440,\n        \"homeNotional\": 18.36573415520784,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 3486,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:31.720Z\",\n        \"trdMatchID\": \"a08f3dbc-3ba6-150f-e23b-cd6948b097bd\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 145.39486855276328,\n        \"grossValue\": 2759740,\n        \"homeNotional\": 0.9061693272219588,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 172,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:31.735Z\",\n        \"trdMatchID\": \"355e8046-7305-38f8-d03f-bc767fd221ff\",\n      },\n      {\n        \"foreignNotional\": 911.2538854644117,\n        \"grossValue\": 17296510,\n        \"homeNotional\": 5.6793635741004165,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1078,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:31.735Z\",\n        \"trdMatchID\": \"36938377-b0fe-a644-6edf-81cb532ca22e\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 238.3056740951478,\n        \"grossValue\": 4523280,\n        \"homeNotional\": 1.485696222538328,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 282,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:31.804Z\",\n        \"trdMatchID\": \"7b70e983-67ef-5d95-1419-8edd01907f13\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 5.070333491386123,\n        \"grossValue\": 96240,\n        \"homeNotional\": 0.0316105579263474,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 6,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroMinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:32.042Z\",\n        \"trdMatchID\": \"95c464bd-9337-1b7c-eec5-e981a3fd939e\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 3334.7834676782045,\n        \"grossValue\": 63297525,\n        \"homeNotional\": 20.783941836573415,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 3945,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:32.718Z\",\n        \"trdMatchID\": \"639cbd72-2b06-a493-64da-fd0ef1980ec9\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1056.6487540171752,\n        \"grossValue\": 20056250,\n        \"homeNotional\": 6.585532901322375,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1250,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:33.474Z\",\n        \"trdMatchID\": \"b97369e1-f2ea-fbcc-68b7-1ac207014bb0\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 5876.657710341921,\n        \"grossValue\": 111544840,\n        \"homeNotional\": 36.62609978399452,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 6952,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:41.673Z\",\n        \"trdMatchID\": \"9d845f4f-1c77-5571-2c05-a37877c6c96a\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 5284.089089089089,\n        \"grossValue\": 100297295,\n        \"homeNotional\": 32.932932932932935,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 6251,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:43.397Z\",\n        \"trdMatchID\": \"5c8d4254-a583-64b8-6368-8b1018d50761\",\n      },\n      {\n        \"foreignNotional\": 3169.1009430483114,\n        \"grossValue\": 60152705,\n        \"homeNotional\": 19.751330277646066,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 3749,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:43.397Z\",\n        \"trdMatchID\": \"2b4434c5-f749-0f59-e9b9-656620e3aa01\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 2535.1667456930613,\n        \"grossValue\": 48120000,\n        \"homeNotional\": 15.8052789631737,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 3000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:00:43.444Z\",\n        \"trdMatchID\": \"866eaa3d-d736-e133-8b0b-12fa80aca5ce\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 18230.14962330752,\n        \"grossValue\": 346026470,\n        \"homeNotional\": 113.61888203993468,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 21566,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:50.204Z\",\n        \"trdMatchID\": \"fe637404-39d1-2e39-4613-615657630a1e\",\n      },\n      {\n        \"foreignNotional\": 4590.927506453822,\n        \"grossValue\": 87140395,\n        \"homeNotional\": 28.612823349665454,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5431,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:50.204Z\",\n        \"trdMatchID\": \"7bdad422-b803-e699-82b5-fb92a545c3cf\",\n      },\n      {\n        \"foreignNotional\": 5072.759338285654,\n        \"grossValue\": 96286045,\n        \"homeNotional\": 31.615826352668456,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 6001,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:50.204Z\",\n        \"trdMatchID\": \"6a13e439-4120-b773-a5df-b7866b0a5572\",\n      },\n      {\n        \"foreignNotional\": 845.3190032137401,\n        \"grossValue\": 16045000,\n        \"homeNotional\": 5.2684263210579,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:50.204Z\",\n        \"trdMatchID\": \"ddc0db00-ecb5-52ca-b896-1d1c779b064a\",\n      },\n      {\n        \"foreignNotional\": 8139.576681945103,\n        \"grossValue\": 154497305,\n        \"homeNotional\": 50.72967704546652,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 9629,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:50.204Z\",\n        \"trdMatchID\": \"954852cc-4397-6317-dfaa-ddba3b89d601\",\n      },\n      {\n        \"foreignNotional\": 5387.218007481165,\n        \"grossValue\": 102254785,\n        \"homeNotional\": 33.575680944102,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 6373,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:50.204Z\",\n        \"trdMatchID\": \"5e332f8a-11e7-501e-6be9-c3bce672142d\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 213.02038880986248,\n        \"grossValue\": 4043340,\n        \"homeNotional\": 1.3276434329065907,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 252,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:51.948Z\",\n        \"trdMatchID\": \"85561536-7d8b-0965-d3dc-339f3fdae934\",\n      },\n      {\n        \"foreignNotional\": 5234.215267899478,\n        \"grossValue\": 99350640,\n        \"homeNotional\": 32.62209577999052,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 6192,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:51.948Z\",\n        \"trdMatchID\": \"56aa5f1d-d1fa-d099-18b6-e12663bc0dd9\",\n      },\n      {\n        \"foreignNotional\": 3005.95437542806,\n        \"grossValue\": 57056020,\n        \"homeNotional\": 18.734523997681894,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 3556,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:51.948Z\",\n        \"trdMatchID\": \"f322436c-ae91-eb91-f923-7546d37b4d08\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1934.0898793530373,\n        \"grossValue\": 36710960,\n        \"homeNotional\": 12.054159422580476,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2288,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:52.252Z\",\n        \"trdMatchID\": \"141fcd57-8355-00a6-7993-87474c4303a4\",\n      },\n      {\n        \"foreignNotional\": 2292.505136715663,\n        \"grossValue\": 43514040,\n        \"homeNotional\": 14.287972182709025,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2712,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:52.252Z\",\n        \"trdMatchID\": \"41f8941d-cb6c-39be-9fc5-10269159de07\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 4183.4837469048,\n        \"grossValue\": 79406705,\n        \"homeNotional\": 26.073441862915548,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 4949,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:54.271Z\",\n        \"trdMatchID\": \"e2fb9485-f79e-0662-5e7c-d0df09bd9b03\",\n      },\n      {\n        \"foreignNotional\": 4269.706285232601,\n        \"grossValue\": 81043295,\n        \"homeNotional\": 26.610821347663453,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5051,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:00:54.271Z\",\n        \"trdMatchID\": \"f8aad428-6b71-fd00-65e2-cdceb67ca322\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 2205.9021447014807,\n        \"grossValue\": 41861405,\n        \"homeNotional\": 13.748221531327395,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2609,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:03.147Z\",\n        \"trdMatchID\": \"a1acef94-a916-91b4-3a7a-7cf35914b703\",\n      },\n      {\n        \"foreignNotional\": 1268.2457711967118,\n        \"grossValue\": 24067500,\n        \"homeNotional\": 7.904305211571903,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:03.147Z\",\n        \"trdMatchID\": \"62d369ff-36e0-29d4-ee0e-e4a4f5fb3259\",\n      },\n      {\n        \"foreignNotional\": 4980.823892079886,\n        \"grossValue\": 94521095,\n        \"homeNotional\": 31.04284133424672,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5891,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:03.147Z\",\n        \"trdMatchID\": \"a9be8612-0310-472b-4e07-92bac6a04bbe\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 169.09943615956158,\n        \"grossValue\": 3209000,\n        \"homeNotional\": 1.0539073615429204,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:05.696Z\",\n        \"trdMatchID\": \"b17873a8-af32-a8fb-d6d1-ed16cb242b45\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 701.7626600621805,\n        \"grossValue\": 13317350,\n        \"homeNotional\": 4.373715550403119,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 830,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:06.641Z\",\n        \"trdMatchID\": \"e7464688-aa8d-ca6b-99d4-b922b86caf8a\",\n      },\n      {\n        \"foreignNotional\": 5332.550719291774,\n        \"grossValue\": 101195815,\n        \"homeNotional\": 33.23496864625599,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 6307,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:06.641Z\",\n        \"trdMatchID\": \"e4835d65-1cad-6031-f9e4-8e795bd318d7\",\n      },\n      {\n        \"foreignNotional\": 2113.74295199452,\n        \"grossValue\": 40112500,\n        \"homeNotional\": 13.173842019286505,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:06.641Z\",\n        \"trdMatchID\": \"532d69fd-fd15-6679-8319-c9b9fad0ec87\",\n      },\n      {\n        \"foreignNotional\": 306.91547662960426,\n        \"grossValue\": 5824335,\n        \"homeNotional\": 1.9128418612004006,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 363,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:06.641Z\",\n        \"trdMatchID\": \"21b199e8-b599-6dc3-36b7-eafa172f37f8\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 84.54971807978079,\n        \"grossValue\": 1604500,\n        \"homeNotional\": 0.5269536807714602,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 100,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:07.413Z\",\n        \"trdMatchID\": \"de8f0bf6-00ed-3c6a-8337-67dd086c2cfb\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 169.09943615956158,\n        \"grossValue\": 3209000,\n        \"homeNotional\": 1.0539073615429204,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:10.210Z\",\n        \"trdMatchID\": \"80fa2791-085b-6500-4de7-4f4b106fa053\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1553.1783211255731,\n        \"grossValue\": 29474665,\n        \"homeNotional\": 9.680139115771723,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1837,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"724ed575-dfe1-bc34-3ba5-94a379027375\",\n      },\n      {\n        \"foreignNotional\": 252.80365705854456,\n        \"grossValue\": 4797455,\n        \"homeNotional\": 1.575591505506666,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 299,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"32097138-4e8c-9af8-e62e-00b769b23c9b\",\n      },\n      {\n        \"foreignNotional\": 10.145966169573695,\n        \"grossValue\": 192540,\n        \"homeNotional\": 0.06323444169257522,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 12,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"b183d7d2-50be-c0c1-2b7d-afeeb51312c3\",\n      },\n      {\n        \"foreignNotional\": 17.755440796753966,\n        \"grossValue\": 336945,\n        \"homeNotional\": 0.11066027296200664,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 21,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"f1c806a9-b9b6-8021-00e7-d91c2f62e7f7\",\n      },\n      {\n        \"foreignNotional\": 43.96585340148601,\n        \"grossValue\": 834340,\n        \"homeNotional\": 0.2740159140011593,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 52,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"22c804ae-97f1-7b2b-2700-9d678bf8ece7\",\n      },\n      {\n        \"foreignNotional\": 51.57532802866628,\n        \"grossValue\": 978745,\n        \"homeNotional\": 0.3214417452705907,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 61,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"7aad3e1a-63d6-4226-9540-e0df722774e8\",\n      },\n      {\n        \"foreignNotional\": 212.21979238024977,\n        \"grossValue\": 4027295,\n        \"homeNotional\": 1.322653738736365,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 251,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"5d91dd15-e5e5-c6ca-7c9d-8b97e45d65ca\",\n      },\n      {\n        \"foreignNotional\": 4941.931021763187,\n        \"grossValue\": 93783025,\n        \"homeNotional\": 30.80044264109185,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5845,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"81dae928-19a8-bd49-d399-99a51bf25925\",\n      },\n      {\n        \"foreignNotional\": 295.9240132792328,\n        \"grossValue\": 5615750,\n        \"homeNotional\": 1.8443378827001107,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 350,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"af34ebbe-2f93-7493-28e7-4626ec54e465\",\n      },\n      {\n        \"foreignNotional\": 1075.4724139748116,\n        \"grossValue\": 20409240,\n        \"homeNotional\": 6.702850819412974,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1272,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:12.563Z\",\n        \"trdMatchID\": \"3d511b20-6328-8d94-40c7-f14f17cfa5ad\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 253.64915423934235,\n        \"grossValue\": 4813500,\n        \"homeNotional\": 1.5808610423143805,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 300,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:13.728Z\",\n        \"trdMatchID\": \"5254a43a-abf3-1a61-98fe-be946c62b418\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 126.82457711967118,\n        \"grossValue\": 2406750,\n        \"homeNotional\": 0.7904305211571903,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 150,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:15.389Z\",\n        \"trdMatchID\": \"83af9915-a2ae-c65d-d40e-65e237ca52e0\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 3781.0633925277966,\n        \"grossValue\": 71753240,\n        \"homeNotional\": 23.5653686040997,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 4472,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:17.508Z\",\n        \"trdMatchID\": \"83cc3d30-79d5-4e84-fb03-343f121bf676\",\n      },\n      {\n        \"foreignNotional\": 4185.211044949149,\n        \"grossValue\": 79422750,\n        \"homeNotional\": 26.08420719818728,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 4950,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:17.508Z\",\n        \"trdMatchID\": \"b8628d4e-ef30-f0ca-cdbf-bf68800bd1d8\",\n      },\n      {\n        \"foreignNotional\": 93.00468988775887,\n        \"grossValue\": 1764950,\n        \"homeNotional\": 0.5796490488486062,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 110,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:17.508Z\",\n        \"trdMatchID\": \"aecccfb8-888d-35b7-b7a2-fd5c0f0a1edb\",\n      },\n      {\n        \"foreignNotional\": 395.6926806133741,\n        \"grossValue\": 7509060,\n        \"homeNotional\": 2.4661432260104337,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 468,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:17.508Z\",\n        \"trdMatchID\": \"616bc2f3-1317-2c96-6e85-8de1b6cc8b27\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 422.74859039890396,\n        \"grossValue\": 8022500,\n        \"homeNotional\": 2.634768403857301,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:19.282Z\",\n        \"trdMatchID\": \"8996df52-12b8-57b2-f89a-6e440e70b855\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 8452.337039574222,\n        \"grossValue\": 160400000,\n        \"homeNotional\": 52.69536807714602,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 10000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:01:20.401Z\",\n        \"trdMatchID\": \"f6ec059e-9053-1ea5-15be-71f2833b7d5d\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1745.9516783474733,\n        \"grossValue\": 33132925,\n        \"homeNotional\": 10.881593507930653,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2065,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:23.294Z\",\n        \"trdMatchID\": \"ee0e14eb-b7ee-39d8-49a7-fc43607e551c\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 1267.850555936133,\n        \"grossValue\": 24060000,\n        \"homeNotional\": 7.904305211571903,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 1500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:01:23.866Z\",\n        \"trdMatchID\": \"29a19030-84c2-5f54-830d-5c265d4054ab\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 270.55909785529855,\n        \"grossValue\": 5134400,\n        \"homeNotional\": 1.6862517784686726,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 320,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:27.831Z\",\n        \"trdMatchID\": \"d69ae39d-090f-1c80-5753-8ca451d9b085\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 422.57045035554387,\n        \"grossValue\": 8022500,\n        \"homeNotional\": 2.6336581511719777,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:31.321Z\",\n        \"trdMatchID\": \"865b1e3c-8344-ec89-1354-b573c18a0a93\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 169.02818014221754,\n        \"grossValue\": 3209000,\n        \"homeNotional\": 1.0534632604687912,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 200,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:32.073Z\",\n        \"trdMatchID\": \"22faa61a-f889-915e-3332-8168d5c741a2\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 6670.697129312615,\n        \"grossValue\": 126643185,\n        \"homeNotional\": 41.574927574400846,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 7893,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:34.887Z\",\n        \"trdMatchID\": \"8787aad5-7f4d-fe9e-e916-b58e19f4edb1\",\n      },\n      {\n        \"foreignNotional\": 1780.7118777982619,\n        \"grossValue\": 33806815,\n        \"homeNotional\": 11.098235449038715,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2107,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:34.887Z\",\n        \"trdMatchID\": \"1a24b59a-2ba7-9ba8-5a09-d8ae0ab6b495\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 422.43876744798524,\n        \"grossValue\": 8020000,\n        \"homeNotional\": 2.6336581511719777,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 500,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:01:35.972Z\",\n        \"trdMatchID\": \"5caa8592-fe9c-c166-2ab2-d0073e54476e\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 8451.409007110877,\n        \"grossValue\": 160450000,\n        \"homeNotional\": 52.67316302343956,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 10000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"PlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:39.926Z\",\n        \"trdMatchID\": \"0fbaf56f-4f47-dfd2-ca15-9e2cb61ec2a3\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 466.5177771925204,\n        \"grossValue\": 8856840,\n        \"homeNotional\": 2.9075585988938637,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 552,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:45.851Z\",\n        \"trdMatchID\": \"6484ea35-ffc2-6dc2-0cce-1e2d4ee1fbce\",\n      },\n      {\n        \"foreignNotional\": 1690.2818014221755,\n        \"grossValue\": 32090000,\n        \"homeNotional\": 10.53463260468791,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 2000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:45.851Z\",\n        \"trdMatchID\": \"f7f4662e-1155-98dc-987e-8414dd369426\",\n      },\n      {\n        \"foreignNotional\": 5020.136950223861,\n        \"grossValue\": 95307300,\n        \"homeNotional\": 31.287858835923096,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5940,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:45.851Z\",\n        \"trdMatchID\": \"d5b5471e-a11f-e270-411a-c67d0003e335\",\n      },\n      {\n        \"foreignNotional\": 52.39873584408744,\n        \"grossValue\": 994790,\n        \"homeNotional\": 0.32657361074532526,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 62,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:45.851Z\",\n        \"trdMatchID\": \"36f70e11-b205-24fd-86b7-621d70fffebb\",\n      },\n      {\n        \"foreignNotional\": 1222.073742428233,\n        \"grossValue\": 23201070,\n        \"homeNotional\": 7.61653937318936,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1446,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:45.851Z\",\n        \"trdMatchID\": \"67a5c10b-5820-35cc-ee58-5e9842e7bfd1\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 414.119041348433,\n        \"grossValue\": 7862050,\n        \"homeNotional\": 2.5809849881485385,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 490,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:48.869Z\",\n        \"trdMatchID\": \"62f74f1f-c25a-598f-92ac-2aed8df21637\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 8451.409007110877,\n        \"grossValue\": 160450000,\n        \"homeNotional\": 52.67316302343956,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 10000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:50.080Z\",\n        \"trdMatchID\": \"26537978-f496-a7fe-16fb-74a655a43a15\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 953.318936002107,\n        \"grossValue\": 18098760,\n        \"homeNotional\": 5.941532789043982,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 1128,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:56.836Z\",\n        \"trdMatchID\": \"4925149b-f7b6-753e-6dc1-78c5507273a1\",\n      },\n      {\n        \"foreignNotional\": 4225.704503555438,\n        \"grossValue\": 80225000,\n        \"homeNotional\": 26.33658151171978,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 5000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:56.836Z\",\n        \"trdMatchID\": \"20ce8f57-6549-bab4-2dc6-aef138505066\",\n      },\n      {\n        \"foreignNotional\": 3272.3855675533314,\n        \"grossValue\": 62126240,\n        \"homeNotional\": 20.395048722675796,\n        \"price\": 160.45,\n        \"side\": \"Buy\",\n        \"size\": 3872,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"ZeroPlusTick\",\n        \"timestamp\": \"2019-05-01T00:01:56.836Z\",\n        \"trdMatchID\": \"ee97257f-68a4-e42f-3afa-3d2c473b0990\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n  {\n    \"action\": \"insert\",\n    \"data\": [\n      {\n        \"foreignNotional\": 844.8775348959705,\n        \"grossValue\": 16040000,\n        \"homeNotional\": 5.267316302343955,\n        \"price\": 160.4,\n        \"side\": \"Sell\",\n        \"size\": 1000,\n        \"symbol\": \"ETHUSD\",\n        \"tickDirection\": \"MinusTick\",\n        \"timestamp\": \"2019-05-01T00:01:58.724Z\",\n        \"trdMatchID\": \"3b5e7feb-6eb6-9e47-4130-a6c46b0c7c30\",\n      },\n    ],\n    \"table\": \"trade\",\n  },\n]\n`;\n\nexports[`replay replays raw Bitmex data feed (ETHUSD trades) for 1st of April 2019 and compares with not decoded sample: bitmex-received-timestamps 1`] = `\n[\n  2019-05-01T00:00:00.216Z,\n  2019-05-01T00:00:10.611Z,\n  2019-05-01T00:00:12.845Z,\n  2019-05-01T00:00:12.849Z,\n  2019-05-01T00:00:12.861Z,\n  2019-05-01T00:00:12.863Z,\n  2019-05-01T00:00:12.865Z,\n  2019-05-01T00:00:12.866Z,\n  2019-05-01T00:00:12.866Z,\n  2019-05-01T00:00:12.927Z,\n  2019-05-01T00:00:23.601Z,\n  2019-05-01T00:00:23.977Z,\n  2019-05-01T00:00:24.134Z,\n  2019-05-01T00:00:24.136Z,\n  2019-05-01T00:00:24.665Z,\n  2019-05-01T00:00:24.714Z,\n  2019-05-01T00:00:24.753Z,\n  2019-05-01T00:00:24.779Z,\n  2019-05-01T00:00:25.062Z,\n  2019-05-01T00:00:25.702Z,\n  2019-05-01T00:00:26.842Z,\n  2019-05-01T00:00:27.069Z,\n  2019-05-01T00:00:27.122Z,\n  2019-05-01T00:00:27.545Z,\n  2019-05-01T00:00:27.787Z,\n  2019-05-01T00:00:29.911Z,\n  2019-05-01T00:00:30.692Z,\n  2019-05-01T00:00:32.267Z,\n  2019-05-01T00:00:32.272Z,\n  2019-05-01T00:00:32.298Z,\n  2019-05-01T00:00:32.388Z,\n  2019-05-01T00:00:33.158Z,\n  2019-05-01T00:00:33.924Z,\n  2019-05-01T00:00:42.297Z,\n  2019-05-01T00:00:43.819Z,\n  2019-05-01T00:00:43.823Z,\n  2019-05-01T00:00:50.701Z,\n  2019-05-01T00:00:52.630Z,\n  2019-05-01T00:00:52.699Z,\n  2019-05-01T00:00:54.815Z,\n  2019-05-01T00:01:03.451Z,\n  2019-05-01T00:01:05.711Z,\n  2019-05-01T00:01:06.799Z,\n  2019-05-01T00:01:07.427Z,\n  2019-05-01T00:01:10.249Z,\n  2019-05-01T00:01:12.580Z,\n  2019-05-01T00:01:13.781Z,\n  2019-05-01T00:01:15.408Z,\n  2019-05-01T00:01:18.030Z,\n  2019-05-01T00:01:19.296Z,\n  2019-05-01T00:01:20.415Z,\n  2019-05-01T00:01:23.560Z,\n  2019-05-01T00:01:24.201Z,\n  2019-05-01T00:01:27.940Z,\n  2019-05-01T00:01:31.522Z,\n  2019-05-01T00:01:32.088Z,\n  2019-05-01T00:01:34.901Z,\n  2019-05-01T00:01:35.986Z,\n  2019-05-01T00:01:39.962Z,\n  2019-05-01T00:01:45.869Z,\n  2019-05-01T00:01:48.883Z,\n  2019-05-01T00:01:50.094Z,\n  2019-05-01T00:01:56.939Z,\n  2019-05-01T00:01:58.763Z,\n]\n`;\n\nexports[`replay replays raw Bitmex data feed (ETHUSD trades) for 1st of April 2019 and compares with not decoded sample: bitmex-received-timestamps 2`] = `\n[\n  2019-05-01T00:00:00.216Z,\n  2019-05-01T00:00:10.611Z,\n  2019-05-01T00:00:12.845Z,\n  2019-05-01T00:00:12.849Z,\n  2019-05-01T00:00:12.861Z,\n  2019-05-01T00:00:12.863Z,\n  2019-05-01T00:00:12.865Z,\n  2019-05-01T00:00:12.866Z,\n  2019-05-01T00:00:12.866Z,\n  2019-05-01T00:00:12.927Z,\n  2019-05-01T00:00:23.601Z,\n  2019-05-01T00:00:23.977Z,\n  2019-05-01T00:00:24.134Z,\n  2019-05-01T00:00:24.136Z,\n  2019-05-01T00:00:24.665Z,\n  2019-05-01T00:00:24.714Z,\n  2019-05-01T00:00:24.753Z,\n  2019-05-01T00:00:24.779Z,\n  2019-05-01T00:00:25.062Z,\n  2019-05-01T00:00:25.702Z,\n  2019-05-01T00:00:26.842Z,\n  2019-05-01T00:00:27.069Z,\n  2019-05-01T00:00:27.122Z,\n  2019-05-01T00:00:27.545Z,\n  2019-05-01T00:00:27.787Z,\n  2019-05-01T00:00:29.911Z,\n  2019-05-01T00:00:30.692Z,\n  2019-05-01T00:00:32.267Z,\n  2019-05-01T00:00:32.272Z,\n  2019-05-01T00:00:32.298Z,\n  2019-05-01T00:00:32.388Z,\n  2019-05-01T00:00:33.158Z,\n  2019-05-01T00:00:33.924Z,\n  2019-05-01T00:00:42.297Z,\n  2019-05-01T00:00:43.819Z,\n  2019-05-01T00:00:43.823Z,\n  2019-05-01T00:00:50.701Z,\n  2019-05-01T00:00:52.630Z,\n  2019-05-01T00:00:52.699Z,\n  2019-05-01T00:00:54.815Z,\n  2019-05-01T00:01:03.451Z,\n  2019-05-01T00:01:05.711Z,\n  2019-05-01T00:01:06.799Z,\n  2019-05-01T00:01:07.427Z,\n  2019-05-01T00:01:10.249Z,\n  2019-05-01T00:01:12.580Z,\n  2019-05-01T00:01:13.781Z,\n  2019-05-01T00:01:15.408Z,\n  2019-05-01T00:01:18.030Z,\n  2019-05-01T00:01:19.296Z,\n  2019-05-01T00:01:20.415Z,\n  2019-05-01T00:01:23.560Z,\n  2019-05-01T00:01:24.201Z,\n  2019-05-01T00:01:27.940Z,\n  2019-05-01T00:01:31.522Z,\n  2019-05-01T00:01:32.088Z,\n  2019-05-01T00:01:34.901Z,\n  2019-05-01T00:01:35.986Z,\n  2019-05-01T00:01:39.962Z,\n  2019-05-01T00:01:45.869Z,\n  2019-05-01T00:01:48.883Z,\n  2019-05-01T00:01:50.094Z,\n  2019-05-01T00:01:56.939Z,\n  2019-05-01T00:01:58.763Z,\n]\n`;\n\nexports[`replay replays raw Coinbase data feed for 1st of Jun 2019 (ZEC-USDC trades) 1`] = `\n[\n  \"{\"type\":\"match\",\"trade_id\":298130,\"maker_order_id\":\"48e3e5b7-cace-415e-9ab1-cfcefa597b73\",\"taker_order_id\":\"3e5b4921-28de-483a-aff2-d805f3e7283f\",\"side\":\"sell\",\"size\":\"0.22815391\",\"price\":\"90.34000000\",\"product_id\":\"ZEC-USDC\",\"sequence\":127066231,\"time\":\"2019-06-01T00:00:10.382000Z\"}\",\n  \"{\"type\":\"match\",\"trade_id\":298131,\"maker_order_id\":\"48e3e5b7-cace-415e-9ab1-cfcefa597b73\",\"taker_order_id\":\"3d9fe026-dd36-43ca-b9ee-b412f133984e\",\"side\":\"sell\",\"size\":\"10.59160694\",\"price\":\"90.34000000\",\"product_id\":\"ZEC-USDC\",\"sequence\":127066374,\"time\":\"2019-06-01T00:00:25.354000Z\"}\",\n  \"{\"type\":\"match\",\"trade_id\":298132,\"maker_order_id\":\"48e3e5b7-cace-415e-9ab1-cfcefa597b73\",\"taker_order_id\":\"9f5118c3-6abd-4ab0-ad18-695a4459d621\",\"side\":\"sell\",\"size\":\"1.00000000\",\"price\":\"90.34000000\",\"product_id\":\"ZEC-USDC\",\"sequence\":127066597,\"time\":\"2019-06-01T00:00:40.660000Z\"}\",\n  \"{\"type\":\"match\",\"trade_id\":298133,\"maker_order_id\":\"48e3e5b7-cace-415e-9ab1-cfcefa597b73\",\"taker_order_id\":\"bc625a17-3505-4160-9a3e-4d56ad2f1e38\",\"side\":\"sell\",\"size\":\"0.28984796\",\"price\":\"90.34000000\",\"product_id\":\"ZEC-USDC\",\"sequence\":127066913,\"time\":\"2019-06-01T00:01:06.498000Z\"}\",\n]\n`;\n\nexports[`replay replays raw Coinbase data feed for 1st of Jun 2019 (ZEC-USDC trades) 2`] = `\n[\n  2019-06-01T00:00:10.426Z,\n  2019-06-01T00:00:25.399Z,\n  2019-06-01T00:00:40.725Z,\n  2019-06-01T00:01:06.557Z,\n]\n`;\n"
  },
  {
    "path": "test/binance-futures-split.live.test.ts",
    "content": "import { normalizeBookChanges, normalizeBookTickers, normalizeDerivativeTickers, normalizeTrades, streamNormalized } from '../dist/index.js'\nimport { describeLive } from './live.js'\n\nconst testTimeoutMS = 40_000\n\ndescribeLive('binance futures supported channels live', () => {\n  test(\n    'streams normalized BTCUSDT data for supported channels without disconnects',\n    async () => {\n      const messages = streamNormalized(\n        {\n          exchange: 'binance-futures',\n          symbols: ['btcusdt'],\n          timeoutIntervalMS: 60_000,\n          withDisconnectMessages: true\n        },\n        normalizeTrades,\n        normalizeBookChanges,\n        normalizeDerivativeTickers,\n        normalizeBookTickers\n      )\n\n      const seen = {\n        trade: false,\n        bookSnapshot: false,\n        bookUpdate: false,\n        bookTicker: false,\n        lastPrice: false,\n        markPrice: false,\n        openInterest: false\n      }\n      let sawDisconnect = false\n\n      for await (const message of messages) {\n        if (message.type === 'disconnect') {\n          sawDisconnect = true\n          continue\n        }\n\n        if (message.symbol !== 'BTCUSDT') {\n          continue\n        }\n\n        if (message.type === 'trade') {\n          seen.trade = true\n        }\n\n        if (message.type === 'book_change') {\n          if (message.isSnapshot) {\n            seen.bookSnapshot = true\n          } else {\n            seen.bookUpdate = true\n          }\n        }\n\n        if (message.type === 'book_ticker') {\n          seen.bookTicker = true\n        }\n\n        if (message.type === 'derivative_ticker') {\n          if (message.lastPrice !== undefined) {\n            seen.lastPrice = true\n          }\n\n          if (message.markPrice !== undefined) {\n            seen.markPrice = true\n          }\n\n          if (message.openInterest !== undefined) {\n            seen.openInterest = true\n          }\n        }\n\n        if (Object.values(seen).every(Boolean)) {\n          break\n        }\n      }\n\n      expect(sawDisconnect).toBe(false)\n      expect(seen).toEqual({\n        trade: true,\n        bookSnapshot: true,\n        bookUpdate: true,\n        bookTicker: true,\n        lastPrice: true,\n        markPrice: true,\n        openInterest: true\n      })\n    },\n    testTimeoutMS\n  )\n})\n"
  },
  {
    "path": "test/binance-openinterest.live.test.ts",
    "content": "import { normalizeDerivativeTickers, streamNormalized } from '../dist/index.js'\nimport { describeLive } from './live.js'\n\ndescribeLive('binance open interest live', () => {\n  const originalPollingInterval = process.env.BINANCE_FUTURES_OPEN_INTEREST_POLLING_INTERVAL_MS\n\n  beforeAll(() => {\n    process.env.BINANCE_FUTURES_OPEN_INTEREST_POLLING_INTERVAL_MS = '5000'\n  })\n\n  afterAll(() => {\n    if (originalPollingInterval === undefined) {\n      delete process.env.BINANCE_FUTURES_OPEN_INTEREST_POLLING_INTERVAL_MS\n    } else {\n      process.env.BINANCE_FUTURES_OPEN_INTEREST_POLLING_INTERVAL_MS = originalPollingInterval\n    }\n  })\n\n  test('streams normalized derivative tickers with open interest from binance futures', async () => {\n    const symbols = ['btcusdt', 'ethusdt', 'bnbusdt']\n    const messages = streamNormalized(\n      {\n        exchange: 'binance-futures',\n        symbols,\n        timeoutIntervalMS: 10_000\n      },\n      normalizeDerivativeTickers\n    )\n    const openInterestBySymbol = new Map<string, number>()\n    let didTimeout = false\n    const timeoutId = setTimeout(() => {\n      didTimeout = true\n      void messages.return?.()\n    }, 20_000)\n\n    try {\n      for await (const message of messages) {\n        if (message.type !== 'derivative_ticker' || message.openInterest === undefined) {\n          continue\n        }\n\n        openInterestBySymbol.set(message.symbol, message.openInterest)\n\n        if (openInterestBySymbol.size === symbols.length) {\n          break\n        }\n      }\n    } finally {\n      clearTimeout(timeoutId)\n      await messages.return?.()\n    }\n\n    expect(didTimeout).toBe(false)\n    expect(Array.from(openInterestBySymbol.keys()).sort()).toEqual(['BNBUSDT', 'BTCUSDT', 'ETHUSDT'])\n\n    for (const openInterest of openInterestBySymbol.values()) {\n      expect(openInterest).toBeGreaterThanOrEqual(0)\n    }\n  }, 20_000)\n})\n"
  },
  {
    "path": "test/binarysplit.test.ts",
    "content": "import { Readable } from 'stream'\nimport { BinarySplitStream } from '../dist/binarysplit.js'\n\nasync function collectLines(chunks: Buffer[]) {\n  const lines: string[] = []\n\n  for await (const line of Readable.from(chunks).pipe(new BinarySplitStream()) as AsyncIterable<Buffer>) {\n    lines.push(line.toString('utf8'))\n  }\n\n  return lines\n}\n\ndescribe('BinarySplitStream', () => {\n  test('splits multiple lines from a single chunk', async () => {\n    await expect(collectLines([Buffer.from('alpha\\nbeta\\ngamma\\n')])).resolves.toEqual(['alpha', 'beta', 'gamma'])\n  })\n\n  test('preserves empty lines', async () => {\n    await expect(collectLines([Buffer.from('alpha\\n\\nbeta\\n')])).resolves.toEqual(['alpha', '', 'beta'])\n  })\n\n  test('splits lines that cross chunk boundaries', async () => {\n    await expect(collectLines([Buffer.from('alp'), Buffer.from('ha\\nbe'), Buffer.from('ta\\ngam'), Buffer.from('ma\\n')])).resolves.toEqual([\n      'alpha',\n      'beta',\n      'gamma'\n    ])\n  })\n\n  test('handles newline at chunk boundary without losing empty line', async () => {\n    await expect(collectLines([Buffer.from('alpha\\n'), Buffer.from('\\n'), Buffer.from('beta\\n')])).resolves.toEqual(['alpha', '', 'beta'])\n  })\n\n  test('drops final partial line when stream ends without trailing newline', async () => {\n    await expect(collectLines([Buffer.from('alpha\\nbeta'), Buffer.from('\\ngamma')])).resolves.toEqual(['alpha', 'beta'])\n  })\n})\n"
  },
  {
    "path": "test/combine.test.ts",
    "content": "import { combine, normalizeBookChanges, normalizeTrades, replayNormalized } from '../dist/index.js'\n\ndescribe('combine(...asyncIterators)', () => {\n  test(\n    'should produce combined iterable from two replayNormalized iterables',\n    async () => {\n      const normalizers = [normalizeTrades, normalizeBookChanges]\n      const bitmexMessages = replayNormalized(\n        {\n          exchange: 'bitmex',\n          from: '2019-04-01',\n          to: '2019-04-01 00:01',\n          symbols: ['XBTUSD']\n        },\n        ...normalizers\n      )\n\n      const deribitMessages = replayNormalized(\n        {\n          exchange: 'deribit',\n          from: '2019-04-01',\n          to: '2019-04-01 00:01',\n          symbols: ['BTC-PERPETUAL']\n        },\n        ...normalizers\n      )\n\n      const bufferedMessages: any[] = []\n      for await (const message of combine(bitmexMessages, deribitMessages)) {\n        bufferedMessages.push(message)\n      }\n\n      expect(bufferedMessages).toMatchSnapshot()\n    },\n    2 * 60 * 1000\n  )\n\n  test('should correctly combine iterables based on localTimestamp value', async () => {\n    let iter1 = async function* () {\n      yield { localTimestamp: new Date('2019-08-01T08:52:00.132Z') }\n      yield { localTimestamp: new Date('2019-08-01T08:53:00.130Z') }\n    }\n\n    let iter2 = async function* () {\n      yield { localTimestamp: new Date('2019-08-01T00:52:00.132Z') }\n      yield { localTimestamp: new Date('2019-08-01T00:52:00.133Z') }\n      yield { localTimestamp: new Date('2019-08-01T08:53:00.130Z') }\n      yield { localTimestamp: new Date('2019-08-01T08:53:00.131Z') }\n    }\n\n    let combined = combine(iter1(), iter2())\n\n    let bufferedMessages = []\n    for await (const message of combined) {\n      bufferedMessages.push(message)\n    }\n\n    expect(bufferedMessages).toMatchSnapshot()\n\n    iter1 = async function* () {\n      yield { localTimestamp: new Date('2019-08-01T00:52:00.102Z') }\n      yield { localTimestamp: new Date('2019-08-01T00:53:00.130Z') }\n    }\n\n    iter2 = async function* () {\n      yield { localTimestamp: new Date('2019-08-01T00:52:00.132Z') }\n      yield { localTimestamp: new Date('2019-08-01T00:52:00.133Z') }\n      yield { localTimestamp: new Date('2019-08-01T08:53:00.130Z') }\n      yield { localTimestamp: new Date('2019-08-01T08:53:00.131Z') }\n      yield { localTimestamp: new Date('2019-08-02T08:53:00.131Z') }\n    }\n\n    combined = combine(iter1(), iter2())\n\n    bufferedMessages = []\n    for await (const message of combined) {\n      bufferedMessages.push(message)\n    }\n\n    expect(bufferedMessages).toMatchSnapshot()\n\n    iter1 = async function* () {\n      var localTimestamp = new Date('2019-08-01T00:52:00.102Z')\n      localTimestamp.μs = 202\n      yield { localTimestamp, name: 'iter1' }\n    }\n\n    iter2 = async function* () {\n      var localTimestamp = new Date('2019-08-01T00:52:00.102Z')\n      localTimestamp.μs = 102\n      yield { localTimestamp, name: 'iter2' }\n    }\n\n    combined = combine(iter1(), iter2())\n\n    bufferedMessages = []\n    for await (const message of combined) {\n      bufferedMessages.push(message)\n    }\n\n    expect(bufferedMessages).toMatchSnapshot()\n  })\n})\n"
  },
  {
    "path": "test/compute.test.ts",
    "content": "import {\n  BookChange,\n  compute,\n  computeBookSnapshots,\n  computeTradeBars,\n  normalizeBookChanges,\n  normalizeTrades,\n  replayNormalized,\n  Trade\n} from '../dist/index.js'\n\ndescribe('compute(messages, types)', () => {\n  test(\n    'should compute requested types based on replayNormalized iterables',\n    async () => {\n      const normalizers = [normalizeTrades, normalizeBookChanges]\n      const bitmexMessages = replayNormalized(\n        {\n          exchange: 'bitmex',\n          from: '2019-04-01',\n          to: '2019-04-01 00:01',\n          symbols: ['XBTUSD'],\n          withDisconnectMessages: true\n        },\n        ...normalizers\n      )\n\n      const bufferedMessages = []\n      const withComputedTypes = compute(\n        bitmexMessages,\n        computeBookSnapshots({ depth: 10, interval: 1000 }),\n        computeBookSnapshots({ depth: 5, interval: 0 }),\n        computeBookSnapshots({ depth: 3, interval: 100 }),\n        computeTradeBars({ kind: 'time', interval: 1000 }),\n        computeTradeBars({ kind: 'tick', interval: 100 })\n      )\n\n      for await (const message of withComputedTypes) {\n        bufferedMessages.push(message)\n      }\n\n      expect(bufferedMessages).toMatchSnapshot()\n    },\n    1000 * 60\n  )\n\n  test('should compute correct trade bars based on provided messages', async () => {\n    let tradesMessages = async function* (): AsyncIterableIterator<Trade> {\n      yield {\n        type: 'trade',\n        exchange: 'bitmex',\n        amount: 200,\n        symbol: 'XBTUSD',\n        id: 'asd',\n        price: 1000,\n        side: 'buy',\n        timestamp: new Date('2019-08-01T00:00:00.132Z'),\n        localTimestamp: new Date('2019-08-01T00:00:00.132Z')\n      }\n\n      yield {\n        type: 'trade',\n        exchange: 'bitmex',\n        amount: 2000,\n        symbol: 'XBTUSD',\n        id: 'sadasd',\n        price: 1000,\n        side: 'buy',\n        timestamp: new Date('2019-08-01T00:01:00.000Z'),\n        localTimestamp: new Date('2019-08-01T00:01:00.132Z')\n      }\n\n      yield {\n        type: 'trade',\n        exchange: 'bitmex',\n        amount: 200,\n        symbol: 'XBTUSD',\n        id: 'asdssd',\n        price: 1005,\n        side: 'sell',\n        timestamp: new Date('2019-08-01T00:01:01.000Z'),\n        localTimestamp: new Date('2019-08-01T00:01:01.132Z')\n      }\n\n      yield {\n        type: 'trade',\n        exchange: 'bitmex',\n        amount: 2000,\n        symbol: 'XBTUSD',\n        id: 'asddfssd',\n        price: 1015,\n        side: 'buy',\n        timestamp: new Date('2019-08-01T00:01:02.000Z'),\n        localTimestamp: new Date('2019-08-01T00:01:02.132Z')\n      }\n\n      yield {\n        type: 'trade',\n        exchange: 'bitmex',\n        amount: 200,\n        symbol: 'XBTUSD',\n        id: 'sdfc',\n        price: 1013,\n        side: 'buy',\n        timestamp: new Date('2019-08-01T00:04:00.120Z'),\n        localTimestamp: new Date('2019-08-01T00:04:01.132Z')\n      }\n\n      yield {\n        type: 'trade',\n        exchange: 'bitmex',\n        amount: 2000,\n        symbol: 'XBTUSD',\n        id: 'sdfsdfc',\n        price: 1010,\n        side: 'sell',\n        timestamp: new Date('2019-08-01T00:06:00.100Z'),\n        localTimestamp: new Date('2019-08-01T00:06:01.132Z')\n      }\n    }\n\n    const withComputedTypes = compute(\n      tradesMessages(),\n      computeTradeBars({ kind: 'time', interval: 60 * 1000, name: 'trade_bar_1_minute' }),\n      computeTradeBars({ kind: 'tick', interval: 2, name: 'trade_bar_2ticks' }),\n      computeTradeBars({ kind: 'volume', interval: 2000, name: 'trade_bar_2kvol' })\n    )\n    const bufferedMessages = []\n\n    for await (const message of withComputedTypes) {\n      bufferedMessages.push(message)\n    }\n\n    expect(bufferedMessages).toMatchSnapshot()\n  })\n\n  test('should produce correct book snapshots based on provided messages', async () => {\n    let messages = async function* (): AsyncIterableIterator<Trade | BookChange> {\n      yield {\n        type: 'trade',\n        exchange: 'bitmex',\n        amount: 200,\n        symbol: 'XBTUSD',\n        id: 'asd',\n        price: 1000,\n        side: 'buy',\n        timestamp: new Date('2019-08-01T00:00:00.132Z'),\n        localTimestamp: new Date('2019-08-01T00:00:00.132Z')\n      }\n\n      yield {\n        type: 'book_change',\n        exchange: 'bitmex',\n        isSnapshot: true,\n        asks: [\n          { price: 200, amount: 20 },\n          { price: 120, amount: 1 }\n        ],\n        bids: [{ price: 119, amount: 20 }],\n        localTimestamp: new Date('2019-08-01T00:00:00.132Z'),\n        timestamp: new Date('2019-08-01T00:00:00.132Z'),\n        symbol: 'XBTUSD'\n      }\n\n      yield {\n        type: 'book_change',\n        exchange: 'bitmex',\n        isSnapshot: false,\n        asks: [{ price: 120, amount: 10 }],\n        bids: [],\n        localTimestamp: new Date('2019-08-01T00:00:10.132Z'),\n        timestamp: new Date('2019-08-01T00:00:10.132Z'),\n        symbol: 'XBTUSD'\n      }\n\n      yield {\n        type: 'book_change',\n        exchange: 'bitmex',\n        isSnapshot: false,\n        asks: [{ price: 201, amount: 10 }],\n        bids: [],\n        localTimestamp: new Date('2019-08-01T00:00:12.132Z'),\n        timestamp: new Date('2019-08-01T00:00:12.132Z'),\n        symbol: 'XBTUSD'\n      }\n\n      yield {\n        type: 'book_change',\n        exchange: 'bitmex',\n        isSnapshot: false,\n        asks: [{ price: 200, amount: 220 }],\n        bids: [],\n        localTimestamp: new Date('2019-08-01T00:00:12.132Z'),\n        timestamp: new Date('2019-08-01T00:00:12.132Z'),\n        symbol: 'XBTUSD'\n      }\n\n      yield {\n        type: 'book_change',\n        exchange: 'bitmex',\n        isSnapshot: false,\n        asks: [],\n        bids: [{ price: 120, amount: 20 }],\n        localTimestamp: new Date('2019-08-01T00:00:13.132Z'),\n        timestamp: new Date('2019-08-01T00:00:13.132Z'),\n        symbol: 'XBTUSD'\n      }\n    }\n\n    const withComputedTypes = compute(\n      messages(),\n      computeBookSnapshots({ depth: 2, interval: 1000 }),\n      computeBookSnapshots({ depth: 1, interval: 0, name: 'quotes' })\n    )\n\n    const bufferedMessages = []\n\n    for await (const message of withComputedTypes) {\n      bufferedMessages.push(message)\n    }\n\n    expect(bufferedMessages).toMatchSnapshot()\n  })\n\n  test('should produce correct trade bars based on provided messages', async () => {\n    let messages = async function* (): AsyncIterableIterator<Trade> {\n      yield {\n        id: undefined,\n        type: 'trade',\n\n        symbol: 'CRV-USD',\n\n        exchange: 'dydx',\n\n        price: 0.3394,\n\n        amount: 1273,\n\n        side: 'buy',\n\n        timestamp: new Date('2024-06-23T03:05:59.988Z'),\n\n        localTimestamp: new Date('2024-06-23T03:06:00.158521Z')\n      }\n\n      yield {\n        id: undefined,\n\n        type: 'trade',\n\n        symbol: 'CRV-USD',\n\n        exchange: 'dydx',\n\n        price: 0.3387,\n\n        amount: 65,\n\n        side: 'buy',\n\n        timestamp: new Date('2024-06-23T03:05:59.981Z'),\n\n        localTimestamp: new Date('2024-06-23T03:06:00.173614Z')\n      },\n        yield {\n          id: undefined,\n\n          type: 'trade',\n\n          symbol: 'CRV-USD',\n\n          exchange: 'dydx',\n\n          price: 0.3387,\n\n          amount: 65,\n\n          side: 'buy',\n\n          timestamp: new Date('2024-06-23T03:06:01.981Z'),\n\n          localTimestamp: new Date('2024-06-23T03:06:02.173614Z')\n        }\n    }\n\n    const withComputedTypes = compute(messages(), computeTradeBars({ kind: 'time', interval: 60 * 1000, name: 'trade_bar_1_minute' }))\n\n    const bufferedMessages = []\n\n    for await (const message of withComputedTypes) {\n      bufferedMessages.push(message)\n    }\n\n    expect(bufferedMessages).toMatchSnapshot()\n  })\n})\n"
  },
  {
    "path": "test/downloaddatasets.test.ts",
    "content": "import { existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'\nimport os from 'os'\nimport path from 'path'\nimport { gunzipSync } from 'node:zlib'\nimport { downloadDatasets, sanitizeForFilename } from '../dist/downloaddatasets.js'\nimport { describeLive } from './live.js'\n\nconst LIVE_DATASET: Parameters<typeof downloadDatasets>[0] = {\n  exchange: 'deribit' as const,\n  dataTypes: ['trades'],\n  symbols: ['BTC-PERPETUAL'],\n  from: '2024-01-01',\n  to: '2024-01-02'\n}\n\nfunction createTempDir() {\n  return mkdtempSync(path.join(os.tmpdir(), 'tardis-node-download-datasets-'))\n}\n\ndescribe('sanitizeForFilename', () => {\n  test('replaces filesystem-invalid characters', () => {\n    expect(sanitizeForFilename('a?b/c:d*e<f>g|h\"i\\\\j')).toBe('a-b-c-d-e-f-g-h-i-j')\n  })\n\n  test('leaves normal symbols unchanged', () => {\n    expect(sanitizeForFilename('BTCUSDT')).toBe('BTCUSDT')\n    expect(sanitizeForFilename('BTC-USDT')).toBe('BTC-USDT')\n    expect(sanitizeForFilename('BTC_USDT')).toBe('BTC_USDT')\n  })\n})\n\ndescribe('downloadDatasets', () => {\n  test('skipIfExists leaves existing file untouched', async () => {\n    const tempDir = createTempDir()\n    const existingFile = path.join(tempDir, 'deribit_trades_2024-01-01_BTC-PERPETUAL.csv.gz')\n\n    try {\n      writeFileSync(existingFile, 'existing')\n\n      await downloadDatasets({\n        ...LIVE_DATASET,\n        downloadDir: tempDir,\n        skipIfExists: true\n      })\n\n      expect(readFileSync(existingFile, 'utf8')).toBe('existing')\n    } finally {\n      rmSync(tempDir, { force: true, recursive: true })\n    }\n  })\n})\n\ndescribeLive('downloadDatasets live', () => {\n  test('downloads public first-day-of-month dataset without api key', async () => {\n    const tempDir = createTempDir()\n    const filePath = path.join(tempDir, 'deribit_trades_2024-01-01_BTC-PERPETUAL.csv.gz')\n\n    try {\n      await downloadDatasets({\n        ...LIVE_DATASET,\n        downloadDir: tempDir\n      })\n\n      expect(existsSync(filePath)).toBe(true)\n\n      const decompressed = gunzipSync(readFileSync(filePath)).toString('utf8')\n      const [header, firstRow] = decompressed.trim().split('\\n')\n\n      expect(header).toBe('exchange,symbol,timestamp,local_timestamp,id,side,price,amount')\n      expect(firstRow.startsWith('deribit,BTC-PERPETUAL,')).toBe(true)\n    } finally {\n      rmSync(tempDir, { force: true, recursive: true })\n    }\n  }, 60_000)\n\n  test('uses custom filename for live download', async () => {\n    const tempDir = createTempDir()\n    const seenSymbols: string[] = []\n    const customFilePath = path.join(tempDir, 'custom/live-file.csv.gz')\n\n    try {\n      await downloadDatasets({\n        ...LIVE_DATASET,\n        downloadDir: tempDir,\n        getFilename: ({ symbol }) => {\n          seenSymbols.push(symbol)\n          return 'custom/live-file.csv.gz'\n        }\n      })\n\n      expect(seenSymbols).toEqual(['BTC-PERPETUAL'])\n      expect(existsSync(customFilePath)).toBe(true)\n    } finally {\n      rmSync(tempDir, { force: true, recursive: true })\n    }\n  }, 60_000)\n})\n"
  },
  {
    "path": "test/gate-io-futures-decimal.live.test.ts",
    "content": "import { normalizeBookChanges, normalizeBookTickers, normalizeTrades, streamNormalized } from '../dist/index.js'\nimport { describeLive } from './live.js'\n\ndescribeLive('gate-io-futures decimal size live', () => {\n  test('streams ETH_USDT data with non-zero decimal quantities and without disconnects', async () => {\n    const messages = streamNormalized(\n      {\n        exchange: 'gate-io-futures',\n        symbols: ['ETH_USDT'],\n        timeoutIntervalMS: 20_000,\n        withDisconnectMessages: true\n      },\n      normalizeTrades,\n      normalizeBookChanges,\n      normalizeBookTickers\n    )\n\n    const seen = {\n      trade: false,\n      bookSnapshot: false,\n      bookTicker: false,\n      fractionalQuantity: false\n    }\n    let sawDisconnect = false\n\n    try {\n      for await (const message of messages) {\n        if (message.type === 'disconnect') {\n          sawDisconnect = true\n          continue\n        }\n\n        if (message.symbol !== 'ETH_USDT') {\n          continue\n        }\n\n        if (message.type === 'trade') {\n          seen.trade = message.amount > 0\n          seen.fractionalQuantity ||= !Number.isInteger(message.amount)\n        }\n\n        if (message.type === 'book_ticker') {\n          seen.bookTicker = (message.askAmount ?? 0) > 0 || (message.bidAmount ?? 0) > 0\n          seen.fractionalQuantity ||=\n            (message.askAmount !== undefined && !Number.isInteger(message.askAmount)) ||\n            (message.bidAmount !== undefined && !Number.isInteger(message.bidAmount))\n        }\n\n        if (message.type === 'book_change' && message.isSnapshot) {\n          seen.bookSnapshot = message.asks.length > 0 || message.bids.length > 0\n\n          const firstFractionalLevel = [...message.asks, ...message.bids].some((level) => !Number.isInteger(level.amount))\n          seen.fractionalQuantity ||= firstFractionalLevel\n        }\n\n        if (Object.values(seen).every(Boolean)) {\n          break\n        }\n      }\n    } finally {\n      await messages.return?.()\n    }\n\n    expect(sawDisconnect).toBe(false)\n    expect(seen).toEqual({\n      trade: true,\n      bookSnapshot: true,\n      bookTicker: true,\n      fractionalQuantity: true\n    })\n  }, 40_000)\n})\n"
  },
  {
    "path": "test/httpclient.test.ts",
    "content": "import { jest } from '@jest/globals'\nimport { getJSON, postJSON } from '../dist/handy.js'\n\nfunction createFetchMock(...responses: Response[]) {\n  const fetchMock = jest.fn<typeof fetch>()\n\n  for (const response of responses) {\n    fetchMock.mockResolvedValueOnce(response)\n  }\n\n  return fetchMock\n}\n\ndescribe('getJSON', () => {\n  const originalFetch = global.fetch\n\n  afterEach(() => {\n    global.fetch = originalFetch\n    jest.useRealTimers()\n    jest.restoreAllMocks()\n  })\n\n  test('returns parsed body and normalized headers', async () => {\n    global.fetch = createFetchMock(\n      new Response(JSON.stringify({ ok: true }), {\n        status: 200,\n        headers: {\n          'X-Test-Header': '123'\n        }\n      })\n    )\n\n    const response = await getJSON<{ ok: boolean }>('https://example.com/test')\n\n    expect(response.statusCode).toBe(200)\n    expect(response.headers['x-test-header']).toBe('123')\n    expect(response.data).toEqual({ ok: true })\n  })\n\n  test('returns parsed JSON data and metadata together', async () => {\n    global.fetch = createFetchMock(\n      new Response(JSON.stringify({ ok: true }), {\n        status: 200\n      })\n    )\n\n    await expect(getJSON<{ ok: boolean }>('https://example.com/chained')).resolves.toMatchObject({\n      statusCode: 200,\n      data: { ok: true }\n    })\n  })\n\n  test('retries retryable GET responses', async () => {\n    jest.useFakeTimers()\n\n    global.fetch = createFetchMock(\n      new Response('temporary failure', { status: 503 }),\n      new Response(JSON.stringify({ ok: true }), { status: 200 })\n    )\n\n    const responsePromise = getJSON<{ ok: boolean }>('https://example.com/retry')\n\n    await jest.runAllTimersAsync()\n\n    const response = await responsePromise\n\n    expect(global.fetch).toHaveBeenCalledTimes(2)\n    expect(response.data).toEqual({ ok: true })\n  })\n\n  test('retries POST responses when retry is configured explicitly', async () => {\n    jest.useFakeTimers()\n\n    global.fetch = createFetchMock(\n      new Response('temporary failure', { status: 503 }),\n      new Response(JSON.stringify({ ok: true }), { status: 200 })\n    )\n\n    const responsePromise = postJSON<{ ok: boolean }>('https://example.com/retry-post', { retry: 3 })\n\n    await Promise.resolve()\n    await jest.runAllTimersAsync()\n\n    const response = await responsePromise\n\n    expect(global.fetch).toHaveBeenCalledTimes(2)\n    expect(response.data).toEqual({ ok: true })\n  })\n\n  test('sends JSON request bodies for POST', async () => {\n    global.fetch = createFetchMock(\n      new Response(JSON.stringify({ ok: true }), {\n        status: 200\n      })\n    )\n\n    await postJSON<{ ok: boolean }>('https://example.com/post-body', {\n      body: { ping: 'pong' }\n    })\n\n    expect(global.fetch).toHaveBeenCalledWith(\n      'https://example.com/post-body',\n      expect.objectContaining({\n        method: 'POST',\n        body: '{\"ping\":\"pong\"}',\n        headers: expect.objectContaining({\n          'Content-Type': 'application/json'\n        })\n      })\n    )\n  })\n\n  test('does not retry 413 by default', async () => {\n    global.fetch = createFetchMock(\n      new Response('payload too large', { status: 413 }),\n      new Response(JSON.stringify({ ok: true }), { status: 200 })\n    )\n\n    await expect(getJSON('https://example.com/too-large')).rejects.toMatchObject({\n      response: {\n        statusCode: 413,\n        body: 'payload too large'\n      }\n    })\n\n    expect(global.fetch).toHaveBeenCalledTimes(1)\n  })\n\n  test('throws response metadata for non-retryable errors', async () => {\n    global.fetch = createFetchMock(new Response('bad request', { status: 400 }))\n\n    await expect(getJSON('https://example.com/error')).rejects.toMatchObject({\n      response: {\n        statusCode: 400,\n        body: 'bad request'\n      }\n    })\n  })\n})\n"
  },
  {
    "path": "test/live.ts",
    "content": "export const shouldRunLiveTests = process.env.RUN_LIVE_TESTS === '1'\n\nexport const describeLive = shouldRunLiveTests ? describe : describe.skip\n"
  },
  {
    "path": "test/mappers.test.ts",
    "content": "import {\n  Exchange,\n  Mapper,\n  normalizeBookChanges,\n  normalizeDerivativeTickers,\n  normalizeTrades,\n  normalizeOptionsSummary,\n  normalizeLiquidations,\n  normalizeBookTickers\n} from '../dist/index.js'\n\nconst exchangesWithDerivativeInfo: Exchange[] = [\n  'bitmex',\n  'binance-futures',\n  'bitfinex-derivatives',\n  'cryptofacilities',\n  'deribit',\n  'okex-futures',\n  'okex-swap',\n  'bybit',\n  'phemex',\n  'ftx',\n  'delta',\n  'binance-delivery',\n  'huobi-dm',\n  'huobi-dm-swap',\n  'gate-io-futures',\n  'coinflex',\n  'huobi-dm-linear-swap',\n  'ascendex',\n  'dydx',\n  'dydx-v4',\n  'crypto-com',\n  'woo-x',\n  'kucoin-futures',\n  'bitget-futures',\n  'coinbase-international',\n  'hyperliquid'\n]\n\nconst exchangesWithBookTickerInfo: Exchange[] = [\n  'ascendex',\n  'binance',\n  'binance-futures',\n  'binance-delivery',\n  'binance-dex',\n  'binance-european-options',\n  'bitfinex',\n  'bitfinex-derivatives',\n  'bitflyer',\n  'bitmex',\n  'coinbase',\n  'cryptofacilities',\n  'deribit',\n  'ftx',\n  'ftx-us',\n  'huobi',\n  'huobi-dm',\n  'huobi-dm-linear-swap',\n  'huobi-dm-swap',\n  'kraken',\n  'okex',\n  'okex-futures',\n  'okex-swap',\n  'okex-options',\n  'okcoin',\n  'serum',\n  'gate-io-futures',\n  'bybit-spot',\n  'crypto-com',\n  'kucoin',\n  'woo-x',\n  'delta',\n  'bybit',\n  'gate-io',\n  'okex-spreads',\n  'kucoin-futures',\n  'bitget',\n  'bitget-futures',\n  'coinbase-international',\n  'hyperliquid'\n]\n\nconst exchangesWithOptionsSummary: Exchange[] = ['deribit', 'okex-options', 'huobi-dm-options', 'bybit-options', 'binance-european-options']\n\nconst exchangesWithLiquidationsSupport: Exchange[] = [\n  'ftx',\n  'bitmex',\n  'deribit',\n  'binance-futures',\n  'binance-delivery',\n  'bitfinex-derivatives',\n  'cryptofacilities',\n  'huobi-dm',\n  'huobi-dm-swap',\n  'huobi-dm-linear-swap',\n  'bybit',\n  'okex-futures',\n  'okex-swap',\n  'dydx-v4'\n]\n\nconst createMapper = (exchange: Exchange, localTimestamp?: Date) => {\n  let normalizers: any = [normalizeTrades, normalizeBookChanges]\n  if (exchangesWithDerivativeInfo.includes(exchange)) {\n    normalizers.push(normalizeDerivativeTickers)\n  }\n\n  if (exchangesWithOptionsSummary.includes(exchange)) {\n    normalizers.push(normalizeOptionsSummary)\n  }\n\n  if (exchangesWithLiquidationsSupport.includes(exchange)) {\n    normalizers.push(normalizeLiquidations)\n  }\n\n  if (exchangesWithBookTickerInfo.includes(exchange)) {\n    normalizers.push(normalizeBookTickers)\n  }\n\n  const mappersForExchange = normalizers.map((m: any) => m(exchange, localTimestamp)) as Mapper<any, any>[]\n\n  return {\n    map(message: any, localTimestamp: Date) {\n      const responses: any[] = []\n      for (const mapper of mappersForExchange) {\n        if (mapper.canHandle(message)) {\n          const mappedMessages = mapper.map(message, localTimestamp)\n          if (!mappedMessages) {\n            continue\n          }\n\n          for (const message of mappedMessages) {\n            responses.push(message)\n          }\n        }\n      }\n\n      return responses\n    }\n  }\n}\n\ndescribe('mappers', () => {\n  test('map deribit messages', () => {\n    const messages = [\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'trades.BTC-PERPETUAL.raw',\n          data: [\n            {\n              trade_seq: 20944815,\n              trade_id: '39355898',\n              timestamp: 1567296022565,\n              tick_direction: 2,\n              price: 9598.5,\n              instrument_name: 'BTC-PERPETUAL',\n              index_price: 9600.8,\n              direction: 'sell',\n              amount: 2000.0\n            },\n            {\n              trade_seq: 20944816,\n              trade_id: '39355899',\n              timestamp: 1567296022565,\n              tick_direction: 3,\n              price: 9598.5,\n              instrument_name: 'BTC-PERPETUAL',\n              index_price: 9600.8,\n              direction: 'sell',\n              amount: 50.0\n            }\n          ]\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'quote.BTC-PERPETUAL',\n          data: {\n            timestamp: 1567296000183,\n            instrument_name: 'BTC-PERPETUAL',\n            best_bid_price: 9600.5,\n            best_bid_amount: 162800.0,\n            best_ask_price: 9601.0,\n            best_ask_amount: 49710.0\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'book.ETH-PERPETUAL.raw',\n          data: {\n            timestamp: 1564617600273,\n            instrument_name: 'ETH-PERPETUAL',\n            change_id: 1776289261,\n            bids: [\n              ['new', 217.8, 1895.0],\n              ['new', 217.75, 712.0]\n            ],\n            asks: [\n              ['new', 218.6, 179803.0],\n              ['new', 218.65, 7887.0]\n            ]\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'book.ETH-PERPETUAL.raw',\n          data: {\n            timestamp: 1564617654272,\n            prev_change_id: 1776294621,\n            instrument_name: 'ETH-PERPETUAL',\n            change_id: 1776294623,\n            bids: [['delete', 217.8, 0.0]],\n            asks: [\n              ['change', 219.2, 64903.0],\n              ['change', 219.1, 19343.0]\n            ]\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'ticker.BTC-PERPETUAL.raw',\n          data: {\n            timestamp: 1564617604229,\n            stats: { volume: 24618.46215298, low: 9569.5, high: 10131.5 },\n            state: 'open',\n            settlement_price: 9743.97,\n            open_interest: 66128281,\n            min_price: 9942.76,\n            max_price: 10245.58,\n            mark_price: 10094.1,\n            last_price: 10095.5,\n            instrument_name: 'BTC-PERPETUAL',\n            index_price: 10091.15,\n            funding_8h: 0.00016281,\n            current_funding: 0.0,\n            best_bid_price: 10095.0,\n            best_bid_amount: 7000.0,\n            best_ask_price: 10095.5,\n            best_ask_amount: 250.0\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'ticker.BTC-PERPETUAL.raw',\n          data: {\n            timestamp: 1569888003897,\n            stats: { volume: 43610.27177267, low: 7684.0, high: 8353.0 },\n            state: 'open',\n            settlement_price: 7792.17,\n            open_interest: 84844461,\n            min_price: 8179.57,\n            max_price: 8428.7,\n            mark_price: 8304.39,\n            last_price: 8304.5,\n            instrument_name: 'BTC-PERPETUAL',\n            index_price: 8305.94,\n            funding_8h: -0.00008477,\n            current_funding: 0.0,\n            best_bid_price: 8304.0,\n            best_bid_amount: 267900.0,\n            best_ask_price: 8304.5,\n            best_ask_amount: 5260.0\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'ticker.BTC-8JUN20-8750-P.raw',\n          data: {\n            underlying_price: 9724.48,\n            underlying_index: 'SYN.BTC-8JUN20',\n            timestamp: 1591603200048,\n            stats: { volume: 2.5, price_change: 0.0, low: 0.0005, high: 0.0005 },\n            state: 'closed',\n            open_interest: 0.0,\n            min_price: 0.0001,\n            max_price: 0.015,\n            mark_price: 0.0,\n            mark_iv: 70.0,\n            last_price: 0.0005,\n            interest_rate: 0.0,\n            instrument_name: 'BTC-8JUN20-8750-P',\n            index_price: 9729.25,\n            greeks: { vega: 0.0, theta: 0.0, rho: 0.0, gamma: 0.0, delta: 0.0 },\n            estimated_delivery_price: 'expired',\n            delivery_price: 9728.65,\n            bid_iv: 0.0,\n            best_bid_price: 0.0,\n            best_bid_amount: 0.0,\n            best_ask_price: 0.0,\n            best_ask_amount: 0.0,\n            ask_iv: 500.0\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'ticker.BTC-5JUN20-9250-C.raw',\n          data: {\n            underlying_price: 9440.73,\n            underlying_index: 'SYN.BTC-5JUN20',\n            timestamp: 1590969652595,\n            stats: { volume: 13.4, price_change: -19.1489, low: 0.037, high: 0.047 },\n            state: 'open',\n            settlement_price: 0.05,\n            open_interest: 533.2,\n            min_price: 0.0115,\n            max_price: 0.069,\n            mark_price: 0.03847784,\n            mark_iv: 63.21,\n            last_price: 0.038,\n            interest_rate: 0.0,\n            instrument_name: 'BTC-5JUN20-9250-C',\n            index_price: 9434.36,\n            greeks: { vega: 3.88497, theta: -28.34113, rho: 0.66242, gamma: 0.00058, delta: 0.62959 },\n            estimated_delivery_price: 9434.36,\n            bid_iv: 58.39,\n            best_bid_price: 0.0365,\n            best_bid_amount: 15.4,\n            best_ask_price: 0.04,\n            best_ask_amount: 4.8,\n            ask_iv: 66.9\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'ticker.ETH-5JUN20-310-P.raw',\n          data: {\n            underlying_price: 231.7,\n            underlying_index: 'SYN.ETH-5JUN20',\n            timestamp: 1590969597073,\n            stats: { volume: null, price_change: null, low: null, high: null },\n            state: 'open',\n            settlement_price: 0.29,\n            open_interest: 0.0,\n            min_price: 0.299,\n            max_price: 0.383,\n            mark_price: 0.33859,\n            mark_iv: 118.63,\n            last_price: null,\n            interest_rate: 0.0,\n            instrument_name: 'ETH-5JUN20-310-P',\n            index_price: 231.54,\n            greeks: { vega: 0.0092, theta: -0.12594, rho: -0.03643, gamma: 0.00122, delta: -0.98566 },\n            estimated_delivery_price: 231.54,\n            bid_iv: 0.0,\n            best_bid_price: 0.0,\n            best_bid_amount: 0.0,\n            best_ask_price: 0.0,\n            best_ask_amount: 0.0,\n            ask_iv: 0.0\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'ticker.ETH-10JUN20-270-C.raw',\n          data: {\n            underlying_price: 244.14,\n            underlying_index: 'SYN.ETH-10JUN20',\n            timestamp: 1591608298178,\n            stats: { volume: null, price_change: null, low: null, high: null },\n            state: 'open',\n            open_interest: 0.0,\n            min_price: 0.0001,\n            max_price: 0.0155,\n            mark_price: 0.000632,\n            mark_iv: 72.96,\n            last_price: null,\n            interest_rate: 0.0,\n            instrument_name: 'ETH-10JUN20-270-C',\n            index_price: 243.98,\n            greeks: { vega: 0.01246, theta: -0.15436, rho: 0.00039, gamma: 0.00539, delta: 0.03105 },\n            estimated_delivery_price: 243.98,\n            bid_iv: 0.0,\n            best_bid_price: 0.0,\n            best_bid_amount: 0.0,\n            best_ask_price: 0.0,\n            best_ask_amount: 0.0,\n            ask_iv: 0.0\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'trades.BTC-PERPETUAL.raw',\n          data: [\n            {\n              trade_seq: 40781986,\n              trade_id: '66460463',\n              timestamp: 1584058044032,\n              tick_direction: 3,\n              price: 4469.5,\n              liquidation: 'T',\n              instrument_name: 'BTC-PERPETUAL',\n              index_price: 4805.41,\n              direction: 'sell',\n              amount: 1120\n            }\n          ]\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'trades.BTC-PERPETUAL.raw',\n          data: [\n            {\n              trade_seq: 40782080,\n              trade_id: '66460626',\n              timestamp: 1584058067675,\n              tick_direction: 3,\n              price: 4458.5,\n              liquidation: 'M',\n              instrument_name: 'BTC-PERPETUAL',\n              index_price: 4793.6,\n              direction: 'buy',\n              amount: 2500\n            }\n          ]\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'book.ETH-10SEP21-3350-P.raw',\n          data: {\n            type: 'change',\n            timestamp: 1631026812566,\n            prev_change_id: 0,\n            instrument_name: 'ETH-10SEP21-3350-P',\n            change_id: 14617771529,\n            bids: [['new', 0.019, 93.0]],\n            asks: [['new', 0.037, 93.0]]\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'book.LINK_USDC-PERPETUAL.raw',\n          data: {\n            type: 'snapshot',\n            timestamp: 1654041599955,\n            instrument_name: 'LINK_USDC-PERPETUAL',\n            prev_change_id: 20,\n            change_id: 1232767964,\n            bids: [\n              ['new', 7.562, 34.0],\n              ['new', 7.561, 329.0],\n              ['new', 7.56, 401.0],\n              ['new', 7.559, 133.0],\n              ['new', 7.558, 660.0]\n            ],\n            asks: []\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'ticker.BTC-STRD-30SEP22-20000.raw',\n          data: {\n            underlying_price: 21478.45,\n            underlying_index: 'index_price',\n            timestamp: 1661274180291,\n            stats: { volume: null, price_change: null, low: null, high: null },\n            state: 'open',\n            open_interest: 0.0,\n            min_price: 0.1364,\n            max_price: 0.271,\n            mark_price: 0.1922,\n            mark_iv: 149.18,\n            last_price: null,\n            interest_rate: 0.0,\n            instrument_name: 'BTC-STRD-30SEP22-20000',\n            index_price: 21478.45,\n            implied_bid: 0.189,\n            implied_ask: 0.196,\n            greeks: { vega: 50.40834, theta: -49.97019, rho: 2.9473, gamma: 0.00014, delta: 0.32525 },\n            estimated_delivery_price: 21478.45,\n            combo_state: 'active',\n            bid_iv: 0.0,\n            best_bid_price: 0.0,\n            best_bid_amount: 0.0,\n            best_ask_price: 0.0,\n            best_ask_amount: 0.0,\n            ask_iv: 0.0\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'ticker.BTC-FS-30SEP22_PERP.raw',\n          data: {\n            timestamp: 1662681659203,\n            stats: { volume_usd: null, volume: null, price_change: null, low: null, high: null },\n            state: 'open',\n            settlement_price: -5.64,\n            open_interest: 0,\n            min_price: -67.0,\n            max_price: 87.5,\n            mark_price: 10.12,\n            last_price: -13.5,\n            instrument_name: 'BTC-FS-30SEP22_PERP',\n            index_price: 19320.68,\n            implied_bid: 8.5,\n            implied_ask: 10.5,\n            estimated_delivery_price: 19320.68,\n            combo_state: 'active',\n            best_bid_price: -7.0,\n            best_bid_amount: 300000.0,\n            best_ask_price: -5.0,\n            best_ask_amount: 300000.0\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'ticker.BTC-CSR12-16SEP22-21000_23000.raw',\n          data: {\n            underlying_price: 19322.48,\n            underlying_index: 'index_price',\n            timestamp: 1662681656186,\n            stats: { volume: null, price_change: null, low: null, high: null },\n            state: 'open',\n            settlement_price: 0.00488191,\n            open_interest: 0.0,\n            min_price: -0.0096,\n            max_price: 0.0203,\n            mark_price: 0.0053,\n            mark_iv: -74.2,\n            last_price: null,\n            interest_rate: 0.0,\n            instrument_name: 'BTC-CSR12-16SEP22-21000_23000',\n            index_price: 19322.48,\n            implied_bid: 0.004,\n            implied_ask: 0.0065,\n            greeks: { vega: 2.60113, theta: -9.04163, rho: 0.37783, gamma: 0.00007, delta: 0.10275 },\n            estimated_delivery_price: 19322.48,\n            combo_state: 'active',\n            bid_iv: 0.0,\n            best_bid_price: 0.003,\n            best_bid_amount: 18.0,\n            best_ask_price: 0.008,\n            best_ask_amount: 18.0,\n            ask_iv: 0.0\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'subscription',\n        params: {\n          channel: 'ticker.MATIC_USDC-9MAR24-1d02-C.raw',\n          data: {\n            estimated_delivery_price: 1.1367,\n            best_bid_amount: 0.0,\n            best_ask_amount: 0.0,\n            bid_iv: 0.0,\n            ask_iv: 0.0,\n            underlying_index: 'index_price',\n            underlying_price: 1.1367,\n            mark_iv: 209.64,\n            best_bid_price: 0.0,\n            best_ask_price: 0.0,\n            interest_rate: 0,\n            open_interest: 0.0,\n            max_price: 60.139,\n            min_price: 0.0005,\n            last_price: null,\n            instrument_name: 'MATIC_USDC-9MAR24-1d02-C',\n            mark_price: 0.139,\n            index_price: 1.1367,\n            greeks: { rho: 0.00004, theta: -0.01323, vega: 0.00024, gamma: 1.70098, delta: 0.7869 },\n            stats: { volume_notional: 0.0, volume_usd: 0.0, volume: 0.0, price_change: null, low: null, high: null },\n            state: 'open',\n            timestamp: 1709809020064\n          }\n        }\n      }\n    ]\n    const deribitMapper = createMapper('deribit')\n    for (const message of messages) {\n      const mappedMessages = deribitMapper.map(message, new Date('2019-06-01T00:00:28.6199940Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map bitmex messages', () => {\n    const messages = [\n      {\n        table: 'trade',\n        action: 'insert',\n        data: [\n          {\n            timestamp: '2019-06-01T00:00:19.163Z',\n            symbol: 'XBTUSD',\n            side: 'Sell',\n            size: 1000,\n            price: 8544.5,\n            tickDirection: 'ZeroMinusTick',\n            trdMatchID: 'f73b6f28-075a-3548-a81c-8c843afd2746',\n            grossValue: 11703000,\n            homeNotional: 0.11703,\n            foreignNotional: 1000\n          }\n        ]\n      },\n      {\n        table: 'instrument',\n        action: 'update',\n        data: [{ symbol: 'XBTUSD', lastTickDirection: 'ZeroMinusTick', timestamp: '2019-06-01T00:00:19.163Z' }]\n      },\n      { table: 'orderBookL2', action: 'update', data: [{ symbol: 'XBTUSD', id: 8799145550, side: 'Buy', size: 220288 }] },\n      {\n        table: 'instrument',\n        action: 'partial',\n        filter: {},\n        data: [\n          {\n            symbol: 'ETHM19',\n            rootSymbol: 'ETH',\n            state: 'Open',\n            typ: 'FFCCSX',\n            listing: '2019-03-15T08:00:00.000Z',\n            front: '2019-05-31T12:00:00.000Z',\n            expiry: '2019-06-28T12:00:00.000Z',\n            settle: '2019-06-28T12:00:00.000Z',\n            relistInterval: null,\n            inverseLeg: '',\n            sellLeg: '',\n            buyLeg: '',\n            optionStrikePcnt: null,\n            optionStrikeRound: null,\n            optionStrikePrice: null,\n            optionMultiplier: null,\n            positionCurrency: 'ETH',\n            underlying: 'ETH',\n            quoteCurrency: 'XBT',\n            underlyingSymbol: 'ETHXBT=',\n            reference: 'BMEX',\n            referenceSymbol: '.BETHXBT30M',\n            calcInterval: null,\n            publishInterval: null,\n            publishTime: null,\n            maxOrderQty: 100000000,\n            maxPrice: 10,\n            lotSize: 1,\n            tickSize: 0.00001,\n            multiplier: 100000000,\n            settlCurrency: 'XBt',\n            underlyingToPositionMultiplier: 1,\n            underlyingToSettleMultiplier: null,\n            quoteToSettleMultiplier: 100000000,\n            isQuanto: false,\n            isInverse: false,\n            initMargin: 0.02,\n            maintMargin: 0.01,\n            riskLimit: 5000000000,\n            riskStep: 5000000000,\n            limit: null,\n            capped: false,\n            taxed: true,\n            deleverage: true,\n            makerFee: -0.0005,\n            takerFee: 0.0025,\n            settlementFee: 0,\n            insuranceFee: 0,\n            fundingBaseSymbol: '',\n            fundingQuoteSymbol: '',\n            fundingPremiumSymbol: '',\n            fundingTimestamp: null,\n            fundingInterval: null,\n            fundingRate: null,\n            indicativeFundingRate: null,\n            rebalanceTimestamp: null,\n            rebalanceInterval: null,\n            openingTimestamp: '2019-05-31T23:00:00.000Z',\n            closingTimestamp: '2019-06-01T00:00:00.000Z',\n            sessionInterval: '2000-01-01T01:00:00.000Z',\n            prevClosePrice: 0.0311,\n            limitDownPrice: null,\n            limitUpPrice: null,\n            bankruptLimitDownPrice: null,\n            bankruptLimitUpPrice: null,\n            prevTotalVolume: 4070606,\n            totalVolume: 4075076,\n            volume: 4470,\n            volume24h: 70698,\n            prevTotalTurnover: 12718107396000,\n            totalTurnover: 12732141124000,\n            turnover: 14033728000,\n            turnover24h: 219620772000,\n            homeNotional24h: 70698,\n            foreignNotional24h: 2196.2077199999994,\n            prevPrice24h: 0.03089,\n            vwap: 0.03106464,\n            highPrice: 0.03163,\n            lowPrice: 0.03033,\n            lastPrice: 0.03161,\n            lastPriceProtected: 0.03161,\n            lastTickDirection: 'ZeroPlusTick',\n            lastChangePcnt: 0.0233,\n            bidPrice: 0.03162,\n            midPrice: 0.031625,\n            askPrice: 0.03163,\n            impactBidPrice: 0.03162,\n            impactMidPrice: 0.031625,\n            impactAskPrice: 0.03163,\n            hasLiquidity: true,\n            openInterest: 150499,\n            openValue: 475877838000,\n            fairMethod: 'ImpactMidPrice',\n            fairBasisRate: 0.13,\n            fairBasis: 0.00031,\n            fairPrice: 0.03162,\n            markMethod: 'FairPrice',\n            markPrice: 0.03162,\n            indicativeTaxRate: 0,\n            indicativeSettlePrice: 0.03131,\n            optionUnderlyingPrice: null,\n            settledPrice: null,\n            timestamp: '2019-05-31T23:59:30.000Z'\n          },\n          {\n            symbol: 'LTCM19',\n            rootSymbol: 'LTC',\n            state: 'Open',\n            typ: 'FFCCSX',\n            listing: '2019-03-15T08:00:00.000Z',\n            front: '2019-05-31T12:00:00.000Z',\n            expiry: '2019-06-28T12:00:00.000Z',\n            settle: '2019-06-28T12:00:00.000Z',\n            relistInterval: null,\n            inverseLeg: '',\n            sellLeg: '',\n            buyLeg: '',\n            optionStrikePcnt: null,\n            optionStrikeRound: null,\n            optionStrikePrice: null,\n            optionMultiplier: null,\n            positionCurrency: 'LTC',\n            underlying: 'LTC',\n            quoteCurrency: 'XBT',\n            underlyingSymbol: 'LTCXBT=',\n            reference: 'BMEX',\n            referenceSymbol: '.BLTCXBT30M',\n            calcInterval: null,\n            publishInterval: null,\n            publishTime: null,\n            maxOrderQty: 100000000,\n            maxPrice: 10,\n            lotSize: 1,\n            tickSize: 0.000005,\n            multiplier: 100000000,\n            settlCurrency: 'XBt',\n            underlyingToPositionMultiplier: 1,\n            underlyingToSettleMultiplier: null,\n            quoteToSettleMultiplier: 100000000,\n            isQuanto: false,\n            isInverse: false,\n            initMargin: 0.03,\n            maintMargin: 0.015,\n            riskLimit: 5000000000,\n            riskStep: 5000000000,\n            limit: null,\n            capped: false,\n            taxed: true,\n            deleverage: true,\n            makerFee: -0.0005,\n            takerFee: 0.0025,\n            settlementFee: 0,\n            insuranceFee: 0,\n            fundingBaseSymbol: '',\n            fundingQuoteSymbol: '',\n            fundingPremiumSymbol: '',\n            fundingTimestamp: null,\n            fundingInterval: null,\n            fundingRate: null,\n            indicativeFundingRate: null,\n            rebalanceTimestamp: null,\n            rebalanceInterval: null,\n            openingTimestamp: '2019-05-31T23:00:00.000Z',\n            closingTimestamp: '2019-06-01T00:00:00.000Z',\n            sessionInterval: '2000-01-01T01:00:00.000Z',\n            prevClosePrice: 0.01313,\n            limitDownPrice: null,\n            limitUpPrice: null,\n            bankruptLimitDownPrice: null,\n            bankruptLimitUpPrice: null,\n            prevTotalVolume: 14683085,\n            totalVolume: 14706051,\n            volume: 22966,\n            volume24h: 193546,\n            prevTotalTurnover: 20805359301000,\n            totalTurnover: 20836292769500,\n            turnover: 30933468500,\n            turnover24h: 255133524000,\n            homeNotional24h: 193546,\n            foreignNotional24h: 2551.3352399999985,\n            prevPrice24h: 0.01312,\n            vwap: 0.01318207,\n            highPrice: 0.01357,\n            lowPrice: 0.0129,\n            lastPrice: 0.01354,\n            lastPriceProtected: 0.01354,\n            lastTickDirection: 'ZeroMinusTick',\n            lastChangePcnt: 0.032,\n            bidPrice: 0.013535,\n            midPrice: 0.0135375,\n            askPrice: 0.01354,\n            impactBidPrice: 0.01353146,\n            impactMidPrice: 0.013535,\n            impactAskPrice: 0.01354,\n            hasLiquidity: true,\n            openInterest: 204654,\n            openValue: 276958258200,\n            fairMethod: 'ImpactMidPrice',\n            fairBasisRate: 0.15,\n            fairBasis: 0.000151,\n            fairPrice: 0.013533,\n            markMethod: 'FairPrice',\n            markPrice: 0.013533,\n            indicativeTaxRate: 0,\n            indicativeSettlePrice: 0.013382,\n            optionUnderlyingPrice: null,\n            settledPrice: null,\n            timestamp: '2019-05-31T23:59:55.000Z'\n          }\n        ]\n      },\n      {\n        table: 'instrument',\n        action: 'update',\n        data: [\n          {\n            symbol: 'ETHM19',\n            lastPrice: 267.75,\n            bidPrice: 267.7,\n            midPrice: 267.725,\n            askPrice: 267.75,\n            impactBidPrice: 267.62,\n            impactMidPrice: 267.7,\n            impactAskPrice: 267.76,\n            timestamp: '2019-05-31T23:59:58.022Z'\n          }\n        ]\n      },\n      {\n        table: 'quote',\n        action: 'insert',\n        data: [{ timestamp: '2019-05-31T23:59:59.942Z', symbol: 'ETHUSD', bidSize: 701, bidPrice: 267.7, askPrice: 267.75, askSize: 62427 }]\n      },\n      {\n        table: 'orderBookL2',\n        action: 'partial',\n        data: [\n          { symbol: 'XBTUSD', id: 8791115350, side: 'Sell', size: 501, price: 88846.5 },\n          { symbol: 'XBTUSD', id: 8799021950, side: 'Sell', size: 40, price: 9780.5 },\n          { symbol: 'XBTUSD', id: 8799141400, side: 'Sell', size: 61227, price: 8586 },\n          { symbol: 'EOSM19', id: 33199989899, side: 'Buy', size: 417, price: 0.0010102 }\n        ]\n      },\n      { table: 'orderBookL2', action: 'update', data: [{ symbol: 'XBTUSD', id: 8799141400, side: 'Sell', size: 91227 }] },\n      { table: 'orderBookL2', action: 'delete', data: [{ symbol: 'XBTUSD', id: 8799141400, side: 'Sell' }] },\n      {\n        table: 'orderBookL2',\n        action: 'insert',\n        data: [{ symbol: 'EOSM19', id: 33199989898, side: 'Buy', size: 416, price: 0.0010102 }]\n      },\n      {\n        table: 'instrument',\n        action: 'update',\n        data: [\n          {\n            symbol: 'ETHUSD',\n            openInterest: 58922153\n          }\n        ]\n      },\n      {\n        table: 'liquidation',\n        action: 'insert',\n        data: [{ orderID: 'dd9cea25-207c-0dab-15b5-b88da776f500', symbol: 'XBTUSD', side: 'Buy', price: 10106, leavesQty: 9214 }]\n      },\n      { table: 'liquidation', action: 'delete', data: [{ orderID: 'dd9cea25-207c-0dab-15b5-b88da776f500', symbol: 'XBTUSD' }] },\n      {\n        table: 'quote',\n        action: 'insert',\n        data: [\n          { timestamp: '2021-10-13T07:07:00.106Z', symbol: 'XBTUSD', bidSize: 2700, bidPrice: 55411, askPrice: 55411.5, askSize: 205100 },\n          { timestamp: '2021-10-13T07:07:01.010Z', symbol: 'XBTUSD', bidSize: 700, bidPrice: 55400, askPrice: 55400.5, askSize: 241500 }\n        ]\n      },\n      {\n        table: 'orderBookL2',\n        action: 'partial',\n        keys: ['symbol', 'id', 'side'],\n        types: { symbol: 'symbol', id: 'long', side: 'symbol', size: 'long', price: 'float' },\n        foreignKeys: { symbol: 'instrument', side: 'side' },\n        attributes: { symbol: 'parted', id: 'sorted' },\n        filter: { symbol: 'XBTZ21' },\n        data: []\n      },\n\n      {\n        table: 'orderBookL2',\n        action: 'partial',\n        keys: ['symbol', 'id', 'side'],\n        types: { symbol: 'symbol', id: 'long', side: 'symbol', size: 'long', price: 'float', timestamp: 'timestamp' },\n        foreignKeys: { symbol: 'instrument', side: 'side' },\n        attributes: { symbol: 'grouped' },\n        filter: { symbol: 'XBTUSD' },\n        data: [\n          { symbol: 'XBTUSD', id: 8791115350, side: 'Sell', size: 1000000, price: 42362, timestamp: '2022-02-14T07:59:54.829Z' },\n          { symbol: 'XBTUSD', id: 8733748000, side: 'Sell', size: 10000, price: 662520, timestamp: '2022-02-14T07:59:54.829Z' },\n          { symbol: 'XBTUSD', id: 8734110000, side: 'Sell', size: 20000, price: 658900, timestamp: '2022-02-14T07:59:54.829Z' }\n        ]\n      },\n      {\n        table: 'orderBookL2',\n        action: 'insert',\n        data: [{ symbol: 'XBTUSD', id: 8791115350, side: 'Buy', size: 20000, price: 42362, timestamp: '2022-02-14T08:06:54.742Z' }]\n      },\n\n      {\n        table: 'orderBookL2',\n        action: 'delete',\n        data: [\n          { symbol: 'XBTUSD', id: 8733748000, side: 'Sell', timestamp: '2022-02-14T08:34:56.852Z' },\n          { symbol: 'XBTUSD', id: 8734110000, side: 'Buy', timestamp: '2022-02-14T08:34:56.913Z' }\n        ]\n      }\n    ]\n\n    const bitmexMapper = createMapper('bitmex')\n\n    for (const message of messages) {\n      const mappedMessages = bitmexMapper.map(message, new Date('2019-06-01T00:00:28.6199940Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map okex messages', () => {\n    const messages = [\n      {\n        table: 'spot/trade',\n        data: [\n          {\n            instrument_id: 'BCH-USDT',\n            price: '328.74',\n            side: 'sell',\n            size: '0.12',\n            timestamp: '2019-08-01T00:00:08.806Z',\n            trade_id: '423886239'\n          }\n        ]\n      },\n\n      {\n        table: 'spot/depth',\n        action: 'partial',\n        data: [\n          {\n            instrument_id: 'BTC-USDT',\n            asks: [\n              [4084.57, 38, 0, 3],\n              [4085.0, 20, 0, 1]\n            ],\n            bids: [\n              [4084.56, 4, 0, 1],\n              [4084.5, 29, 0, 1]\n            ],\n            timestamp: '2019-08-01T00:00:08.930Z'\n          }\n        ]\n      },\n      {\n        table: 'spot/ticker',\n        data: [\n          {\n            instrument_id: 'TRX-ETH',\n            last: '0.0001659',\n            best_bid: '0.0001654',\n            best_ask: '0.0001659',\n            open_24h: '0.0001629',\n            high_24h: '0.0001665',\n            low_24h: '0.0001629',\n            base_volume_24h: '207761417.05',\n            quote_volume_24h: '34230.351676558',\n            timestamp: '2019-04-01T00:00:27.106Z'\n          }\n        ]\n      },\n      {\n        table: 'spot/depth_l2_tbt',\n        action: 'update',\n        data: [\n          {\n            instrument_id: 'BTC-USDT',\n            asks: [],\n            bids: [['2.25', '1459', '0', '1']],\n            timestamp: '2019-12-03T15:14:59.904Z',\n            checksum: 1099728614\n          }\n        ]\n      },\n      {\n        table: 'spot/trade',\n        data: [\n          {\n            instrument_id: 'BCH-USDT',\n            price: '328.74',\n            side: 'sell',\n            size: '0.12',\n            timestamp: '2019-08-01T00:00:08.807Z',\n            trade_id: '423886240'\n          }\n        ]\n      },\n      {\n        table: 'spot/ticker',\n        data: [\n          {\n            instrument_id: 'EOS-USDT',\n            last: '2.585',\n            last_qty: '27.461',\n            best_bid: '2.584',\n            best_bid_size: '1574.0289',\n            best_ask: '2.585',\n            best_ask_size: '849.6017',\n            open_24h: '2.625',\n            high_24h: '2.652',\n            low_24h: '2.565',\n            base_volume_24h: '5681140.617',\n            quote_volume_24h: '14812717.779',\n            timestamp: '2019-12-31T23:59:58.352Z'\n          }\n        ]\n      },\n      {\n        table: 'spot/ticker',\n        data: [\n          {\n            last: '3.9382',\n            open_24h: '3.744',\n            best_bid: '3.9383',\n            high_24h: '3.9477',\n            low_24h: '3.7212',\n            open_utc0: '3.744',\n            open_utc8: '3.8902',\n            base_volume_24h: '3884430.836',\n            quote_volume_24h: '15059329.85077',\n            best_ask: '3.9385',\n            instrument_id: 'EOS-USDT',\n            timestamp: '2021-09-30T23:59:59.874Z',\n            best_bid_size: '0.350812',\n            best_ask_size: '235',\n            last_qty: '1.19892'\n          }\n        ]\n      }\n    ]\n    let okexMapper = createMapper('okex', new Date('2019-12-05'))\n\n    for (const message of messages) {\n      const mappedMessages = okexMapper.map(message, new Date('2019-08-01T00:00:02.9970505Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    const okexV5Mapper = createMapper('okex', new Date('2021-12-23T00:00:00.000Z'))\n\n    const okexV5Messages = [\n      { event: 'subscribe', arg: { channel: 'trades', instId: 'BTC-USDT' } },\n      {\n        arg: { channel: 'trades', instId: 'CRV-USDT' },\n        data: [{ instId: 'CRV-USDT', tradeId: '21300150', px: '3.973', sz: '13.491146', side: 'buy', ts: '1639999319938' }]\n      },\n      {\n        arg: { channel: 'books-l2-tbt', instId: 'BTC-DAI' },\n        action: 'snapshot',\n        data: [\n          {\n            asks: [\n              ['46167.8', '0.02250534', '0', '3'],\n              ['46167.9', '0.00455491', '0', '1']\n            ],\n            bids: [\n              ['46043.4', '0.00375882', '0', '1'],\n              ['46043.3', '0.00238905', '0', '1'],\n              ['45906.8', '0.0435796', '0', '1']\n            ],\n            ts: '1639999305247',\n            checksum: -1971869027\n          }\n        ]\n      },\n      {\n        arg: { channel: 'books-l2-tbt', instId: 'ETC-ETH' },\n        action: 'update',\n        data: [{ asks: [], bids: [['0.00895', '3.5', '0', '1']], ts: '1639999318695', checksum: 386150553 }]\n      },\n      {\n        arg: { channel: 'tickers', instId: 'ACT-USDT' },\n        data: [\n          {\n            instType: 'SPOT',\n            instId: 'ACT-USDT',\n            last: '0.00718',\n            lastSz: '8052.117146',\n            askPx: '0.0072',\n            askSz: '54969.407534',\n            bidPx: '0.00713',\n            bidSz: '4092.326',\n            open24h: '0.00717',\n            high24h: '0.00722',\n            low24h: '0.00696',\n            sodUtc0: '0.00714',\n            sodUtc8: '0.00721',\n            volCcy24h: '278377.765301',\n            vol24h: '39168761.49997',\n            ts: '1639999318686'\n          }\n        ]\n      },\n      {\n        arg: { channel: 'trades-all', instId: 'BSV-USDT' },\n        data: [{ instId: 'BSV-USDT', tradeId: '84834539', px: '42.52', sz: '3.75', side: 'buy', ts: '1697760012017' }]\n      }\n    ]\n\n    for (const message of okexV5Messages) {\n      const mappedMessages = okexV5Mapper.map(message, new Date('2021-12-23T00:00:00.000Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map okex-futures messages', () => {\n    const messages = [\n      {\n        table: 'futures/trade',\n        data: [\n          {\n            side: 'sell',\n            trade_id: '2578238628528131',\n            price: 4061.94,\n            qty: 4,\n            instrument_id: 'BTC-USD-190628',\n            timestamp: '2019-03-31T23:59:59.388Z'\n          }\n        ]\n      },\n      {\n        table: 'futures/trade',\n        data: [\n          {\n            side: 'buy',\n            trade_id: '3269040623943685',\n            price: '10209.43',\n            qty: '5',\n            instrument_id: 'BTC-USD-190927',\n            timestamp: '2019-08-01T00:00:01.320Z'\n          }\n        ]\n      },\n      {\n        table: 'futures/trade',\n        data: [\n          {\n            side: 'sell',\n            trade_id: '2578238628528132',\n            price: 4061.95,\n            qty: 4,\n            instrument_id: 'BTC-USD-190628',\n            timestamp: '2019-03-31T23:59:59.389Z'\n          }\n        ]\n      },\n      {\n        table: 'futures/trade',\n        data: [\n          {\n            side: 'buy',\n            trade_id: '3269040623943686',\n            price: '10209.43',\n            qty: '5',\n            instrument_id: 'BTC-USD-190927',\n            timestamp: '2019-08-01T00:00:01.321Z'\n          }\n        ]\n      },\n      {\n        table: 'futures/depth',\n        action: 'partial',\n        data: [\n          {\n            instrument_id: 'BTC-USD-190405',\n            asks: [\n              [4084.57, 38, 0, 3],\n              [4085.0, 20, 0, 1]\n            ],\n            bids: [\n              [4084.56, 4, 0, 1],\n              [4084.5, 29, 0, 1]\n            ],\n            timestamp: '2019-08-01T00:00:08.930Z'\n          }\n        ]\n      },\n      {\n        table: 'swap/funding_rate',\n        data: [\n          {\n            estimated_rate: '0.00037',\n            funding_rate: '0.00023534',\n            funding_time: '2019-08-01T04:00:00.000Z',\n            instrument_id: 'BCH-USD-SWAP',\n            interest_rate: '0'\n          }\n        ]\n      },\n\n      {\n        table: 'futures/mark_price',\n        data: [{ instrument_id: 'BTC-USD-190927', mark_price: '10218.61', timestamp: '2019-08-01T00:00:20.869Z' }]\n      },\n      {\n        table: 'futures/ticker',\n        data: [\n          {\n            last: '0.02249',\n            best_bid: '0.0225',\n            high_24h: '0.02275',\n            low_24h: '0.02208',\n            volume_24h: '41666',\n            open_interest: '24419',\n            best_ask: '0.02255',\n            instrument_id: 'TRX-USD-190802',\n            open_24h: '0.02206',\n            timestamp: '2019-08-01T00:02:00.429Z',\n            volume_token_24h: '18526456.20275678'\n          }\n        ]\n      },\n      {\n        table: 'futures/depth_l2_tbt',\n        action: 'update',\n        data: [\n          {\n            instrument_id: 'EOS-USD-191206',\n            asks: [],\n            bids: [['2.25', '1459', '0', '1']],\n            timestamp: '2019-12-03T15:14:59.904Z',\n            checksum: 1099728614\n          }\n        ]\n      },\n      {\n        table: 'futures/ticker',\n        data: [\n          {\n            last: '7181.47',\n            open_24h: '7237.34',\n            best_bid: '7181.22',\n            high_24h: '7319.1',\n            low_24h: '7131.35',\n            volume_24h: '2602513',\n            volume_token_24h: '36069.935',\n            best_ask: '7181.95',\n            open_interest: '530385',\n            instrument_id: 'BTC-USD-200103',\n            timestamp: '2019-12-31T23:59:59.382Z'\n          }\n        ]\n      },\n      {\n        table: 'futures/ticker',\n        data: [\n          {\n            last: '7181.47',\n            open_24h: '7237.34',\n            best_bid: '7181.22',\n            high_24h: '7319.1',\n            low_24h: '7131.35',\n            volume_24h: '2602513',\n            volume_token_24h: '36069.935',\n            best_ask: '7181.95',\n            open_interest: '530385',\n            instrument_id: 'BTC-USD-200103',\n            timestamp: '2019-12-31T23:59:59.382Z'\n          }\n        ]\n      },\n      {\n        table: 'futures/ticker',\n        data: [\n          {\n            last: '47.826',\n            open_24h: '46.281',\n            best_bid: '47.799',\n            high_24h: '48.122',\n            low_24h: '46.061',\n            open_utc0: '46.281',\n            open_utc8: '47.314',\n            volume_24h: '1737691',\n            volume_token_24h: '366790.4051',\n            best_ask: '47.837',\n            open_interest: '160296.0000000000000000',\n            instrument_id: 'ETC-USD-220325',\n            timestamp: '2021-09-30T23:59:59.965Z',\n            best_bid_size: '112',\n            best_ask_size: '20',\n            last_qty: '65'\n          }\n        ]\n      }\n    ]\n    let okexFuturesMapper = createMapper('okex-futures', new Date('2019-12-04'))\n\n    for (const message of messages) {\n      const mappedMessages = okexFuturesMapper.map(message, new Date('2019-08-01T00:00:02.9970505Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    const messagesTickByTick = [\n      {\n        table: 'futures/depth_l2_tbt',\n        action: 'partial',\n        data: [\n          {\n            instrument_id: 'BTC-USD-191018',\n            asks: [['8581.44', '74', '0', '74']],\n            bids: [['8581.38', '37', '0', '37']],\n            timestamp: '2019-10-10T08:50:14.528Z',\n            checksum: -182860440\n          }\n        ]\n      },\n      {\n        table: 'futures/depth_l2_tbt',\n        action: 'update',\n        data: [\n          {\n            instrument_id: 'EOS-USD-191206',\n            asks: [],\n            bids: [['2.25', '1459', '0', '1']],\n            timestamp: '2019-12-03T15:14:59.904Z',\n            checksum: 1099728614\n          }\n        ]\n      },\n      {\n        table: 'futures/depth',\n        action: 'partial',\n        data: [\n          {\n            instrument_id: 'BTC-USD-190405',\n            asks: [\n              [4084.57, 38, 0, 3],\n              [4085.0, 20, 0, 1]\n            ],\n            bids: [\n              [4084.56, 4, 0, 1],\n              [4084.5, 29, 0, 1]\n            ],\n            timestamp: '2019-08-01T00:00:08.930Z'\n          }\n        ]\n      },\n      {\n        table: 'futures/liquidation',\n        generated: true,\n        data: [\n          {\n            loss: '0.05612247',\n            size: '475',\n            price: '655.308',\n            created_at: '2020-12-18T00:30:58.559Z',\n            type: '3',\n            instrument_id: 'ETH-USD-210326'\n          }\n        ]\n      },\n      {\n        table: 'futures/liquidation',\n        generated: true,\n        data: [\n          {\n            loss: '0.00013667',\n            size: '8',\n            price: '24515.8',\n            created_at: '2020-12-18T08:32:34.576Z',\n            type: '4',\n            instrument_id: 'BTC-USD-210326'\n          }\n        ]\n      }\n    ]\n\n    okexFuturesMapper = createMapper('okex-futures', new Date('2019-12-05'))\n\n    for (const message of messagesTickByTick) {\n      const mappedMessages = okexFuturesMapper.map(message, new Date('2019-08-01T00:00:02.9970505Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    const okexFuturesV5Mapper = createMapper('okex-futures', new Date('2021-12-23T00:00:00.000Z'))\n\n    const okexFuturesV5Messages = [\n      { event: 'subscribe', arg: { channel: 'trades', instId: 'ETH-USD-211224' } },\n      {\n        arg: { channel: 'books-l2-tbt', instId: 'ADA-USDT-211224' },\n        action: 'snapshot',\n        data: [\n          {\n            asks: [['1.27898', '65', '0', '1']],\n            bids: [\n              ['1.27803', '2', '0', '1'],\n              ['1.27802', '65', '0', '1']\n            ],\n            ts: '1640131206623',\n            checksum: -44519492\n          }\n        ]\n      },\n      {\n        arg: { channel: 'trades', instId: 'FIL-USD-220325' },\n        data: [{ instId: 'FIL-USD-220325', tradeId: '1271987', px: '36.239', sz: '11', side: 'buy', ts: '1640131185600' }]\n      },\n      {\n        arg: { channel: 'mark-price', instId: 'FIL-USDT-220325' },\n        data: [{ instId: 'FIL-USDT-220325', instType: 'FUTURES', markPx: '36.232', ts: '1640131204676' }]\n      },\n      {\n        arg: { channel: 'open-interest', instId: 'FIL-USDT-220325' },\n        data: [{ instId: 'FIL-USDT-220325', instType: 'FUTURES', oi: '236870', oiCcy: '23687', ts: '1640131202886' }]\n      },\n      {\n        arg: { channel: 'price-limit', instId: 'XRP-USD-211231' },\n        data: [{ buyLmt: '0.98122', instId: 'XRP-USD-211231', instType: 'FUTURES', sellLmt: '0.90546', ts: '1640131201675' }]\n      },\n      {\n        arg: { channel: 'tickers', instId: 'FIL-USDT-220325' },\n        data: [\n          {\n            instType: 'FUTURES',\n            instId: 'FIL-USDT-220325',\n            last: '36.245',\n            lastSz: '5',\n            askPx: '36.251',\n            askSz: '900',\n            bidPx: '36.214',\n            bidSz: '240',\n            open24h: '35.733',\n            high24h: '37.278',\n            low24h: '35.132',\n            sodUtc0: '36.245',\n            sodUtc8: '35.702',\n            volCcy24h: '39687.4',\n            vol24h: '396874',\n            ts: '1640131209045'\n          }\n        ]\n      },\n      {\n        arg: { channel: 'books-l2-tbt', instId: 'LTC-USDT-220624' },\n        action: 'update',\n        data: [\n          {\n            asks: [],\n            bids: [\n              ['161.26', '6', '0', '1'],\n              ['161.24', '0', '0', '0']\n            ],\n            ts: '1640131256488',\n            checksum: -465502296\n          }\n        ]\n      },\n      {\n        arg: { channel: 'liquidations', instId: 'BTC-USD-220624', generated: true },\n        data: [{ bkLoss: '0', bkPx: '51886.2', ccy: '', posSide: 'short', side: 'buy', sz: '12', ts: '1640140210617' }]\n      },\n      {\n        arg: { channel: 'liquidations', instId: 'BTC-USDT-211231', generated: true },\n        data: [{ bkLoss: '0', bkPx: '49674.2', ccy: '', posSide: 'short', side: 'buy', sz: '40', ts: '1640140211925' }]\n      },\n      {\n        arg: { channel: 'index-tickers', instId: 'FIL-USDT' },\n        data: [\n          {\n            instId: 'FIL-USDT',\n            idxPx: '35.583',\n            open24h: '34.558',\n            high24h: '35.862',\n            low24h: '34.529',\n            sodUtc0: '35.309',\n            sodUtc8: '34.83',\n            ts: '1640140200581'\n          }\n        ]\n      },\n      {\n        arg: { channel: 'mark-price', instId: 'FIL-USDT-220325' },\n        data: [{ instId: 'FIL-USDT-220325', instType: 'FUTURES', markPx: '36.662', ts: '1640140257676' }]\n      },\n      {\n        arg: { channel: 'liquidation-orders', instType: 'FUTURES' },\n        data: [\n          {\n            details: [{ bkLoss: '0', bkPx: '0.55205', ccy: '', posSide: 'short', side: 'buy', sz: '39', ts: '1680173247614' }],\n            instFamily: 'XRP-USD',\n            instId: 'XRP-USD-230929',\n            instType: 'FUTURES',\n            uly: 'XRP-USD'\n          }\n        ]\n      },\n      {\n        arg: { channel: 'liquidation-orders', instType: 'FUTURES' },\n        data: [\n          {\n            details: [{ bkLoss: '0', bkPx: '0.55205', ccy: '', posSide: 'short', side: 'buy', sz: '39', ts: '1680173247614' }],\n            instFamily: 'XRP-USD',\n            instId: 'XRP-USD-230929',\n            instType: 'FUTURES',\n            uly: 'XRP-USD'\n          }\n        ]\n      }\n    ]\n\n    for (const message of okexFuturesV5Messages) {\n      const mappedMessages = okexFuturesV5Mapper.map(message, new Date('2021-12-23T00:00:00.000Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map okex-swap messages', () => {\n    const messages = [\n      {\n        table: 'swap/trade',\n        data: [\n          {\n            instrument_id: 'BCH-USDT',\n            price: '328.74',\n            side: 'sell',\n            size: '0.12',\n            timestamp: '2019-08-01T00:00:08.806Z',\n            trade_id: '423886239'\n          }\n        ]\n      },\n      {\n        table: 'swap/depth',\n        action: 'update',\n        data: [\n          {\n            instrument_id: 'XRP-USD-SWAP',\n            asks: [\n              ['0.3198', '264', '0', '5'],\n              ['0.3199', '222', '0', '4'],\n              ['0.3219', '2014', '0', '2']\n            ],\n            bids: [\n              ['0.3196', '1646', '0', '14'],\n              ['0.3195', '1672', '0', '6']\n            ],\n            timestamp: '2019-08-01T00:00:08.930Z',\n            checksum: 1684272782\n          }\n        ]\n      },\n      {\n        table: 'swap/ticker',\n        data: [\n          {\n            best_ask: '329.3',\n            best_bid: '329.29',\n            high_24h: '337.89',\n            instrument_id: 'BCH-USD-SWAP',\n            last: '329.3',\n            low_24h: '318.13',\n            timestamp: '2019-08-01T00:00:02.483Z',\n            volume_24h: '2099540'\n          }\n        ]\n      },\n      {\n        table: 'swap/funding_rate',\n        data: [\n          {\n            estimated_rate: '0.00037',\n            funding_rate: '0.00023534',\n            funding_time: '2019-08-01T04:00:00.000Z',\n            instrument_id: 'BCH-USD-SWAP',\n            interest_rate: '0'\n          }\n        ]\n      },\n      { table: 'swap/mark_price', data: [{ instrument_id: 'BCH-USD-SWAP', mark_price: '329.3', timestamp: '2019-08-01T00:00:20.773Z' }] },\n      {\n        table: 'swap/depth_l2_tbt',\n        action: 'update',\n        data: [\n          {\n            instrument_id: 'EOS-USD-191206',\n            asks: [],\n            bids: [['2.25', '1459', '0', '1']],\n            timestamp: '2019-12-03T15:14:59.904Z',\n            checksum: 1099728614\n          }\n        ]\n      },\n      {\n        table: 'swap/trade',\n        data: [\n          {\n            instrument_id: 'BCH-USDT',\n            price: '328.74',\n            side: 'sell',\n            size: '0.12',\n            timestamp: '2019-08-01T00:00:08.816Z',\n            trade_id: '423886240'\n          }\n        ]\n      },\n      {\n        table: 'swap/ticker',\n        data: [\n          {\n            last: '9337.7',\n            open_24h: '9508.4',\n            best_bid: '9336.6',\n            high_24h: '9525.3',\n            low_24h: '9189',\n            volume_24h: '6004144',\n            volume_token_24h: '64331.636',\n            best_ask: '9336.7',\n            open_interest: '2233398',\n            instrument_id: 'BTC-USD-SWAP',\n            timestamp: '2020-01-31T23:59:53.276Z'\n          }\n        ]\n      },\n      {\n        table: 'swap/ticker',\n        data: [\n          {\n            last: '11654.5',\n            open_24h: '11722.1',\n            best_bid: '11654.5',\n            high_24h: '11782',\n            low_24h: '11580',\n            volume_24h: '3590081',\n            volume_token_24h: '30713.1647',\n            best_ask: '11654.6',\n            open_interest: '1322785',\n            instrument_id: 'BTC-USD-SWAP',\n            timestamp: '2020-09-01T00:00:00.453Z',\n            best_bid_size: '3690',\n            best_ask_size: '2190',\n            last_qty: '2'\n          }\n        ]\n      }\n    ]\n\n    let okexSwap = createMapper('okex-swap', new Date('2020-02-07'))\n\n    for (const message of messages) {\n      const mappedMessages = okexSwap.map(message, new Date('2019-08-01T00:00:02.9970505Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    let messagesWithTickByTickBook = [\n      {\n        table: 'swap/depth_l2_tbt',\n        action: 'update',\n        data: [\n          {\n            instrument_id: 'ETC-USDT-SWAP',\n            asks: [['11.749', '0', '0', '0']],\n            bids: [],\n            timestamp: '2020-02-08T00:01:00.022Z',\n            checksum: -229520224\n          }\n        ]\n      },\n      {\n        table: 'swap/depth',\n        action: 'update',\n        data: [\n          {\n            instrument_id: 'ETC-USDT-SWAP',\n            asks: [['11.761', '0', '0', '0']],\n            bids: [['11.66', '160', '0', '2']],\n            timestamp: '2020-02-08T00:01:00.035Z',\n            checksum: -229520224\n          }\n        ]\n      },\n      {\n        table: 'swap/liquidation',\n        generated: true,\n        data: [{ loss: '0', size: '8', price: '3.523', created_at: '2020-12-18T00:30:58.374Z', type: '3', instrument_id: 'UNI-USD-SWAP' }]\n      },\n      {\n        table: 'swap/liquidation',\n        generated: true,\n        data: [\n          { loss: '0', size: '30', price: '22376.9', created_at: '2020-12-18T00:31:08.794Z', type: '3', instrument_id: 'BTC-USDT-SWAP' }\n        ]\n      }\n    ]\n\n    okexSwap = createMapper('okex-swap', new Date('2020-02-08'))\n\n    for (const message of messagesWithTickByTickBook) {\n      const mappedMessages = okexSwap.map(message, new Date('2020-02-08T00:00:02.9970505Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    const okexSwapV5Mapper = createMapper('okex-swap', new Date('2021-12-23T00:00:00.000Z'))\n\n    const okexSwapV5Messages = [\n      {\n        arg: { channel: 'books-l2-tbt', instId: 'REN-USDT-SWAP' },\n        action: 'update',\n        data: [\n          {\n            asks: [['0.65442', '14', '0', '2']],\n            bids: [\n              ['0.65441', '1', '0', '1'],\n              ['0.65418', '0', '0', '0']\n            ],\n            ts: '1640131236035',\n            checksum: 2017579879\n          }\n        ]\n      },\n      {\n        arg: { channel: 'funding-rate', instId: 'WNCG-USDT-SWAP' },\n        data: [\n          {\n            fundingRate: '0.00048105',\n            fundingTime: '1640131200000',\n            instId: 'WNCG-USDT-SWAP',\n            instType: 'SWAP',\n            nextFundingRate: '0.00114'\n          }\n        ]\n      },\n      {\n        arg: { channel: 'trades', instId: 'BTC-USDT-SWAP' },\n        data: [{ instId: 'BTC-USDT-SWAP', tradeId: '148266905', px: '48938.5', sz: '5', side: 'buy', ts: '1640131236050' }]\n      },\n      {\n        arg: { channel: 'tickers', instId: 'WNCG-USDT-SWAP' },\n        data: [\n          {\n            instType: 'SWAP',\n            instId: 'WNCG-USDT-SWAP',\n            last: '2.1729',\n            lastSz: '0',\n            askPx: '2.1738',\n            askSz: '168',\n            bidPx: '2.1737',\n            bidSz: '2',\n            open24h: '2.164',\n            high24h: '2.25',\n            low24h: '2.1493',\n            sodUtc0: '2.1718',\n            sodUtc8: '2.1644',\n            volCcy24h: '803940',\n            vol24h: '803940',\n            ts: '1640131263109'\n          }\n        ]\n      },\n      {\n        arg: { channel: 'index-tickers', instId: 'WNCG-USDT' },\n        data: [\n          {\n            instId: 'WNCG-USDT',\n            idxPx: '2.1675',\n            open24h: '2.1599',\n            high24h: '2.2499',\n            low24h: '2.1524',\n            sodUtc0: '2.1658',\n            sodUtc8: '2.1641',\n            ts: '1640131290649'\n          }\n        ]\n      },\n      {\n        arg: { channel: 'mark-price', instId: 'WNCG-USDT-SWAP' },\n        data: [{ instId: 'WNCG-USDT-SWAP', instType: 'SWAP', markPx: '2.1729', ts: '1640131259180' }]\n      },\n      {\n        arg: { channel: 'open-interest', instId: 'WNCG-USDT-SWAP' },\n        data: [{ instId: 'WNCG-USDT-SWAP', instType: 'SWAP', oi: '644195', oiCcy: '644195', ts: '1640131258756' }]\n      },\n      {\n        arg: { channel: 'funding-rate', instId: 'SOS-USDT-SWAP' },\n        data: [{ fundingTime: '1640851200000', instId: 'SOS-USDT-SWAP', instType: 'SWAP', nextFundingRate: '0.0003' }]\n      },\n      {\n        arg: { channel: 'bbo-tbt', instId: 'BTC-USDT-SWAP' },\n        data: [{ asks: [['38632.4', '727', '0', '22']], bids: [['38632.3', '990', '0', '22']], ts: '1651761120004' }]\n      }\n    ]\n    for (const message of okexSwapV5Messages) {\n      const mappedMessages = okexSwapV5Mapper.map(message, new Date('2021-12-23T00:00:00.000Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    const okexV5WithBookTickerMessages = [\n      {\n        arg: { channel: 'bbo-tbt', instId: 'BTC-USDT-SWAP' },\n        data: [{ asks: [['38632.4', '727', '0', '22']], bids: [['38632.3', '990', '0', '22']], ts: '1651761120004' }]\n      },\n      {\n        arg: { channel: 'tickers', instId: 'WNCG-USDT-SWAP' },\n        data: [\n          {\n            instType: 'SWAP',\n            instId: 'WNCG-USDT-SWAP',\n            last: '2.1729',\n            lastSz: '0',\n            askPx: '2.1738',\n            askSz: '168',\n            bidPx: '2.1737',\n            bidSz: '2',\n            open24h: '2.164',\n            high24h: '2.25',\n            low24h: '2.1493',\n            sodUtc0: '2.1718',\n            sodUtc8: '2.1644',\n            volCcy24h: '803940',\n            vol24h: '803940',\n            ts: '1640131263109'\n          }\n        ]\n      }\n    ]\n\n    const okexWithBookTickerMapper = createMapper('okex-swap', new Date('2022-05-06T00:00:00.000Z'))\n\n    for (const message of okexV5WithBookTickerMessages) {\n      const mappedMessages = okexWithBookTickerMapper.map(message, new Date('2022-05-06T00:00:00.000Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map okex-options messages', () => {\n    const messages = [\n      {\n        table: 'option/depth',\n        action: 'partial',\n        data: [\n          {\n            instrument_id: 'BTC-USD-200207-8500-P',\n            asks: [['0.0005', '305', '0', '1']],\n            bids: [],\n            timestamp: '2020-02-06T23:42:51.121Z',\n            checksum: 1274182169\n          }\n        ]\n      },\n      {\n        table: 'option/depth_l2_tbt',\n        action: 'update',\n        data: [\n          {\n            instrument_id: 'BTC-USD-200327-12000-P',\n            asks: [\n              ['0.234', '0', '0', '0'],\n              ['0.2345', '100', '0', '1']\n            ],\n            bids: [],\n            timestamp: '2020-02-08T00:00:28.101Z',\n            checksum: 1704544030\n          }\n        ]\n      },\n      {\n        table: 'option/summary',\n        data: [\n          {\n            instrument_id: 'ETH-USD-200925-240-P',\n            underlying: 'ETH-USD',\n            best_ask: '0.153',\n            best_bid: '0.1465',\n            best_ask_size: '505',\n            best_bid_size: '505',\n            change_rate: '0',\n            delta: '-0.5402682903',\n            gamma: '1.4602562596',\n            high_24h: '0.153',\n            highest_buy: '0.3565',\n            realized_vol: '0',\n            bid_vol: '0.7495',\n            ask_vol: '0.7813',\n            mark_vol: '0.7637',\n            last: '0.153',\n            leverage: '6.6989',\n            low_24h: '0.153',\n            lowest_sell: '0.0005',\n            mark_price: '0.14927916',\n            theta: '-0.0007332882',\n            vega: '0.002094302',\n            volume_24h: '0',\n            open_interest: '1',\n            estimated_price: '0',\n            timestamp: '2020-06-08T12:52:00.000Z'\n          }\n        ]\n      },\n\n      {\n        table: 'index/ticker',\n        data: [\n          {\n            last: '243.11',\n            open_24h: '237.943',\n            high_24h: '245.43',\n            low_24h: '234.661',\n            instrument_id: 'ETH-USD',\n            timestamp: '2020-06-08T12:52:00.802Z'\n          }\n        ]\n      },\n      {\n        table: 'option/summary',\n        data: [\n          {\n            instrument_id: 'ETH-USD-200925-240-P',\n            underlying: 'ETH-USD',\n            best_ask: '0.153',\n            best_bid: '0.1465',\n            best_ask_size: '505',\n            best_bid_size: '505',\n            change_rate: '0',\n            delta: '-0.5401157512',\n            gamma: '1.460028096',\n            high_24h: '0.153',\n            highest_buy: '0.3565',\n            realized_vol: '0',\n            bid_vol: '0.7507',\n            ask_vol: '0.7813',\n            mark_vol: '0.7637',\n            last: '0.153',\n            leverage: '6.7017',\n            low_24h: '0.153',\n            lowest_sell: '0.0005',\n            mark_price: '0.14921543',\n            theta: '-0.0007332464',\n            vega: '0.0020941549',\n            volume_24h: '0',\n            open_interest: '1',\n            estimated_price: '0',\n            timestamp: '2020-06-08T12:52:03.000Z'\n          }\n        ]\n      },\n      {\n        table: 'option/summary',\n        data: [\n          {\n            instrument_id: 'ETH-USD-200925-180-C',\n            underlying: 'ETH-USD',\n            best_ask: '0.3325',\n            best_bid: '0.3065',\n            best_ask_size: '55',\n            best_bid_size: '25',\n            change_rate: '0',\n            delta: '0.5085224419',\n            gamma: '0.0821676388',\n            high_24h: '0',\n            highest_buy: '0.514',\n            realized_vol: '0',\n            bid_vol: '0.6934',\n            ask_vol: '0.8814',\n            mark_vol: '0.7875',\n            last: '0',\n            leverage: '3.1339',\n            low_24h: '0',\n            lowest_sell: '0.124',\n            mark_price: '0.31908882',\n            theta: '-0.0004980699',\n            vega: '0.0013866212',\n            volume_24h: '0',\n            open_interest: '0',\n            estimated_price: '0',\n            timestamp: '2020-06-08T12:52:00.000Z'\n          }\n        ]\n      },\n      {\n        table: 'option/summary',\n        data: [\n          {\n            instrument_id: 'BTC-USD-200605-9250-P',\n            underlying: 'BTC-USD',\n            best_ask: '0.018',\n            best_bid: '0.0165',\n            best_ask_size: '4',\n            best_bid_size: '50',\n            change_rate: '0.1212',\n            delta: '-0.3860939252',\n            gamma: '5.6271994199',\n            high_24h: '0.019',\n            highest_buy: '0.068',\n            realized_vol: '0',\n            bid_vol: '0.6055',\n            ask_vol: '0.6348',\n            mark_vol: '0.6595',\n            last: '0.0185',\n            leverage: '53.0011',\n            low_24h: '0.0135',\n            lowest_sell: '0.0005',\n            mark_price: '0.01886752',\n            theta: '-0.0031224769',\n            vega: '0.0004103337',\n            volume_24h: '82',\n            open_interest: '486',\n            estimated_price: '0',\n            timestamp: '2020-06-01T00:00:39.117Z'\n          }\n        ]\n      },\n      {\n        table: 'option/depth_l2_tbt',\n        action: 'update',\n        data: [\n          {\n            instrument_id: 'BTC-USD-200710-8750-C',\n            asks: [],\n            bids: [],\n            timestamp: '2020-07-01T00:00:51.209Z',\n            checksum: 1490116368\n          }\n        ]\n      },\n      {\n        table: 'option/summary',\n        data: [\n          {\n            instrument_id: 'ETH-USD-200724-190-C',\n            underlying: 'ETH-USD',\n            best_ask: '',\n            best_bid: '',\n            best_ask_size: '0',\n            best_bid_size: '0',\n            change_rate: '0',\n            delta: '',\n            gamma: '',\n            high_24h: '0',\n            highest_buy: '',\n            realized_vol: '0',\n            bid_vol: '',\n            ask_vol: '',\n            mark_vol: '1.6437',\n            last: '0',\n            leverage: '',\n            low_24h: '0',\n            lowest_sell: '',\n            mark_price: '',\n            theta: '',\n            vega: '0',\n            volume_24h: '0',\n            open_interest: '0',\n            estimated_price: '0',\n            timestamp: '2020-07-24T07:00:00.001Z'\n          }\n        ]\n      },\n      {\n        table: 'option/summary',\n        data: [\n          {\n            instrument_id: 'ETH-USD-200724-310-P',\n            underlying: 'ETH-USD',\n            best_ask: '',\n            best_bid: '',\n            best_ask_size: '0',\n            best_bid_size: '0',\n            change_rate: '0',\n            delta: '-∞',\n            gamma: '∞',\n            high_24h: '0',\n            highest_buy: '4611686018427388',\n            realized_vol: '0',\n            bid_vol: '',\n            ask_vol: '',\n            mark_vol: '2.5227',\n            last: '0',\n            leverage: '0',\n            low_24h: '0',\n            lowest_sell: '4611686018427388',\n            mark_price: '∞',\n            theta: '∞',\n            vega: '0',\n            volume_24h: '0',\n            open_interest: '0',\n            estimated_price: '0',\n            timestamp: '2020-07-24T07:00:00.001Z'\n          }\n        ]\n      },\n      {\n        table: 'option/ticker',\n        data: [\n          {\n            last: '0.0315',\n            open_24h: '0.0295',\n            best_bid: '0.0285',\n            high_24h: '0.0315',\n            low_24h: '0.0295',\n            volume_24h: '10',\n            volume_token_24h: '1',\n            best_ask: '0.0305',\n            open_interest: '354',\n            instrument_id: 'BTC-USD-200327-8000-P',\n            timestamp: '2020-01-31T23:59:06.622Z',\n            best_bid_size: '405',\n            best_ask_size: '305',\n            last_qty: '0'\n          }\n        ]\n      }\n    ]\n\n    let okexOptions = createMapper('okex-options', new Date('2020-02-07'))\n\n    for (const message of messages) {\n      const mappedMessages = okexOptions.map(message, new Date('2019-08-01T00:00:02.9970505Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    okexOptions = createMapper('okex-options', new Date('2020-02-08'))\n\n    for (const message of messages) {\n      const mappedMessages = okexOptions.map(message, new Date('2020-02-08T00:00:02.9970505Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    const okexOptionsV5Mapper = createMapper('okex-options', new Date('2021-12-23T00:00:00.000Z'))\n\n    const okexOptionsV5Messages = [\n      {\n        arg: { channel: 'books-l2-tbt', instId: 'ETH-USD-220128-3500-C' },\n        action: 'update',\n        data: [\n          {\n            asks: [\n              ['0.1795', '500', '0', '1'],\n              ['0.18', '0', '0', '0']\n            ],\n            bids: [],\n            ts: '1640001600039',\n            checksum: 496416989\n          }\n        ]\n      },\n      {\n        arg: { channel: 'index-tickers', instId: 'ETH-USD' },\n        data: [\n          {\n            instId: 'ETH-USD',\n            idxPx: '3814.05',\n            open24h: '3928.05',\n            high24h: '3999.49',\n            low24h: '3764.14',\n            sodUtc0: '3925.3',\n            sodUtc8: '3927.32',\n            ts: '1640001659508'\n          }\n        ]\n      },\n      {\n        arg: { channel: 'open-interest', instId: 'ETH-USD-211231-9600-C' },\n        data: [{ instId: 'ETH-USD-211231-9600-C', instType: 'OPTION', oi: '36', oiCcy: '3.6', ts: '1640183217591' }]\n      },\n      {\n        arg: { channel: 'mark-price', instId: 'ETH-USD-211231-9600-C' },\n        data: [{ instId: 'ETH-USD-211231-9600-C', instType: 'OPTION', markPx: '3.8005764218904408', ts: '1640183727000' }]\n      },\n      {\n        arg: { channel: 'tickers', instId: 'ETH-USD-211231-9600-C' },\n        data: [\n          {\n            instType: 'OPTION',\n            instId: 'ETH-USD-211231-9600-C',\n            last: '0.006',\n            lastSz: '0',\n            askPx: '0.0005',\n            askSz: '111',\n            bidPx: '',\n            bidSz: '',\n            open24h: '0.006',\n            high24h: '0.006',\n            low24h: '0.006',\n            sodUtc0: '0.006',\n            sodUtc8: '0.006',\n            volCcy24h: '0',\n            vol24h: '0',\n            ts: '1640001603301'\n          }\n        ]\n      },\n      {\n        arg: { channel: 'opt-summary', uly: 'ETH-USD' },\n        data: [\n          {\n            instType: 'OPTION',\n            instId: 'ETH-USD-211222-4000-C',\n            uly: 'ETH-USD',\n            delta: '0.1975745164',\n            gamma: '4.7290833601',\n            vega: '0.0002005415',\n            theta: '-0.004262964',\n            lever: '162.472613953',\n            markVol: '0.7794507758',\n            bidVol: '0.7421960156',\n            askVol: '0.8203208593',\n            realVol: '',\n            deltaBS: '0.2038286081',\n            gammaBS: '0.0013437829',\n            thetaBS: '-16.4798150221',\n            vegaBS: '0.7647227087',\n            ts: '1640001659301'\n          },\n          {\n            instType: 'OPTION',\n            instId: 'ETH-USD-211231-9600-C',\n            uly: 'ETH-USD',\n            delta: '0.0034043137',\n            gamma: '0.0275368426',\n            vega: '0.0000192452',\n            theta: '-0.0001676198',\n            lever: '2000',\n            markVol: '1.8880399194',\n            bidVol: '',\n            askVol: '1.9531310937',\n            realVol: '',\n            deltaBS: '0.0037586392',\n            gammaBS: '0.0000090065',\n            thetaBS: '-0.6403023344',\n            vegaBS: '0.0733893466',\n            ts: '1640001659181'\n          }\n        ]\n      },\n      {\n        arg: { channel: 'trades', instId: 'BTC-USD-211224-56000-C' },\n        data: [{ instId: 'BTC-USD-211224-56000-C', tradeId: '376', px: '0.0005', sz: '1', side: 'buy', ts: '1640001607045' }]\n      },\n      {\n        arg: { channel: 'opt-summary', uly: 'ETH-USD' },\n        data: [\n          {\n            instType: 'OPTION',\n            instId: 'ETH-USD-211227-4150-P',\n            uly: 'ETH-USD',\n            delta: '-1.0127414362',\n            gamma: '5.1005664647',\n            vega: '0.0000045884',\n            theta: '-0.0002998793',\n            lever: '0',\n            markVol: '1.30710927',\n            bidVol: '',\n            askVol: '5',\n            realVol: '',\n            deltaBS: '-0.9826286266',\n            gammaBS: '0.000755397',\n            thetaBS: '-43.7640140001',\n            vegaBS: '0.0186786885',\n            ts: '1640588400390'\n          }\n        ]\n      }\n    ]\n\n    for (const message of okexOptionsV5Messages) {\n      const mappedMessages = okexOptionsV5Mapper.map(message, new Date('2021-12-23T00:00:00.000Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map bitfinex messages', () => {\n    const messages = [\n      [6957, 'tu', [382490248, 1564617600489, 0.43426, 218.74], 11, 1564617600570],\n      { event: 'subscribed', channel: 'trades', chanId: 89, symbol: 'tBTCUSD', pair: 'BTCUSD' },\n      [89, [[382489562, 1564617598688, 0.01302607, 10088]], 1, 1564617600401],\n      [89, 'te', [382489563, 1564617600709, 0.00705845, 10087.98969503], 18, 1564617600784],\n      [89, 'tu', [382489563, 1564617600709, 0.00705845, 10087.98969503], 19, 1564617600834],\n\n      { event: 'subscribed', channel: 'book', chanId: 6959, symbol: 'tETHUSD', prec: 'P0', freq: 'F0', len: '100', pair: 'ETHUSD' },\n\n      [\n        6959,\n        [\n          [216, 2, 31.52],\n          [218.75, 1, -13.33333333],\n          [218.76, 1, -2]\n        ],\n        10,\n        1564617600541\n      ],\n      [6959, [219.11, 3, -18.10913638], 45, 1564617601214],\n      [6959, [218.99, 0, -1], 61, 1564617601769],\n      [6959, [218.03, 0, 1], 430, 1564617602483],\n\n      [6959, 'hb', 3603, 1569715249702],\n      { event: 'subscribed', channel: 'ticker', chanId: 103542, symbol: 'tBTCUSD', pair: 'BTCUSD' },\n      [\n        94952,\n        [\n          0.00002271, 657877.4673439099, 0.00002274, 197418.99101772, -0.00000177, -0.0177, 0.00002276, 81802.36928943, 0.00002453,\n          0.00002276\n        ],\n        9797,\n        1633910436166,\n        'ticker',\n        'MATIC:BTC'\n      ],\n      { event: 'subscribed', channel: 'ticker', chanId: 129136, symbol: 'fBTC', currency: 'BTC' },\n\n      [\n        129136,\n        [\n          0.000012589041095890411,\n          0.00000788,\n          90,\n          150.27107061000004,\n          4.5e-7,\n          2,\n          1775.8614332800003,\n          -0.00000245,\n          -0.0245,\n          9e-7,\n          6320.78681972,\n          0.00001729,\n          1e-8,\n          null,\n          null,\n          14121.77787059\n        ],\n        92,\n        1633910430074,\n        'ticker',\n        'BTC'\n      ]\n    ]\n    const bitfinex = createMapper('bitfinex')\n    for (const message of messages) {\n      const mappedMessages = bitfinex.map(message, new Date('2019-08-01T00:00:02.4965581Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map bitfinex book ticker messages with trailing null placeholder', () => {\n    const bitfinex = createMapper('bitfinex')\n    const mappedMessages = bitfinex.map(\n      [\n        147794,\n        [71741, 0.26742262, 71760, 1.22665447, 647, 0.00909896, 71754, 900.8715945, 73120, 70434, null],\n        1,\n        1775779200144,\n        'ticker',\n        'BTCUSD'\n      ],\n      new Date('2026-04-10T00:00:00.164Z')\n    )\n\n    expect(mappedMessages).toMatchSnapshot()\n  })\n\n  test('ignore bitfinex funding ticker messages for book ticker', () => {\n    const bitfinex = createMapper('bitfinex')\n    const mappedMessages = bitfinex.map(\n      [\n        129136,\n        [\n          0.000012589041095890411,\n          0.00000788,\n          90,\n          150.27107061000004,\n          4.5e-7,\n          2,\n          1775.8614332800003,\n          -0.00000245,\n          -0.0245,\n          9e-7,\n          6320.78681972,\n          0.00001729,\n          1e-8,\n          null,\n          null,\n          14121.77787059\n        ],\n        92,\n        1633910430074,\n        'ticker',\n        'BTC'\n      ],\n      new Date('2021-10-10T23:20:30.074Z')\n    )\n\n    expect(mappedMessages).toMatchSnapshot()\n  })\n\n  test('map bitfinex derivatives messages', () => {\n    const messages = [\n      { event: 'subscribed', channel: 'status', chanId: 127758, key: 'deriv:tBTCF0:USTF0' },\n      [127758, [1569715201000, null, 173.535, 173.57, null, 101052.04082882, null, 1569744000000, 0, 0, null, null], 7, 1569715201369],\n      [127758, 'hb', 3603, 1569715249702],\n      [\n        127758,\n        [1569801649000, null, 8090.5, 8051.45, null, 101052.31005666, null, 1569830400000, 0.00000843, 16, null, 0.00196337],\n        3256,\n        1569801652225\n      ],\n      [\n        127758,\n        [\n          1570492830000,\n          null,\n          8192.7,\n          8197.3,\n          null,\n          101120.80328179,\n          null,\n          1570521600000,\n          -1.4e-7,\n          9,\n          null,\n          0,\n          null,\n          null,\n          8196.973333333333\n        ],\n        1116,\n        1570492832311\n      ],\n      [\n        127758,\n        [\n          1570493698000,\n          null,\n          8210.5,\n          8208.45,\n          null,\n          101120.80328179,\n          null,\n          1570521600000,\n          0.00000725,\n          296,\n          null,\n          0,\n          null,\n          null,\n          8208.893333333333\n        ],\n        243027,\n        1570493699520\n      ],\n      [\n        12778,\n        [\n          1570493698000,\n          null,\n          8210.5,\n          8208.45,\n          null,\n          101120.80328179,\n          null,\n          1570521600000,\n          0.00000725,\n          296,\n          null,\n          0,\n          null,\n          null,\n          8208.893333333333\n        ],\n        243027,\n        1570493699520\n      ],\n      [23918, [9163.7, 0, 1], 961871, 1590596820151, 'book', 'BTCF0:USTF0'],\n      [23917, [45761787004, 9170, -0.06039856], 961865, 1590596820150, 'raw_book', 'BTCF0:USTF0'],\n      [\n        23928,\n        [\n          1590596819000,\n          null,\n          9166.30324769,\n          9169.35,\n          null,\n          1372762.95402242,\n          null,\n          1590624000000,\n          -0.00001415,\n          533,\n          null,\n          0,\n          null,\n          null,\n          9170.3525,\n          null,\n          null,\n          3005.25851857\n        ],\n        962044,\n        1590596820986,\n        'status',\n        'BTCF0:USTF0'\n      ],\n      [23925, 'hb', 924771, 1590596648661, 'trades', 'BTCDOMF0:USTF0'],\n      [23916, 'te', [452025730, 1590593199934, 0.005, 9135.5], 11125, 1590593199956, 'trades', 'BTCF0:USTF0'],\n      [23916, 'tu', [452025730, 1590593199934, 0.005, 9135.5], 11141, 1590593199986, 'trades', 'BTCF0:USTF0'],\n      [\n        386841,\n        [['pos', 143683674, 1593522802742, null, 'tBTCF0:USTF0', 0.00268657, 9135.972557016, null, 0, 1, null, 9080]],\n        7,\n        1593566593351,\n        'liquidations',\n        'global'\n      ],\n      [386841, 'hb', 2043, 1593566613422, 'liquidations', 'global'],\n      [\n        386841,\n        [['pos', 143683674, 1593522802742, null, 'tBTCF0:USTF0', 0.00268657, 9135.972557016, null, 0, 1, null, 9080]],\n        7,\n        1593566593351\n      ],\n      {\n        event: 'subscribed',\n        channel: 'status',\n        chanId: 386841,\n        key: 'liq:global'\n      },\n      [\n        386841,\n        [['pos', 143683674, 1593522802742, null, 'tBTCF0:USTF0', 0.00268657, 9135.972557016, null, 0, 1, null, 9080]],\n        7,\n        1593566593351\n      ],\n      [\n        907,\n        [['pos', 143679087, 1594036710543, null, 'tETHF0:USTF0', -4.56671421, 222.248906484356, null, 1, 1, null, 235.52]],\n        1206215,\n        1594036710595,\n        'liquidations',\n        'global'\n      ],\n      [\n        907,\n        [['pos', 143679087, 1594036710534, null, 'tETHF0:USTF0', -8.6007, 222.248906484356, null, 0, 1, null, null]],\n        1206216,\n        1594036710596,\n        'liquidations',\n        'global'\n      ]\n    ]\n\n    const bitfinexDerivativesMapper = createMapper('bitfinex-derivatives')\n    for (const message of messages) {\n      const mappedMessages = bitfinexDerivativesMapper.map(message, new Date('2019-08-01T00:00:02.4965581Z'))\n\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map bitfinex derivatives book ticker messages with trailing null placeholder', () => {\n    const bitfinexDerivativesMapper = createMapper('bitfinex-derivatives')\n    const mappedMessages = bitfinexDerivativesMapper.map(\n      [\n        138325,\n        [71800, 7.47322491, 71847, 6.16257014, 671, 0.00942826, 71840, 1393.02703679, 73198, 70493, null],\n        1,\n        1775779200139,\n        'ticker',\n        'BTCF0:USTF0'\n      ],\n      new Date('2026-04-10T00:00:00.152Z')\n    )\n\n    expect(mappedMessages).toMatchSnapshot()\n  })\n\n  test('map binance messages', () => {\n    const messages = [\n      {\n        stream: 'bnbbtc@trade',\n        data: {\n          e: 'trade',\n          E: 1554076800945,\n          s: 'BNBBTC',\n          t: 40756030,\n          p: '0.00426990',\n          q: '33.82000000',\n          b: 133829535,\n          a: 133829504,\n          T: 1554076800940,\n          m: false,\n          M: true\n        }\n      },\n      {\n        stream: 'bnbbtc@trade',\n        data: {\n          e: 'trade',\n          E: 1567296001038,\n          s: 'BNBBTC',\n          t: 60276726,\n          p: '0.00219650',\n          q: '6.48000000',\n          b: 255533165,\n          a: 255532831,\n          T: 1567296001034,\n          m: true,\n          M: true\n        }\n      },\n      {\n        stream: 'btcusdt@bookTicker',\n        data: { u: 1127645101, s: 'BTCUSDT', b: '8010.00000000', B: '0.14245900', a: '8012.15000000', A: '0.03120100' }\n      },\n      {\n        stream: 'dogebnb@ticker',\n        data: {\n          e: '24hrTicker',\n          E: 1569805259092,\n          s: 'DOGEBNB',\n          p: '0.00000291',\n          P: '2.068',\n          w: '0.00014188',\n          x: '0.00014069',\n          c: '0.00014360',\n          Q: '51135.00000000',\n          b: '0.00014365',\n          B: '7080.00000000',\n          a: '0.00014498',\n          A: '275033.00000000',\n          o: '0.00014069',\n          h: '0.00014550',\n          l: '0.00013851',\n          v: '20014582.00000000',\n          q: '2839.62578157',\n          O: 1569718859088,\n          C: 1569805259088,\n          F: 64171,\n          L: 64684,\n          n: 514\n        }\n      },\n\n      {\n        stream: 'btcusdc@depthSnapshot',\n        generated: true,\n        data: {\n          lastUpdateId: 16084251,\n          bids: [\n            ['4091.92000000', '0.00976500'],\n            ['4089.09000000', '0.76393100']\n          ],\n          asks: [\n            ['4095.99000000', '2.31652000'],\n            ['4096.00000000', '1.42541900']\n          ]\n        }\n      },\n      {\n        stream: 'btcusdc@depth',\n        data: {\n          e: 'depthUpdate',\n          E: 1554076801699,\n          s: 'BTCUSDC',\n          U: 16084252,\n          u: 16084253,\n          b: [['4084.88000000', '0.00000000']],\n          a: [['4111.84000000', '0.00000000']]\n        }\n      },\n\n      {\n        stream: 'gntbtc@depth',\n        data: {\n          e: 'depthUpdate',\n          E: 1554076807698,\n          s: 'GNTBTC',\n          U: 41603407,\n          u: 41603413,\n          b: [\n            ['0.00002246', '1215.00000000'],\n            ['0.00002245', '2673.00000000'],\n            ['0.00002244', '390.00000000'],\n            ['0.00002239', '2126.00000000']\n          ],\n          a: [\n            ['0.00002267', '0.00000000'],\n            ['0.00002269', '7840.00000000']\n          ]\n        }\n      },\n      {\n        stream: 'gntbtc@depth',\n        data: {\n          e: 'depthUpdate',\n          E: 1554076808698,\n          s: 'GNTBTC',\n          U: 41603414,\n          u: 41603418,\n          b: [\n            ['0.00002248', '114.00000000'],\n            ['0.00002246', '375.00000000']\n          ],\n          a: [['0.00002253', '3945.00000000']]\n        }\n      },\n      {\n        stream: 'gntbtc@depthSnapshot',\n        generated: true,\n        data: {\n          lastUpdateId: 41603417,\n          bids: [\n            ['0.00002248', '114.00000000'],\n            ['0.00002246', '370.00000000'],\n            ['0.00002245', '2673.00000000'],\n            ['0.00002244', '390.00000000'],\n            ['0.00002243', '3425.00000000']\n          ],\n          asks: [\n            ['0.00002253', '3945.00000000'],\n            ['0.00002256', '50641.00000000'],\n            ['0.00002258', '1777.00000000']\n          ]\n        }\n      },\n      {\n        stream: 'gntbtc@depth',\n        data: {\n          e: 'depthUpdate',\n          E: 1554076809699,\n          s: 'GNTBTC',\n          U: 41603417,\n          u: 41603419,\n          b: [],\n          a: [\n            ['0.00002257', '0.00000000'],\n            ['0.00002262', '6080.00000000']\n          ]\n        }\n      }\n    ]\n\n    const binanceMapper = createMapper('binance', new Date())\n    for (const message of messages) {\n      const mappedMessages = binanceMapper.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map binance dex messages', () => {\n    const messages = [\n      {\n        stream: 'depthSnapshot',\n        generated: true,\n        data: {\n          symbol: 'BLINK-9C6_BNB',\n          bids: [['0.00003212', '7000.00000000']],\n          asks: [['0.00005325', '29900.00000000']],\n          height: 16926984\n        }\n      },\n      {\n        stream: 'marketDiff',\n        data: {\n          e: 'depthUpdate',\n          E: 1561939201,\n          s: 'BLINK-9C6_BNB',\n          b: [\n            ['0.00000400', '0.00000000'],\n            ['0.00000005', '350000.00000000']\n          ],\n          a: [['0.00005253', '0.00000000']]\n        }\n      },\n      {\n        stream: 'trades',\n        data: [\n          {\n            e: 'trade',\n            E: 16927042,\n            s: 'PHB-2DF_BNB',\n            t: '16927042-0',\n            p: '0.00042701',\n            q: '2070.00000000',\n            b: '31363F61C6A1E3D956435BEC81363B8903BD9B8D-41617',\n            a: '3B086ADDF228A40CDB976807ACA62679608B22A1-336',\n            T: 1561939222635379202,\n            sa: 'bnb18vyx4h0j9zjqekuhdqr6ef3x09sgkg4py604hr',\n            ba: 'bnb1xymr7cwx583aj4jrt0kgzd3m3ypmmxud5ldpfg'\n          },\n          {\n            e: 'trade',\n            E: 16927042,\n            s: 'PHB-2DF_BNB',\n            t: '16927042-1',\n            p: '0.00042701',\n            q: '2930.00000000',\n            b: 'A9D1434FE2C1082A52FF68E6D04E292E8CB54B2A-150',\n            a: '3B086ADDF228A40CDB976807ACA62679608B22A1-336',\n            T: 1561939222635379202,\n            sa: 'bnb18vyx4h0j9zjqekuhdqr6ef3x09sgkg4py604hr',\n            ba: 'bnb148g5xnlzcyyz55hldrndqn3f96xt2je24ctzc8'\n          }\n        ]\n      },\n      {\n        stream: 'ticker',\n        data: {\n          e: '24hrTicker',\n          E: 1561939223,\n          s: 'RAVEN-F66_BNB',\n          p: '-0.00000073',\n          P: '-0.00860000',\n          w: '0.00008289',\n          x: '0.00008362',\n          c: '0.00008398',\n          Q: '9200.00000000',\n          b: '0.00008379',\n          B: '394500.00000000',\n          a: '0.00008414',\n          A: '646900.00000000',\n          o: '0.00008471',\n          h: '0.00008590',\n          l: '0.00008114',\n          v: '27305600.00000000',\n          q: '2263.48604700',\n          O: 1561852822969,\n          C: 1561939222969,\n          F: '16691022-0',\n          L: '16916084-0',\n          n: 276\n        }\n      },\n      {\n        stream: 'ticker',\n        data: {\n          e: '24hrTicker',\n          E: 1633913580,\n          s: 'ARN-71B_BNB',\n          p: '0.00000438',\n          P: '0.03990000',\n          w: '0.00010380',\n          x: '0.00011399',\n          c: '0.00011399',\n          Q: '50.00000000',\n          b: '0.00010500',\n          B: '200.00000000',\n          a: '0.00011100',\n          A: '2110.00000000',\n          o: '0.00010961',\n          h: '0.00011399',\n          l: '0.00009701',\n          v: '95530.00000000',\n          q: '9.91591940',\n          O: 1633827179000,\n          C: 1633913579000,\n          F: '194931754-0',\n          L: '195141197-1',\n          n: 121\n        }\n      }\n    ]\n\n    const binanceDexMapper = createMapper('binance-dex')\n    for (const message of messages) {\n      const mappedMessages = binanceDexMapper.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map binance futures messages', () => {\n    const messages = [\n      {\n        stream: 'btcusdt@aggTrade',\n        data: { e: 'aggTrade', E: 1568693103463, s: 'BTCUSDT', p: '10223.74', q: '0.236', f: 181349, l: 181349, T: 1568693103463, m: false }\n      },\n\n      {\n        stream: 'btcusdt@ticker',\n        data: {\n          e: '24hrTicker',\n          E: 1568693103467,\n          s: 'BTCUSDT',\n          p: '-88.17',\n          P: '-0.855',\n          w: '10223.98',\n          c: '10223.74',\n          Q: '2.097',\n          o: '10311.91',\n          h: '10329.38',\n          l: '10080.70',\n          v: '20248.900',\n          q: '207024349.13',\n          O: 1568606704662,\n          C: 1568693103463,\n          F: 148927,\n          L: 181349,\n          n: 32423\n        }\n      },\n      {\n        stream: 'btcusdt@markPrice',\n        data: { e: 'markPriceUpdate', E: 1569888003001, s: 'BTCUSDT', p: '8291.34697815', r: '0.00010000', T: 1569916800000 }\n      },\n      {\n        stream: 'btcusdt@ticker',\n        data: {\n          e: '24hrTicker',\n          E: 1568693103467,\n          s: 'BTCUSDT',\n          p: '-88.17',\n          P: '-0.855',\n          w: '10223.98',\n          c: '10223.74',\n          Q: '2.097',\n          o: '10311.91',\n          h: '10329.38',\n          l: '10080.70',\n          v: '20248.900',\n          q: '207024349.13',\n          O: 1568606704662,\n          C: 1568693103463,\n          F: 148927,\n          L: 181349,\n          n: 32423\n        }\n      },\n      {\n        stream: 'btcusdt@trade',\n        data: { e: 'trade', E: 1574381164089, T: 1574381164086, s: 'BTCUSDT', t: 10934580, p: '7627.60', q: '0.044', m: false }\n      },\n\n      {\n        stream: 'btcusdt@depth@100ms',\n        data: {\n          e: 'depthUpdate',\n          E: 1573948821952,\n          T: 1573948821948,\n          s: 'BTCUSDT',\n          U: 687687944,\n          u: 687687946,\n          pu: 687687946,\n          b: [['8493.78', '0.162']],\n          a: [['4096.00000000', '2.42541900']]\n        }\n      },\n      {\n        stream: 'btcusdt@depthSnapshot',\n        generated: true,\n        data: {\n          lastUpdateId: 687687945,\n          bids: [['8488.36', '1.501']],\n          asks: [\n            ['4095.99000000', '2.31652000'],\n            ['4096.00000000', '1.42541900']\n          ]\n        }\n      },\n      {\n        stream: 'btcusdt@depth@100ms',\n        data: {\n          e: 'depthUpdate',\n          E: 1573948821952,\n          T: 1573948821948,\n          s: 'BTCUSDT',\n          U: 687687944,\n          u: 687687946,\n          pu: 687690832,\n          b: [['8493.78', '0.162']],\n          a: []\n        }\n      },\n      { stream: 'btcusdt@openInterest', generated: true, data: { symbol: 'BTCUSDT', openInterest: '26286.181' } },\n      {\n        stream: 'btcusdt@markPrice@1s',\n        data: {\n          e: 'markPriceUpdate',\n          E: 1597536008000,\n          s: 'BTCUSDT',\n          p: '11857.56000000',\n          i: '11851.86949091',\n          r: '0.00015640',\n          T: 1597564800000\n        }\n      },\n      {\n        stream: 'ethusdt@trade',\n        data: {\n          e: 'trade',\n          E: 1596034530241,\n          T: 1596034530235,\n          s: 'ETHUSDT',\n          t: 73701056,\n          p: '2366.55',\n          q: '0.070',\n          X: 'INSURANCE_FUND',\n          m: true\n        }\n      },\n      {\n        stream: 'btcusdt@trade',\n        data: {\n          e: 'trade',\n          E: 1596240000596,\n          T: 1596240000519,\n          s: 'BTCUSDT',\n          t: 173525189,\n          p: '11343.67',\n          q: '0.467',\n          X: 'MARKET',\n          m: true\n        }\n      },\n      {\n        stream: 'btcusdt@forceOrder',\n        data: {\n          e: 'forceOrder',\n          E: 1584059031426,\n          o: {\n            s: 'BTCUSDT',\n            S: 'BUY',\n            o: 'LIMIT',\n            f: 'IOC',\n            q: '0.014',\n            p: '4793.91',\n            ap: '4706.04',\n            X: 'FILLED',\n            l: '0.015',\n            z: '0.014',\n            T: 1584059031421\n          }\n        }\n      },\n      {\n        stream: 'btcbusd_210129@markPrice@1s',\n        data: {\n          e: 'markPriceUpdate',\n          E: 1609830121004,\n          s: 'BTCBUSD_210129',\n          p: '31799.27730000',\n          P: '31235.82439517',\n          i: '31307.03400000',\n          r: '0.00000000',\n          T: 0\n        }\n      },\n      {\n        stream: 'btcusdt@bookTicker',\n        data: {\n          e: 'bookTicker',\n          u: 185130926750,\n          s: 'BTCUSDT',\n          b: '33134.42',\n          B: '0.170',\n          a: '33139.39',\n          A: '0.380',\n          T: 1612137603568,\n          E: 1612137603571\n        }\n      }\n    ]\n\n    const binanceFuturesMapper = createMapper('binance-futures', new Date())\n    for (const message of messages) {\n      const mappedMessages = binanceFuturesMapper.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map binance delivery messages', () => {\n    const messages = [\n      { id: 1000, result: null },\n      {\n        stream: 'btcusd_200925@depthSnapshot',\n        generated: true,\n        data: {\n          lastUpdateId: 37471290,\n          E: 1592265600231,\n          T: 1592265600229,\n          symbol: 'BTCUSD_200925',\n          pair: 'BTCUSD',\n          bids: [['9504.8', '181']],\n          asks: [['99999.0', '4090']]\n        }\n      },\n      {\n        stream: 'btcusd_200925@depth@0ms',\n        data: {\n          e: 'depthUpdate',\n          E: 1592265600422,\n          T: 1592265600420,\n          s: 'BTCUSD_200925',\n          ps: 'BTCUSD',\n          U: 37471290,\n          u: 37471292,\n          pu: 37471291,\n          b: [['9498.9', '13']],\n          a: []\n        }\n      },\n      {\n        stream: 'btcusd_200925@markPrice@1s',\n        data: { e: 'markPriceUpdate', E: 1592265602000, s: 'BTCUSD_200925', p: '9501.15723333', P: '9429.39675000' }\n      },\n      { stream: 'btcusd@indexPrice@1s', data: { e: 'indexPriceUpdate', E: 1592265601001, i: 'BTCUSD', p: '9429.39675000' } },\n      {\n        stream: 'btcusd_200925@depth@0ms',\n        data: {\n          e: 'depthUpdate',\n          E: 1592265602212,\n          T: 1592265602210,\n          s: 'BTCUSD_200925',\n          ps: 'BTCUSD',\n          U: 37471322,\n          u: 37471322,\n          pu: 37471321,\n          b: [['9504.8', '181']],\n          a: []\n        }\n      },\n      {\n        stream: 'btcusd_200925@ticker',\n        data: {\n          e: '24hrTicker',\n          E: 1592265616654,\n          s: 'BTCUSD_200925',\n          ps: 'BTCUSD',\n          p: '72.9',\n          P: '0.773',\n          w: '9271.96027324',\n          c: '9504.9',\n          Q: '1',\n          o: '9432.0',\n          h: '9769.5',\n          l: '8621.4',\n          v: '1967607',\n          q: '21221.04648872',\n          O: 1592179200000,\n          C: 1592265616653,\n          F: 100191,\n          L: 173906,\n          n: 73715\n        }\n      },\n      {\n        stream: 'btcusd_200925@openInterest',\n        generated: true,\n        data: { symbol: 'BTCUSD_200925', pair: 'BTCUSD', openInterest: '15279', contractType: 'CURRENT_QUARTER', time: 1592265372706 }\n      },\n      {\n        stream: 'btcusd_200925@trade',\n        data: { e: 'trade', E: 1592265616654, T: 1592265616653, s: 'BTCUSD_200925', t: 173906, p: '9504.9', q: '1', X: 'MARKET', m: false }\n      },\n      {\n        stream: 'btcusd_200925@forceOrder',\n        data: {\n          e: 'forceOrder',\n          E: 1594622954023,\n          o: {\n            s: 'BTCUSD_200925',\n            ps: 'BTCUSD',\n            S: 'SELL',\n            o: 'LIMIT',\n            f: 'IOC',\n            q: '3',\n            p: '9314.5',\n            ap: '9352.7',\n            X: 'FILLED',\n            l: '3',\n            z: '3',\n            T: 1594622954021\n          }\n        }\n      },\n      {\n        stream: 'etcusdt@trade',\n        data: { e: 'trade', E: 1618716867643, T: 1618716867639, s: 'ETCUSDT', t: 84242137, p: '852.722', q: '0.05', X: 'ADL', m: true }\n      },\n      {\n        stream: 'bnbusd_perp@bookTicker',\n        data: {\n          u: 129067660302,\n          e: 'bookTicker',\n          s: 'BNBUSD_PERP',\n          ps: 'BNBUSD',\n          b: '353.401',\n          B: '271',\n          a: '353.477',\n          A: '6',\n          T: 1622505600000,\n          E: 1622505600005\n        }\n      }\n    ]\n\n    const binanceDelivery = createMapper('binance-delivery', new Date())\n    for (const message of messages) {\n      const mappedMessages = binanceDelivery.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map ftx us messages', () => {\n    const messages = [\n      { type: 'subscribed', channel: 'trades', market: 'USDT/USD' },\n      {\n        channel: 'orderbook',\n        market: 'ETH/USD',\n        type: 'partial',\n        data: {\n          time: 1592265601.2727785,\n          checksum: 1225528673,\n          bids: [[231.08, 2.456]],\n          asks: [[231.09, 2.393]],\n          action: 'partial'\n        }\n      },\n      {\n        channel: 'orderbook',\n        market: 'ETH/USD',\n        type: 'update',\n        data: { time: 1592265602.3259132, checksum: 1225528673, bids: [], asks: [], action: 'update' }\n      },\n      {\n        channel: 'orderbook',\n        market: 'BTC/USD',\n        type: 'update',\n        data: { time: 1592271542.2219546, checksum: 1296823591, bids: [[9398.5, 3.4959]], asks: [[9400.0, 3.1373]], action: 'update' }\n      },\n      {\n        channel: 'trades',\n        market: 'BTC/USD',\n        type: 'update',\n        data: [{ id: 1711, price: 9469.0, size: 0.031, side: 'sell', liquidation: false, time: '2020-06-17T06:31:19.399582+00:00' }]\n      }\n    ]\n\n    const ftxUSMapper = createMapper('ftx-us', new Date())\n    for (const message of messages) {\n      const mappedMessages = ftxUSMapper.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map delta messages', () => {\n    const messages = [\n      {\n        type: 'subscriptions',\n        channels: [\n          {\n            name: 'ticker',\n            symbols: ['BTCUSD']\n          }\n        ]\n      },\n      {\n        low: 9388,\n        high: 9585.5,\n        open: 9433.5,\n        close: 9522,\n        volume: 7101726,\n        symbol: 'BTCUSD',\n        timestamp: 1592351998339000,\n        product_id: 27,\n        type: 'ticker'\n      },\n      {\n        buy: [{ limit_price: '9522.0', size: 449313 }],\n        last_sequence_no: 1592351999728324,\n        product_id: 27,\n        sell: [{ limit_price: '9522.5', size: 11100 }],\n        symbol: 'BTCUSD',\n        timestamp: 1592351999719000,\n        type: 'l2_orderbook'\n      },\n      {\n        annualized_basis: '-0.109500000000000000',\n        price: '9524.170821',\n        price_band: { lower_limit: '9286.281029025000000000000000', upper_limit: '9762.500568975000000000000000' },\n        product_id: 139,\n        symbol: 'MARK:BTCUSDT',\n        timestamp: 1592351997873000,\n        type: 'mark_price'\n      },\n      {\n        funding_rate: '-0.01000000000000000000000000000',\n        product_id: 139,\n        symbol: 'BTCUSDT',\n        timestamp: 1592351997873000,\n        type: 'funding_rate'\n      },\n      {\n        buyer_role: 'maker',\n        price: '9522.0',\n        product_id: 27,\n        seller_role: 'taker',\n        size: 4662,\n        symbol: 'BTCUSDT',\n        timestamp: 1592352002423123,\n        type: 'recent_trade'\n      },\n      {\n        buy: [{ limit_price: '85.0', size: 1 }],\n        sell: [{ limit_price: '12536.5', size: 8 }],\n        last_sequence_no: 96542791,\n        product_id: 27,\n        type: 'l2_orderbook',\n        symbol: 'BTCUSD'\n      },\n      {\n        funding_rate: '0.08354928018352788781686920000',\n        product_id: 37,\n        symbol: 'XTZBTC',\n        timestamp: 1593561648381531,\n        type: 'funding_rate'\n      },\n      {\n        funding_rate: 0.010000000000000002,\n        funding_rate_8h: 0.010000000000000002,\n        next_funding_realization: 1595404800000000,\n        predicted_funding_rate: 0.01,\n        predicted_funding_rate_8h: 0.01,\n        product_id: 65,\n        symbol: 'LINKUSDT',\n        timestamp: 1595376026629157,\n        type: 'funding_rate'\n      },\n      {\n        funding_rate_8h: 10.95,\n        next_funding_realization: 1594396800000000,\n        predicted_funding_rate_8h: 0.01,\n        product_id: 277,\n        symbol: 'ETHBTC',\n        timestamp: 1594396559970784,\n        type: 'funding_rate'\n      }\n    ]\n\n    const v2Messages = [\n      {\n        buyer_role: 'maker',\n        price: '9522.0',\n        product_id: 27,\n        seller_role: 'taker',\n        size: 4662,\n        symbol: 'BTCUSDT',\n        timestamp: 1592352002423123,\n        type: 'recent_trade'\n      },\n      {\n        buyer_role: 'maker',\n        price: '50.34',\n        product_id: 188,\n        seller_role: 'taker',\n        size: 46,\n        symbol: 'LTCUSDT',\n        timestamp: 1602585251855645,\n        type: 'all_trades'\n      },\n      {\n        close: 11540.5,\n        high: 11717.5,\n        low: 11225,\n        mark_price: '11537.538898',\n        open: 11332.5,\n        product_id: 27,\n        size: 5748794,\n        spot_price: '11537.623333333331',\n        symbol: 'BTCUSD',\n        timestamp: 1602585247446827,\n        turnover: 499.8070683500003,\n        turnover_symbol: 'BTC',\n        turnover_usd: 5748598.978422551,\n        type: 'v2/ticker',\n        volume: 5748794\n      },\n      {\n        funding_rate: 0.01,\n        funding_rate_8h: 0.01,\n        next_funding_realization: 1602604800000000,\n        predicted_funding_rate: 0.010000000000000002,\n        predicted_funding_rate_8h: 0.010000000000000002,\n        product_id: 27,\n        symbol: 'BTCUSD',\n        timestamp: 1602585247941647,\n        type: 'funding_rate'\n      },\n      {\n        annualized_basis: '-0.0964916589141385196387753250',\n        price: '11536.746127',\n        price_band: { lower_limit: '11248.25543107500000000000000', upper_limit: '11825.08904292500000000000000' },\n        product_id: 27,\n        symbol: 'MARK:BTCUSD',\n        timestamp: 1602585252946976,\n        type: 'mark_price'\n      },\n      {\n        buy: [{ limit_price: '344.191', size: '1.000000000000000000' }],\n        last_sequence_no: 1616950810982556,\n        last_updated_at: 1616950805954000,\n        product_id: 1063,\n        sell: [{ limit_price: '344.327', size: '1.000000000000000000' }],\n        symbol: 'AAVEUSDT',\n        timestamp: 1616950810982556,\n        type: 'l2_orderbook'\n      },\n      {\n        buyer_role: 'taker',\n        price: '0.20000',\n        product_id: 5160,\n        seller_role: 'taker',\n        size: '215.45',\n        symbol: 'DETO_USDT',\n        timestamp: 1617199499982823,\n        type: 'all_trades'\n      }\n    ]\n\n    const newOrderBookMessages = [\n      {\n        action: 'snapshot',\n        asks: [['89.60', '1164']],\n        bids: [\n          ['87.00', '900'],\n          ['86.55', '3500']\n        ],\n        cs: 220729409,\n        sequence_no: 3660223,\n        symbol: 'C-ETH-1900-280423',\n        timestamp: 1680307203021223,\n        type: 'l2_updates'\n      },\n      {\n        action: 'update',\n        asks: [['704.80', '1836']],\n        bids: [['668.30', '0']],\n        cs: 2728204214,\n        sequence_no: 3660224,\n        symbol: 'C-ETH-1900-280423',\n        timestamp: 1680307203771239,\n        type: 'l2_updates'\n      },\n      {\n        ask_qty: '1950',\n        best_ask: '4964.5',\n        best_bid: '4802',\n        bid_qty: '4356',\n        last_sequence_no: 1680307203966299,\n        last_updated_at: 1680307203784000,\n        product_id: 103877,\n        symbol: 'P-BTC-33000-210423',\n        timestamp: 1680307203966299,\n        type: 'l1_orderbook'\n      },\n      {\n        action: 'snapshot',\n        asks: [\n          ['805.0', '3894'],\n          ['809.0', '4697'],\n          ['819.0', '7091'],\n          ['841.0', '10706'],\n          ['877.0', '10022'],\n          ['913.0', '6143'],\n          ['948.0', '7047'],\n          ['994.0', '8084'],\n          ['1055.0', '9274'],\n          ['1135.0', '10639']\n        ],\n        bids: [\n          ['772.0', '6490'],\n          ['767.0', '7828'],\n          ['757.0', '11819'],\n          ['736.0', '17844'],\n          ['699.0', '16703'],\n          ['663.0', '10238'],\n          ['628.0', '11745'],\n          ['582.0', '13473'],\n          ['521.0', '15457'],\n          ['441.0', '17732'],\n          ['0.1', '15000']\n        ],\n        cs: 882652872,\n        sequence_no: 211607,\n        symbol: 'C-BTC-27700-010423',\n        timestamp: 1680307999563,\n        type: 'l2_updates'\n      }\n    ]\n\n    let deltaMapper = createMapper('delta', new Date('2020-10-13T00:00:01.2750543Z'))\n    for (const message of messages) {\n      const mappedMessages = deltaMapper.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    deltaMapper = createMapper('delta', new Date('2020-10-14T00:00:01.2750543Z'))\n\n    for (const message of v2Messages) {\n      const mappedMessages = deltaMapper.map(message, new Date('2020-10-14T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    deltaMapper = createMapper('delta', new Date('2023-04-01T00:00:00.000Z'))\n\n    for (const message of newOrderBookMessages) {\n      const mappedMessages = deltaMapper.map(message, new Date('2023-04-01T00:00:00.000Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map cryptofacilities messages', () => {\n    const messages = [\n      { feed: 'book', product_id: 'FI_LTCUSD_190426', side: 'sell', seq: 2139287, price: 60.58, qty: 0.0 },\n      {\n        feed: 'ticker',\n        product_id: 'FI_LTCUSD_190628',\n        bid: 60.57,\n        ask: 60.62,\n        bid_size: 10000.0,\n        ask_size: 150.0,\n        volume: 66428.0,\n        dtm: 88,\n        leverage: '50x',\n        index: 60.31,\n        premium: 0.5,\n        last: 60.69,\n        time: 1554076800684,\n        change: 0.4,\n        suspended: false,\n        tag: 'quarter',\n        pair: 'LTC:USD',\n        openInterest: 1692330.0,\n        markPrice: 60.61,\n        maturityTime: 1561734000000\n      },\n      {\n        feed: 'ticker',\n        product_id: 'PI_LTCUSD',\n        bid: 60.35,\n        ask: 60.38,\n        bid_size: 10000.0,\n        ask_size: 20000.0,\n        volume: 182179.0,\n        dtm: -17987,\n        leverage: '50x',\n        index: 60.31,\n        premium: 0.1,\n        last: 60.35,\n        time: 1554076800695,\n        change: 0.1,\n        funding_rate: 1.739491032443e-6,\n        funding_rate_prediction: 1.739491032443e-6,\n        suspended: false,\n        tag: 'perpetual',\n        pair: 'LTC:USD',\n        openInterest: 631360.0,\n        markPrice: 60.38,\n        maturityTime: 0,\n        relative_funding_rate: 1.04908704166667e-4,\n        relative_funding_rate_prediction: 1.04908704166667e-4,\n        next_funding_rate_time: 1554091200000\n      },\n      { feed: 'trade', product_id: 'FI_XBTUSD_190426', side: 'buy', type: 'fill', seq: 5271, time: 1554076802518, qty: 3.0, price: 4088.5 },\n      {\n        feed: 'trade',\n        product_id: 'FI_XBTUSD_190927',\n        uid: '06842286-3a57-412c-8cb5-b61db36903d3',\n        side: 'sell',\n        type: 'fill',\n        seq: 374,\n        time: 1567296042739,\n        qty: 166.0,\n        price: 9680.0\n      },\n      {\n        feed: 'ticker',\n        product_id: 'PI_LTCUSD',\n        bid: 64.27,\n        ask: 64.28,\n        bid_size: 2996.0,\n        ask_size: 7.0,\n        volume: 1062907.0,\n        dtm: -18140,\n        leverage: '50x',\n        index: 64.33,\n        premium: -0.1,\n        last: 64.34,\n        time: 1567296052217,\n        change: 0.6570713391739647,\n        funding_rate: -8.92730506785e-7,\n        funding_rate_prediction: -1.509794776119e-6,\n        suspended: false,\n        tag: 'perpetual',\n        pair: 'LTC:USD',\n        openInterest: 2074134.0,\n        markPrice: 64.295,\n        maturityTime: 0,\n        relative_funding_rate: -5.7456135416667e-5,\n        relative_funding_rate_prediction: -9.711e-5,\n        next_funding_rate_time: 1567310400000\n      },\n      {\n        feed: 'book_snapshot',\n        product_id: 'PI_LTCUSD',\n        timestamp: 1567296000518,\n        seq: 360370,\n        bids: [\n          { price: 64.27, qty: 2978.0 },\n          { price: 64.26, qty: 5000.0 }\n        ],\n        asks: [\n          { price: 64.28, qty: 1.0 },\n          { price: 64.31, qty: 9216.0 }\n        ],\n        tickSize: null\n      },\n      { feed: 'book', product_id: 'PI_LTCUSD', side: 'sell', seq: 361428, price: 64.41, qty: 14912.0, timestamp: 1567296042122 },\n      { feed: 'book', product_id: 'PI_LTCUSD', side: 'buy', seq: 361432, price: 64.24, qty: 0.0, timestamp: 1567296042131 },\n      {\n        feed: 'trade',\n        product_id: 'PI_XRPUSD',\n        uid: '3ee209b8-bc9f-4ed5-965b-8c6208b26411',\n        side: 'sell',\n        type: 'liquidation',\n        seq: 41799,\n        time: 1593561965283,\n        qty: 12000,\n        price: 0.1736\n      },\n      {\n        feed: 'trade',\n        product_id: 'PI_ETHUSD',\n        uid: 'e7f3a144-5c04-4ed6-999e-5922cd0b6160',\n        side: 'buy',\n        type: 'liquidation',\n        seq: 253796,\n        time: 1593620853613,\n        qty: 250,\n        price: 231.6\n      },\n\n      {\n        feed: 'ticker',\n        product_id: 'FI_ETHUSD_190426',\n        bid: 141.4,\n        ask: 141.5,\n        bid_size: 10000.0,\n        ask_size: 5873.0,\n        volume: 287575.0,\n        dtm: 25,\n        leverage: '50x',\n        index: 141.16,\n        premium: 0.2,\n        last: 141.8,\n        time: 1554076798897,\n        change: 0.6,\n        suspended: false,\n        tag: 'month',\n        pair: 'ETH:USD',\n        openInterest: 393129.0,\n        markPrice: 141.45,\n        maturityTime: 1556290800000\n      },\n      {\n        time: 1617235200598,\n        feed: 'ticker',\n        product_id: 'PI_LTCUSD',\n        bid: 196.89,\n        ask: 197.21,\n        bid_size: 2875.0,\n        ask_size: 839.0,\n        volume: 4304857.0,\n        dtm: 0,\n        leverage: '50x',\n        index: 196.82,\n        premium: 0.1,\n        last: 196.85,\n        change: 0.5054630858776665,\n        funding_rate: 7.94427729016e-7,\n        funding_rate_prediction: 7.94427729016e-7,\n        suspended: false,\n        tag: 'perpetual',\n        pair: 'LTC:USD',\n        openInterest: 2239386.0,\n        markPrice: 197.05,\n        maturityTime: 0,\n        relative_funding_rate: 0.000156359265625,\n        relative_funding_rate_prediction: 0.000156359265625,\n        next_funding_rate_time: 1617249600000\n      },\n      {\n        time: 1683116402169,\n        product_id: 'PF_SUIUSD',\n        funding_rate: 0.0,\n        funding_rate_prediction: 0.0,\n        relative_funding_rate: 0.0,\n        relative_funding_rate_prediction: 0.0,\n        next_funding_rate_time: 0,\n        feed: 'ticker',\n        bid: 0.0,\n        ask: 0.0,\n        bid_size: 0.0,\n        ask_size: 0.0,\n        volume: 0.0,\n        dtm: 0,\n        leverage: '10x',\n        index: 1.3336,\n        premium: 0.0,\n        last: 0.0,\n        change: 0.0,\n        suspended: false,\n        tag: 'perpetual',\n        pair: 'SUI:USD',\n        openInterest: 0.0,\n        markPrice: 1.3336,\n        maturityTime: 0,\n        post_only: true,\n        volumeQuote: 0.0\n      }\n    ]\n\n    let cryptofacilitiesMapper = createMapper('cryptofacilities', new Date('2019-09-01T00:00:01.2750543Z'))\n\n    for (const message of messages) {\n      const mappedMessages = cryptofacilitiesMapper.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    const newerMessages = [\n      {\n        time: 1680307198986,\n        product_id: 'PI_BCHUSD',\n        funding_rate: -1.26108093245e-7,\n        funding_rate_prediction: -1.43435165757e-7,\n        relative_funding_rate: -0.000015670191666667,\n        relative_funding_rate_prediction: -0.000017773051388889,\n        next_funding_rate_time: 1680307200000,\n        feed: 'ticker',\n        bid: 123.8,\n        ask: 123.9,\n        bid_size: 30410.0,\n        ask_size: 1000.0,\n        volume: 66303.0,\n        dtm: 0,\n        leverage: '25x',\n        index: 123.91,\n        premium: -0.0,\n        last: 123.8,\n        change: 1.4754098360655776,\n        suspended: false,\n        tag: 'perpetual',\n        pair: 'BCH:USD',\n        openInterest: 488789.0,\n        markPrice: 123.83534812969,\n        maturityTime: 0,\n        post_only: false,\n        volumeQuote: 66303.0\n      }\n    ]\n    cryptofacilitiesMapper = createMapper('cryptofacilities', new Date('2022-09-30T00:00:01.2750543Z'))\n\n    for (const message of newerMessages) {\n      const mappedMessages = cryptofacilitiesMapper.map(message, new Date('2022-09-30T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map bitflyer messages', () => {\n    const messages = [\n      {\n        jsonrpc: '2.0',\n        method: 'channelMessage',\n        params: {\n          channel: 'lightning_board_snapshot_BCH_BTC',\n          message: {\n            mid_price: 0.02891,\n            bids: [{ price: 0.0146, size: 0.022 }],\n            asks: [{ price: 0.02919, size: 0.14 }]\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'channelMessage',\n        params: {\n          channel: 'lightning_board_BCH_BTC',\n          message: {\n            mid_price: 1046397.0,\n            bids: [{ price: 1043400.0, size: 0.05 }],\n            asks: [{ price: 1046603.0, size: 0.0 }]\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'channelMessage',\n        params: {\n          channel: 'lightning_executions_FX_BTC_JPY',\n          message: [\n            {\n              id: 1246449270,\n              side: 'BUY',\n              price: 1046399.0,\n              size: 0.01,\n              exec_date: '2019-09-01T00:00:11.2256814Z',\n              buy_child_order_acceptance_id: 'JRF20190901-000011-748374',\n              sell_child_order_acceptance_id: 'JRF20190901-000011-013715'\n            },\n            {\n              id: 1246449271,\n              side: 'BUY',\n              price: 1046400.0,\n              size: 0.002,\n              exec_date: '2019-09-01T00:00:11.2256814Z',\n              buy_child_order_acceptance_id: 'JRF20190901-000011-748374',\n              sell_child_order_acceptance_id: 'JRF20190901-000006-323731'\n            }\n          ]\n        }\n      },\n\n      {\n        jsonrpc: '2.0',\n        method: 'channelMessage',\n        params: {\n          channel: 'lightning_ticker_BTC_JPY',\n          message: {\n            product_code: 'BTC_JPY',\n            timestamp: '2019-09-01T00:00:01.2477968Z',\n            tick_id: 2470920,\n            best_bid: 1020000.0,\n            best_ask: 1020332.0,\n            best_bid_size: 0.03,\n            best_ask_size: 0.2,\n            total_bid_depth: 875.75561073,\n            total_ask_depth: 2073.74153664,\n            ltp: 1020001.0,\n            volume: 1683.35387311,\n            volume_by_product: 1683.35387311\n          }\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'channelMessage',\n        params: {\n          channel: 'lightning_ticker_ETH_JPY',\n          message: {\n            product_code: 'ETH_JPY',\n            state: 'RUNNING',\n            timestamp: '2021-09-01T00:00:00.2115808Z',\n            tick_id: 2830807,\n            best_bid: 376592.0,\n            best_ask: 376676.0,\n            best_bid_size: 0.01,\n            best_ask_size: 0.4,\n            total_bid_depth: 5234.4333389,\n            total_ask_depth: 1511.52678,\n            market_bid_size: 0.0,\n            market_ask_size: 0.0,\n            ltp: 376789.0,\n            volume: 37853.5120461,\n            volume_by_product: 37853.5120461\n          }\n        }\n      }\n    ]\n\n    const bitflyerMapper = createMapper('bitflyer')\n\n    for (const message of messages) {\n      const mappedMessages = bitflyerMapper.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map ftx messages', () => {\n    const messages = [\n      { type: 'subscribed', channel: 'trades', market: 'ALT-PERP' },\n      {\n        channel: 'orderbook',\n        market: 'BTC-1227',\n        type: 'partial',\n        data: {\n          time: 1567296001.3289416,\n          checksum: 2240307563,\n          bids: [[9805.0, 15.5629]],\n          asks: [[9807.75, 20.1695]],\n          action: 'partial'\n        }\n      },\n      {\n        channel: 'orderbook',\n        market: 'BNB-PERP',\n        type: 'update',\n        data: { time: 1567296005.667879, checksum: 1100190433, bids: [], asks: [[21.0125, 0.0]], action: 'update' }\n      },\n      {\n        channel: 'trades',\n        market: 'LTC-PERP',\n        type: 'update',\n        data: [{ id: null, price: 64.33, size: 0.03, side: 'sell', liquidation: false, time: '2019-09-01T00:00:12.659525+00:00' }]\n      },\n      {\n        channel: 'trades',\n        market: 'ETH-PERP',\n        type: 'update',\n        data: [{ id: 1139499, price: 181.86, size: 0.13, side: 'sell', liquidation: false, time: '2019-10-01T00:00:21.260951+00:00' }]\n      },\n      {\n        channel: 'instrument',\n        generated: true,\n        market: 'BTC-PERP',\n        type: 'update',\n        data: {\n          stats: { nextFundingRate: 0.0, nextFundingTime: '2020-05-12T13:00:00+00:00', openInterest: 11471.4921, volume: 87818.5334 },\n          info: {\n            ask: 8791.5,\n            bid: 8791.0,\n            change1h: 0.0007399396664579658,\n            change24h: -0.015014005602240896,\n            changeBod: 0.025667950064169876,\n            description: 'Bitcoin Perpetual Futures',\n            enabled: true,\n            expired: false,\n            expiryDescription: 'Perpetual',\n            group: 'perpetual',\n            imfFactor: 0.002,\n            index: 8790.512800652727,\n            last: 8791.0,\n            lowerBound: 8351.0,\n            marginPrice: 8791.0,\n            mark: 8791.0,\n            name: 'BTC-PERP',\n            perpetual: true,\n            positionLimitWeight: 1.0,\n            postOnly: false,\n            priceIncrement: 0.5,\n            sizeIncrement: 0.0001,\n            type: 'perpetual',\n            underlying: 'BTC',\n            underlyingDescription: 'Bitcoin',\n            upperBound: 9232.0,\n            volume: 87818.5334,\n            volumeUsd24h: 762549880.0517\n          }\n        }\n      },\n      {\n        channel: 'instrument',\n        generated: true,\n        market: 'BTC-MOVE-0512',\n        type: 'update',\n        data: {\n          stats: { openInterest: 337.1438, predictedExpirationPrice: 174.41695155220606, strikePrice: 8615.432394555066, volume: 746.7197 },\n          info: {\n            ask: 266.5,\n            bid: 257.5,\n            change1h: -0.005597014925373134,\n            change24h: -0.18376722817764166,\n            changeBod: -0.14170692431561996,\n            description: 'Bitcoin MOVE 2020-05-12 Contracts',\n            enabled: true,\n            expired: false,\n            expiry: '2020-05-13T00:00:00+00:00',\n            expiryDescription: 'Today',\n            group: 'daily',\n            imfFactor: 0.002,\n            index: 8790.512800652727,\n            last: 266.5,\n            lowerBound: 0.5,\n            marginPrice: 8790.512800652727,\n            mark: 266.5,\n            moveStart: '2020-05-12T00:00:00+00:00',\n            name: 'BTC-MOVE-0512',\n            perpetual: false,\n            positionLimitWeight: 2.0,\n            postOnly: false,\n            priceIncrement: 0.5,\n            sizeIncrement: 0.0001,\n            type: 'move',\n            underlying: 'BTC',\n            underlyingDescription: 'Bitcoin',\n            upperBound: 1149.5,\n            volume: 746.7197,\n            volumeUsd24h: 227715.1469\n          }\n        }\n      },\n      {\n        channel: 'instrument',\n        generated: true,\n        market: 'BRZ-0626',\n        type: 'update',\n        data: {\n          stats: { openInterest: 608187.0, predictedExpirationPrice: 0.17007, volume: 61892.0 },\n          info: {\n            ask: 0.17137,\n            bid: 0.17058,\n            change1h: 0.0004105331065626649,\n            change24h: -0.005422424348434493,\n            changeBod: 0.0004105331065626649,\n            description: 'Brazilian Digital Token June 2020 Futures',\n            enabled: true,\n            expired: false,\n            expiry: '2020-06-26T03:00:00+00:00',\n            expiryDescription: 'June 2020',\n            group: 'quarterly',\n            imfFactor: 2e-6,\n            index: 0.17007,\n            last: 0.17051,\n            lowerBound: 0.16157,\n            marginPrice: 0.17058,\n            mark: 0.17058,\n            name: 'BRZ-0626',\n            perpetual: false,\n            positionLimitWeight: 10.0,\n            postOnly: false,\n            priceIncrement: 1e-5,\n            sizeIncrement: 1.0,\n            type: 'future',\n            underlying: 'BRZ',\n            underlyingDescription: 'Brazilian Digital Token',\n            upperBound: 0.17957,\n            volume: 61892.0,\n            volumeUsd24h: 10557.55092\n          }\n        }\n      },\n      {\n        channel: 'trades',\n        market: 'BTC-PERP',\n        type: 'update',\n        data: [{ id: 114724653, price: 10683.5, size: 0.0149, side: 'buy', liquidation: true, time: '2020-09-15T00:02:05.787437+00:00' }]\n      },\n      {\n        channel: 'ticker',\n        market: 'BTC/EUR',\n        type: 'update',\n        data: { bid: 54346.0, ask: 54411.0, bidSize: 0.0919, askSize: 0.0048, last: 54315.0, time: 1635206400.0866942 }\n      },\n      {\n        channel: 'instrument',\n        generated: true,\n        market: 'BTC-PERP',\n        type: 'update',\n        data: {\n          stats: { nextFundingRate: 0.1, nextFundingTime: '2020-05-12T12:00:00+00:00', openInterest: 11471.4921, volume: 87818.5334 },\n          info: {\n            ask: 8791.5,\n            bid: 8791.0,\n            change1h: 0.0007399396664579658,\n            change24h: -0.015014005602240896,\n            changeBod: 0.025667950064169876,\n            description: 'Bitcoin Perpetual Futures',\n            enabled: true,\n            expired: false,\n            expiryDescription: 'Perpetual',\n            group: 'perpetual',\n            imfFactor: 0.002,\n            index: 8790.512800652727,\n            last: 8791.0,\n            lowerBound: 8351.0,\n            marginPrice: 8791.0,\n            mark: 8791.0,\n            name: 'BTC-PERP',\n            perpetual: true,\n            positionLimitWeight: 1.0,\n            postOnly: false,\n            priceIncrement: 0.5,\n            sizeIncrement: 0.0001,\n            type: 'perpetual',\n            underlying: 'BTC',\n            underlyingDescription: 'Bitcoin',\n            upperBound: 9232.0,\n            volume: 87818.5334,\n            volumeUsd24h: 762549880.0517\n          }\n        }\n      },\n      {\n        channel: 'orderbook',\n        market: 'BTC-PERP',\n        type: 'update',\n        data: {\n          time: 1651872435.2858999,\n          checksum: 570490144,\n          bids: [\n            [36006.0, 2.3987],\n            [35958.0, 8.8432]\n          ],\n          asks: [\n            [36043.0, 5.9795],\n            [36046.0, 9.7243]\n          ],\n          action: 'update'\n        }\n      }\n    ]\n\n    const ftxMapper = createMapper('ftx')\n\n    for (const message of messages) {\n      const mappedMessages = ftxMapper.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map coinbase messages', () => {\n    const messages = [\n      {\n        type: 'match',\n        trade_id: 216544,\n        maker_order_id: '4c2aa376-4bda-4947-84ee-4dc5a6337cba',\n        taker_order_id: '247a6eb2-b5c1-42db-b0ac-cb74b85bcac8',\n        side: 'buy',\n        size: '0.97133855',\n        price: '4.97800000',\n        product_id: 'ETC-GBP',\n        sequence: 253395153,\n        time: '2019-08-01T00:00:03.816000Z'\n      },\n      { type: 'l2update', product_id: 'BTC-EUR', time: '2019-08-01T00:00:03.818Z', changes: [['sell', '9202.54000000', '0.432']] },\n      { type: 'l2update', product_id: 'ETH-USD', time: '2019-08-01T00:00:03.869Z', changes: [['buy', '218.21000000', '20.79816319']] },\n      {\n        product_id: 'BAT-USDC',\n        type: 'snapshot',\n        bids: [['0.247175', '5299']],\n        asks: [['0.257175', '12']]\n      },\n      {\n        type: 'l2update',\n        product_id: 'BTC-EUR',\n        changes: [\n          ['buy', '9202.70', '0.58667860'],\n          ['sell', '9222.39', '0.00459825']\n        ],\n        time: '0001-01-01T00:00:00.000000Z'\n      },\n      {\n        type: 'snapshot',\n        product_id: 'YFI-USD',\n        asks: [['40584.89', '0.039985']],\n        bids: [\n          ['40533.24', '0.020416'],\n          ['40531.19', '0.-10000']\n        ]\n      },\n      {\n        type: 'ticker',\n        sequence: 8176375276,\n        product_id: 'BTC-USD',\n        price: '4095.00000000',\n        open_24h: '4094.14000000',\n        volume_24h: '3142.70640811',\n        low_24h: '4077.01000000',\n        high_24h: '4103.00000000',\n        volume_30d: '183219.70896887',\n        best_bid: '4094.99',\n        best_ask: '4095',\n        side: 'buy',\n        time: '2019-04-01T00:00:04.540000Z',\n        trade_id: 61165589,\n        last_size: '2.00000000'\n      },\n      {\n        type: 'ticker',\n        sequence: 23345076686,\n        product_id: 'BTC-USD',\n        price: '58800.01',\n        open_24h: '58786.46',\n        volume_24h: '17374.93342584',\n        low_24h: '56873.8',\n        high_24h: '59800',\n        volume_30d: '582258.79522269',\n        best_bid: '58800.00',\n        best_ask: '58800.01',\n        side: 'buy',\n        time: '2021-04-01T00:00:01.618503Z',\n        trade_id: 151521557,\n        last_size: '0.05'\n      },\n      {\n        type: 'ticker',\n        sequence: 50978628538,\n        product_id: 'BTC-USD',\n        price: '17165.16',\n        open_24h: '16437.94',\n        volume_24h: '42492.05081975',\n        low_24h: '16423.37',\n        high_24h: '17259.37',\n        volume_30d: '1093827.95195495',\n        best_bid: '17165.15',\n        best_bid_size: '0.61540890',\n        best_ask: '17167.76',\n        best_ask_size: '0.18528568',\n        side: 'sell',\n        time: '2022-12-01T00:00:00.122581Z',\n        trade_id: 463751434,\n        last_size: '0.05'\n      }\n    ]\n\n    const coinbaseMapper = createMapper('coinbase')\n\n    for (const message of messages) {\n      const mappedMessages = coinbaseMapper.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map gemini messages', () => {\n    const messages = [\n      {\n        type: 'l2_updates',\n        symbol: 'ZECLTC',\n        changes: [\n          ['buy', '0.688', '51.55728'],\n          ['buy', '0.686', '1.168083'],\n          ['sell', '15', '0.078285']\n        ],\n        auction_events: []\n      },\n      { type: 'trade', symbol: 'BTCUSD', event_id: 8280715334, timestamp: 1569888020080, price: '8325.00', quantity: '0.1', side: 'buy' },\n      {\n        type: 'l2_updates',\n        symbol: 'ETHBTC',\n        changes: [\n          ['sell', '0.02189', '88.236'],\n          ['sell', '0.02184', '4'],\n          ['sell', '0.02185', '0'],\n          ['sell', '0.02188', '149.57']\n        ]\n      },\n      { type: 'trade', symbol: 'ETHUSD', event_id: 9608228023, timestamp: 1580919901276, price: '200.19', quantity: '100', side: 'block' }\n    ]\n\n    const geminiMapper = createMapper('gemini')\n\n    for (const message of messages) {\n      const mappedMessages = geminiMapper.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map bitstamp messages', () => {\n    const messages = [\n      { event: 'bts:subscription_succeeded', channel: 'live_trades_xrpeur', data: {} },\n      {\n        data: {\n          microtimestamp: '1554076803243152',\n          amount: 0.0016429999999999999,\n          buy_order_id: 3056112169,\n          sell_order_id: 3056099349,\n          amount_str: '0.00164300',\n          price_str: '3651.30',\n          timestamp: '1554076803',\n          price: 3651.3000000000002,\n          type: 0,\n          id: 84550458\n        },\n        event: 'trade',\n        channel: 'live_trades_btceur'\n      },\n      {\n        data: { timestamp: '1554076800', microtimestamp: '1554076800436165', bids: [], asks: [['168.75', '2.00000000']] },\n        event: 'data',\n        channel: 'diff_order_book_bchusd'\n      },\n      {\n        data: {\n          timestamp: '1554076800',\n          bids: [\n            ['51046.31', '0.04249473'],\n            ['60000.00', '0.00040718']\n          ],\n          asks: [\n            ['168.75', '2.00000000'],\n            ['168.76', '0.49428809']\n          ]\n        },\n        event: 'snapshot',\n        channel: 'diff_order_book_bchusd',\n        generated: true\n      },\n      {\n        data: {\n          timestamp: '1554076800',\n          microtimestamp: '1554076801338397',\n          bids: [\n            ['51046.31', '0.04249473'],\n            ['60000.00', '0.00040718']\n          ],\n          asks: [\n            ['168.75', '2.00000000'],\n            ['168.76', '0.49428809']\n          ]\n        },\n        event: 'snapshot',\n        channel: 'diff_order_book_btcusd',\n        generated: true\n      },\n      {\n        data: {\n          timestamp: '1554076801',\n          microtimestamp: '1554076801338397',\n          bids: [],\n          asks: [\n            ['169.28', '180.00000000'],\n            ['170.16', '360.00000000']\n          ]\n        },\n        event: 'data',\n        channel: 'diff_order_book_bchusd'\n      },\n      {\n        data: {\n          microtimestamp: '1569888000557673',\n          amount: 0.02834,\n          buy_order_id: 4173504870,\n          sell_order_id: 4173504860,\n          amount_str: '0.02834000',\n          price_str: '8304.47',\n          timestamp: '1569888000',\n          price: 8304.47,\n          type: 0,\n          id: 98000129\n        },\n        event: 'trade',\n        channel: 'live_trades_btcusd'\n      }\n    ]\n\n    const bitstampMapper = createMapper('bitstamp')\n\n    for (const message of messages) {\n      const mappedMessages = bitstampMapper.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map kraken messages', () => {\n    const messages = [\n      [170, [['0.01136500', '2.51146536', '1561939201.587070', 's', 'l', '']], 'trade', 'LTC/XBT'],\n      [\n        14,\n        [\n          ['9482.40000', '0.01596347', '1561939258.512503', 's', 'l', ''],\n          ['9488.20000', '0.28522465', '1561939258.557040', 'b', 'l', '']\n        ],\n        'trade',\n        'XBT/EUR'\n      ],\n      [468, { b: [['87.60000000', '35.02658459', '1561939258.527900']] }, 'book-1000', 'XMR/USD'],\n      [\n        741,\n        {\n          a: [\n            ['413.900000', '27.71904764', '1561939258.527125'],\n            ['403.500000', '0.00000000', '1561939258.530503'],\n            ['400.300000', '0.00000000', '1561939258.534680']\n          ]\n        },\n        { b: [['400.000000', '3.38983321', '1561939258.526326']] },\n        'book-1000',\n        'BCH/USD'\n      ],\n      [\n        754,\n        {\n          b: [\n            ['352.000000', '33.95500000', '1561939258.538807'],\n            ['351.500000', '5.89527900', '1561939258.548498']\n          ]\n        },\n        'book-1000',\n        'BCH/EUR'\n      ],\n      [\n        923,\n        {\n          as: [['0.102987', '3.00000000', '1561939199.992830']],\n          bs: [['0.102810', '2.00000000', '1561635364.836639']]\n        },\n        ,\n        'book-1000',\n        'ADA/CAD'\n      ],\n      [325, ['43770.20000', '43770.30000', '1633053779.916349', '0.00917717', '0.31670440'], 'spread', 'XBT/USD'],\n      [545, ['0.000000000', '0.000000000', '0.000000', '0.00000000', '0.00000000'], 'spread', 'LINK/ETH']\n    ]\n\n    const krakenMapper = createMapper('kraken')\n\n    for (const message of messages) {\n      const mappedMessages = krakenMapper.map(message, new Date('2019-09-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map huobi messages', () => {\n    const messages = [\n      { id: null, subbed: 'market.BTC_CW.trade.detail', ts: 1572912001262, status: 'ok' },\n      {\n        ch: 'market.BTC_CW.detail',\n        ts: 1572912000995,\n        tick: {\n          id: 1572912000,\n          mrid: 25102925110,\n          open: 9323.85,\n          close: 9435.15,\n          high: 9650,\n          low: 9273.49,\n          amount: 45646.1037938786755718562979596368747611432,\n          vol: 4260726,\n          count: 85611\n        }\n      },\n\n      {\n        ch: 'market.BTC_NW.depth.step0',\n        ts: 1572912001193,\n        tick: {\n          mrid: 25102925648,\n          id: 1572912001,\n          bids: [\n            [9467.21, 35],\n            [9467.2, 132]\n          ],\n          asks: [\n            [9469.88, 20],\n            [9470.38, 8]\n          ],\n          ts: 1572912001180,\n          version: 1572912001,\n          ch: 'market.BTC_NW.depth.step0'\n        }\n      },\n      {\n        ch: 'market.ETH_CQ.trade.detail',\n        ts: 1572912028352,\n        tick: {\n          id: 25102975022,\n          ts: 1572912028237,\n          data: [{ amount: 62, ts: 1572912028237, id: 251029750220000, price: 190.031, direction: 'sell' }]\n        }\n      },\n      {\n        ch: 'market.BCH_CQ.depth.step0',\n        ts: 1572912028401,\n        update: true,\n        tick: {\n          mrid: 25102974989,\n          id: 1572912028,\n          bids: [\n            [290.864, 1],\n            [290.966, 0]\n          ],\n          asks: [[299.375, 734]],\n          ts: 1572912028381,\n          version: 1572912028,\n          ch: 'market.BCH_CQ.depth.step0'\n        }\n      },\n\n      {\n        ch: 'market.mexbtc.depth.step0',\n        ts: 1572911920067,\n        tick: {\n          bids: [\n            [6.22e-8, 45542.05],\n            [6.21e-8, 663504.55]\n          ],\n          asks: [\n            [6.35e-8, 1033141.41],\n            [6.4e-8, 269808.94]\n          ],\n          version: 100033171703,\n          ts: 1572911920032\n        }\n      },\n\n      {\n        ch: 'market.mexbtc.trade.detail',\n        ts: 1572911088789,\n        tick: {\n          id: 100033171587,\n          ts: 1572911088761,\n          data: [\n            { id: 10003317158754670853281, ts: 1572911088761, tradeId: 100027416191, amount: 1569.86, price: 6.37e-8, direction: 'buy' }\n          ]\n        }\n      },\n      {\n        ch: 'market.mexbtc.trade.detail',\n        ts: 1572911088790,\n        tick: {\n          id: 100033171588,\n          ts: 1572911088761,\n          data: [\n            { id: 10003317158754670853281, ts: 1572911088761, tradeId: 100027416192, amount: 1569.86, price: 6.37e-8, direction: 'buy' }\n          ]\n        }\n      },\n      {\n        ch: 'market.waxpbtc.depth.step0',\n        ts: 1572912002010,\n        update: true,\n        tick: { bids: [], asks: [], ts: 1572912002001, version: 100052331172 }\n      },\n      {\n        ch: 'market.ontusdt.depth.step0',\n        ts: 1572912001077,\n        tick: {\n          bids: [[0.9073, 1877.1994]],\n          asks: [\n            [0.9087, 1.07],\n            [0.9088, 1760.6161]\n          ],\n          ts: 1572912001027,\n          version: 100305412446\n        }\n      },\n      {\n        ch: 'market.xmrbtc.trade.detail',\n        ts: 1572879775938,\n        tick: {\n          id: 100201717928,\n          ts: 1571238239378,\n          data: [{ id: '10020171792852100010452', amount: 6.5286, price: 0.006663, direction: 'buy', ts: 1571238239378 }]\n        }\n      },\n      {\n        ch: 'market.xmrbtc.trade.detail',\n        ts: 1572879775938,\n        tick: {\n          id: 100201717928,\n          ts: 1571238239378,\n          data: [{ id: '100201717928521000104525', amount: 6.5286, price: 0.006663, direction: 'buy', ts: 1571238239379 }]\n        }\n      },\n      {\n        ch: 'market.dtabtc.depth.step0',\n        ts: 1572912002012,\n        update: true,\n        tick: {\n          bids: [[4.37e-8, 731389.72]],\n          asks: [\n            [1.55e-7, 437407.32],\n            [4.75e-8, 0]\n          ],\n          ts: 1572912002002,\n          version: 100058542239\n        }\n      },\n      {\n        ch: 'market.BTC_CQ.depth.size_150.high_freq',\n        tick: {\n          asks: [\n            [10866.01, 137],\n\n            [10900.06, 35]\n          ],\n          bids: [\n            [10866, 3166],\n\n            [10847.44, 30]\n          ],\n          ch: 'market.BTC_CQ.depth.size_150.high_freq',\n          event: 'snapshot',\n          id: 45961927810,\n          mrid: 45961927810,\n          ts: 1581552001187,\n          version: 25630954\n        },\n        ts: 1581552001189\n      },\n      {\n        ch: 'market.BTC_NW.depth.size_150.high_freq',\n        tick: {\n          asks: [],\n          bids: [\n            [10489.55, 0],\n            [10361.14, 385]\n          ],\n          ch: 'market.BTC_NW.depth.size_150.high_freq',\n          event: 'update',\n          id: 45961928082,\n          mrid: 45961928082,\n          ts: 1581552001275,\n          version: 23596415\n        },\n        ts: 1581552001277\n      },\n      {\n        ch: 'market.btcusdt.mbp.150',\n        ts: 1593561601106,\n        tick: {\n          seqNum: 109409288253,\n          prevSeqNum: 109409288226,\n          asks: [[9138.67, 0.036178]],\n          bids: []\n        }\n      }\n    ]\n\n    let huobi = createMapper('huobi', new Date('2019-12-01T00:00:01.2750543Z'))\n\n    for (const message of messages) {\n      const mappedMessages = huobi.map(message, new Date('2019-12-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    const messagesWithMBPData = [\n      {\n        ch: 'market.btcusdt.mbp.150',\n        ts: 1593561600691,\n        tick: {\n          seqNum: 109409288130,\n          prevSeqNum: 109409288078,\n          asks: [\n            [9138.61, 0.033785],\n            [9138.67, 0.0],\n            [9138.93, 0.0622],\n            [9144.0, 0.201447],\n            [9144.01, 0.0]\n          ],\n          bids: [\n            [9137.67, 4.129547],\n            [9135.96, 0.0],\n            [9135.95, 0.3],\n            [9134.67, 0.2],\n            [9134.1, 0.0],\n            [9133.12, 0.0],\n            [9131.68, 0.02059],\n            [9131.67, 0.0],\n            [9131.64, 0.0],\n            [9129.34, 0.0],\n            [9126.86, 0.05],\n            [9126.81, 1.141568],\n            [9126.78, 0.021],\n            [9126.68, 0.8385]\n          ]\n        }\n      },\n      {\n        ch: 'market.btcusdt.mbp.150',\n        ts: 1593561600793,\n        tick: {\n          seqNum: 109409288160,\n          prevSeqNum: 109409288130,\n          asks: [\n            [9138.6, 0.010259],\n            [9138.61, 0.01767],\n            [9138.67, 0.014126],\n            [9145.18, 0.0],\n            [9145.4, 0.014157],\n            [9146.84, 0.0]\n          ],\n          bids: [\n            [9137.67, 4.683547],\n            [9135.95, 0.4998],\n            [9134.1, 0.019023],\n            [9133.17, 0.22827],\n            [9131.87, 0.513608],\n            [9131.68, 0.001352],\n            [9129.19, 0.856013],\n            [9126.86, 0.0],\n            [9126.81, 0.0],\n            [9126.78, 0.0],\n            [9126.68, 0.0]\n          ]\n        }\n      },\n      {\n        ch: 'market.btcusdt.mbp.150',\n        ts: 1593561600901,\n        tick: {\n          seqNum: 109409288204,\n          prevSeqNum: 109409288160,\n          asks: [\n            [9138.6, 0.0],\n            [9138.61, 0.0],\n            [9138.67, 0.033924],\n            [9144.0, 0.05],\n            [9146.84, 1.0],\n            [9146.9, 0.001598]\n          ],\n          bids: [\n            [9134.5, 0.002232],\n            [9134.4, 0.164064],\n            [9126.94, 0.0]\n          ]\n        }\n      },\n      {\n        ch: 'market.btcusdt.mbp.150',\n        ts: 1593561601005,\n        tick: {\n          seqNum: 109409288226,\n          prevSeqNum: 109409288204,\n          asks: [\n            [9138.67, 0.042194],\n            [9144.0, 0.069238],\n            [9145.4, 0.030582],\n            [9146.18, 0.132209],\n            [9146.9, 0.0]\n          ],\n          bids: [\n            [9135.96, 0.0622],\n            [9135.78, 0.0],\n            [9131.7, 0.007665],\n            [9127.0, 0.0]\n          ]\n        }\n      },\n      {\n        id: '1',\n        status: 'ok',\n        ts: 1593561601666,\n        rep: 'market.btcusdt.mbp.150',\n        data: {\n          bids: [\n            [9137.67, 4.683547],\n            [9137.35, 0.0089],\n            [9137.17, 0.00606],\n            [9137.06, 0.11]\n          ],\n          asks: [\n            [9137.68, 0.190075],\n            [9137.75, 0.01],\n            [9138.23, 0.010945],\n            [9138.27, 0.131941],\n            [9138.47, 0.003],\n            [9138.6, 0.010259],\n            [9138.61, 0.01767],\n            [9138.62, 0.0074],\n            [9138.67, 0.014126]\n          ],\n          seqNum: 109409288160\n        }\n      },\n      {\n        ch: 'market.btcusdt.mbp.150',\n        ts: 1593561601727,\n        tick: {\n          seqNum: 109409288576,\n          prevSeqNum: 109409288500,\n          asks: [[9137.68, 3.691799]],\n          bids: [[9137.67, 2.389677]]\n        }\n      },\n      {\n        ch: 'market.btcusdt.bbo',\n        ts: 1575158404058,\n        tick: {\n          seqId: 103273695595,\n          ask: 7543.59,\n          askSize: 2.323241,\n          bid: 7541.16,\n          bidSize: 0.002329,\n          quoteTime: 1575158404057,\n          symbol: 'btcusdt'\n        }\n      },\n      {\n        ch: 'market.btchusd.bbo',\n        ts: 1588227079008,\n        tick: { ask: 9434.09, askSize: 0.3, bid: 9422.13, bidSize: 0.3, quoteTime: 1588227079007, symbol: 'btchusd' }\n      }\n    ]\n\n    huobi = createMapper('huobi', new Date('2020-07-03T00:00:01.2750543Z'))\n\n    for (const message of messagesWithMBPData) {\n      const mappedMessages = huobi.map(message, new Date('2020-07-03T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map huobi-dm, messages', () => {\n    const messages = [\n      {\n        ch: 'market.BCH_NQ.depth.size_150.high_freq',\n        tick: {\n          ch: 'market.BCH_NQ.depth.size_150.high_freq',\n          event: 'snapshot',\n          id: 73813475013,\n          mrid: 73813475013,\n          ts: 1592130042862,\n          version: 5\n        },\n        ts: 1592130042866\n      },\n      {\n        ch: 'market.BCH_NQ.depth.size_150.high_freq',\n        tick: {\n          asks: [],\n          bids: [[228.191, 7999]],\n          ch: 'market.BCH_NQ.depth.size_150.high_freq',\n          event: 'update',\n          id: 74013930075,\n          mrid: 74013930075,\n          ts: 1592200802699,\n          version: 8\n        },\n        ts: 1592200802700\n      },\n      {\n        ch: 'market.ETH_NW.basis.1min.open',\n        ts: 1592915100011,\n        tick: {\n          id: 1592915040,\n          index_price: '243.466431823',\n          contract_price: '244.126',\n          basis: '0.659568177',\n          basis_rate: '0.0027090723434083340276793275670103096'\n        }\n      },\n      {\n        ch: 'market.ETH_NW.open_interest',\n        generated: true,\n        data: [\n          { volume: 648420.0, amount: 26550.216194968553459119, symbol: 'ETH', contract_type: 'next_week', contract_code: 'ETH200703' }\n        ],\n        ts: 1592915103195\n      },\n      {\n        op: 'notify',\n        topic: 'public.BSV.contract_info',\n        ts: 1592915141957,\n        event: 'snapshot',\n        data: [\n          {\n            symbol: 'BSV',\n            contract_code: 'BSV200626',\n            contract_type: 'this_week',\n            contract_size: 10.0,\n            price_tick: 0.001,\n            delivery_date: '20200626',\n            create_date: '20200306',\n            contract_status: 1\n          }\n        ]\n      },\n      {\n        op: 'notify',\n        topic: 'public.BTC.liquidation_orders',\n        ts: 1593561769911,\n        data: [\n          {\n            symbol: 'BTC',\n            contract_code: 'BTC200703',\n            direction: 'sell',\n            offset: 'close',\n            volume: 1450,\n            price: 9062.71,\n            created_at: 1593561769833\n          }\n        ]\n      },\n      {\n        op: 'notify',\n        topic: 'public.BTC.contract_info',\n        ts: 1593561601464,\n        event: 'init',\n        data: [\n          {\n            symbol: 'BTC',\n            contract_code: 'BTC200703',\n            contract_type: 'this_week',\n            contract_size: 100,\n            price_tick: 0.01,\n            delivery_date: '20200703',\n            create_date: '20200612',\n            contract_status: 1\n          },\n          {\n            symbol: 'BTC',\n            contract_code: 'BTC200710',\n            contract_type: 'next_week',\n            contract_size: 100,\n            price_tick: 0.01,\n            delivery_date: '20200710',\n            create_date: '20200619',\n            contract_status: 1\n          },\n          {\n            symbol: 'BTC',\n            contract_code: 'BTC200925',\n            contract_type: 'quarter',\n            contract_size: 100,\n            price_tick: 0.01,\n            delivery_date: '20200925',\n            create_date: '20200605',\n            contract_status: 1\n          },\n          {\n            symbol: 'BTC',\n            contract_code: 'BTC201225',\n            contract_type: 'next_quarter',\n            contract_size: 100,\n            price_tick: 0.01,\n            delivery_date: '20201225',\n            create_date: '20200612',\n            contract_status: 1\n          }\n        ]\n      },\n      {\n        op: 'notify',\n        topic: 'public.BTC.liquidation_orders',\n        ts: 1593561773080,\n        data: [\n          {\n            symbol: 'BTC',\n            contract_code: 'BTC200925',\n            direction: 'sell',\n            offset: 'close',\n            volume: 319,\n            price: 9115.43,\n            created_at: 1593561773025\n          }\n        ]\n      },\n      {\n        op: 'notify',\n        topic: 'public.BTC.liquidation_orders',\n        ts: 1593593169204,\n        data: [\n          {\n            symbol: 'BTC',\n            contract_code: 'BTC200703',\n            direction: 'buy',\n            offset: 'close',\n            volume: 218,\n            price: 9244.08,\n            created_at: 1593593169156\n          }\n        ]\n      },\n      {\n        ch: 'market.BTC_CW.bbo',\n        ts: 1593561603501,\n        tick: {\n          mrid: 77909396157,\n          id: 1593561603,\n          bid: [9142.12, 6091],\n          ask: [9142.13, 68],\n          ts: 1593561603500,\n          version: 77909396157,\n          ch: 'market.BTC_CW.bbo'\n        }\n      },\n      {\n        ch: 'market.BTC_CW.bbo',\n        ts: 1633046407225,\n        tick: {\n          mrid: 147102064535,\n          id: 1633046407,\n          bid: [43812.82, 7],\n          ask: [43829.95, 3],\n          ts: 1633046407225,\n          version: 147102064535,\n          ch: 'market.BTC_CW.bbo'\n        }\n      }\n    ]\n\n    const huobiDM = createMapper('huobi-dm')\n\n    for (const message of messages) {\n      const mappedMessages = huobiDM.map(message, new Date('2019-12-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map huobi-dm-swap, messages', () => {\n    const messages = [\n      { op: 'sub', cid: '14', topic: 'public.BTC-USD.liquidation_orders', ts: 1592904821340, 'err-code': 0 },\n      { id: '1', subbed: 'market.ZEC-USD.trade.detail', ts: 1592904820310, status: 'ok' },\n      {\n        ch: 'market.BSV-USD.trade.detail',\n        ts: 1592904815036,\n        tick: {\n          id: 9530684332,\n          ts: 1592904814962,\n          data: [{ amount: 8, ts: 1592904814962, id: 95306843320000, price: 177.3, direction: 'sell' }]\n        }\n      },\n      {\n        ch: 'market.BSV-USD.trade.detail',\n        ts: 1592904821252,\n        tick: {\n          id: 9530712324,\n          ts: 1592904821209,\n          data: [{ amount: 80, ts: 1592904821209, id: 95307123240000, price: 177.3, direction: 'sell' }]\n        }\n      },\n      {\n        ch: 'market.BCH-USD.depth.size_150.high_freq',\n        tick: {\n          asks: [],\n          bids: [[239.34, 1021]],\n          ch: 'market.BCH-USD.depth.size_150.high_freq',\n          event: 'update',\n          id: 9530712377,\n          mrid: 9530712377,\n          ts: 1592904821308,\n          version: 164176090\n        },\n        ts: 1592904821309\n      },\n      {\n        ch: 'market.BTC-USD.basis.1min.open',\n        ts: 1592904821703,\n        tick: {\n          id: 1592904780,\n          index_price: '9582.975',\n          contract_price: '9590.1',\n          basis: '7.125',\n          basis_rate: '0.0007435060615309963763862474857755551'\n        }\n      },\n      {\n        ch: 'market.BTC-USD.open_interest',\n        generated: true,\n        data: [{ volume: 1711705.0, amount: 17841.411298728371899103, symbol: 'BTC', contract_code: 'BTC-USD' }],\n        ts: 1592904823141\n      },\n      {\n        op: 'notify',\n        topic: 'public.BTC-USD.funding_rate',\n        ts: 1592904820339,\n        data: [\n          {\n            symbol: 'BTC',\n            contract_code: 'BTC-USD',\n            fee_asset: 'BTC',\n            funding_time: '1592904780000',\n            funding_rate: '0.000100000000000000',\n            estimated_rate: '0.000113655663368468',\n            settlement_time: '1592913600000'\n          }\n        ]\n      },\n      {\n        op: 'notify',\n        topic: 'public.ETH-USD.liquidation_orders',\n        ts: 1593610492198,\n        data: [\n          {\n            symbol: 'ETH',\n            contract_code: 'ETH-USD',\n            direction: 'buy',\n            offset: 'close',\n            volume: 231,\n            price: 229.95,\n            created_at: 1593610492167\n          }\n        ]\n      },\n      {\n        op: 'notify',\n        topic: 'public.BSV-USD.liquidation_orders',\n        ts: 1593585531616,\n        data: [\n          {\n            symbol: 'BSV',\n            contract_code: 'BSV-USD',\n            direction: 'sell',\n            offset: 'close',\n            volume: 3,\n            price: 153.28,\n            created_at: 1593585531562\n          }\n        ]\n      },\n      {\n        ch: 'market.BTC-USD.bbo',\n        ts: 1630454400735,\n        tick: {\n          mrid: 114759822380,\n          id: 1630454400,\n          bid: [47152.3, 1436],\n          ask: [47152.4, 4635],\n          ts: 1630454400734,\n          version: 114759822380,\n          ch: 'market.BTC-USD.bbo'\n        }\n      }\n    ]\n\n    const huobiDMSwap = createMapper('huobi-dm-swap')\n\n    for (const message of messages) {\n      const mappedMessages = huobiDMSwap.map(message, new Date('2019-12-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map huobi-dm-linear-swap, messages', () => {\n    const messages = [\n      { id: '3', subbed: 'market.BTC-USDT.depth.size_150.high_freq', ts: 1606780800116, status: 'ok' },\n      { op: 'sub', cid: '1', topic: 'public.BTC-USDT.funding_rate', ts: 1606780803260, 'err-code': 0 },\n\n      {\n        ch: 'market.EOS-USDT.trade.detail',\n        ts: 1606780814945,\n        tick: {\n          id: 291891365,\n          ts: 1606780814931,\n          data: [{ amount: 6, ts: 1606780814931, id: 2918913650000, price: 3.2639, direction: 'buy' }]\n        }\n      },\n      {\n        ch: 'market.EOS-USDT.trade.detail',\n        ts: 1606780832971,\n        tick: {\n          id: 291892467,\n          ts: 1606780832955,\n          data: [{ amount: 30, ts: 1606780832955, id: 2918924670000, price: 3.2658, direction: 'buy' }]\n        }\n      },\n\n      {\n        ch: 'market.ETC-USDT.depth.size_150.high_freq',\n        tick: {\n          asks: [\n            [6.7918, 118],\n            [6.7941, 0]\n          ],\n          bids: [],\n          ch: 'market.ETC-USDT.depth.size_150.high_freq',\n          event: 'update',\n          id: 826962660,\n          mrid: 826962660,\n          ts: 1606780833036,\n          version: 27290512\n        },\n        ts: 1606780833036\n      },\n\n      {\n        ch: 'market.BTC-USDT.basis.1min.close',\n        ts: 1606780806356,\n        tick: {\n          id: 1606780800,\n          index_price: '19695.41',\n          contract_price: '19717.9',\n          basis: '22.49',\n          basis_rate: '0.0011418904201537312500729865486425517'\n        }\n      },\n\n      {\n        ch: 'market.BTC-USDT.open_interest',\n        generated: true,\n        data: [{ volume: 3063121.0, amount: 3063.121, symbol: 'BTC', value: 60398313.5659, contract_code: 'BTC-USDT' }],\n        ts: 1606780807036\n      },\n\n      {\n        op: 'notify',\n        topic: 'public.BTC-USDT.funding_rate',\n        ts: 1606780803260,\n        data: [\n          {\n            symbol: 'BTC',\n            contract_code: 'BTC-USDT',\n            fee_asset: 'USDT',\n            funding_time: '1606780800000',\n            funding_rate: '0.000100000000000000',\n            estimated_rate: '0.000236636095370214',\n            settlement_time: '1606780800000'\n          }\n        ]\n      },\n\n      {\n        op: 'notify',\n        topic: 'public.BTC-USDT.liquidation_orders',\n        ts: 1608226502344,\n        data: [\n          {\n            symbol: 'BTC',\n            contract_code: 'BTC-USDT',\n            direction: 'sell',\n            offset: 'close',\n            volume: 227.0,\n            price: 23350.5,\n            created_at: 1608226502284,\n            amount: 0.227,\n            trade_turnover: 5300.5635\n          }\n        ]\n      },\n      {\n        ch: 'market.BTC-USDT.bbo',\n        ts: 1630454400495,\n        tick: {\n          mrid: 64797873746,\n          id: 1630454400,\n          bid: [47176.5, 1],\n          ask: [47176.6, 9249],\n          ts: 1630454400495,\n          version: 64797873746,\n          ch: 'market.BTC-USDT.bbo'\n        }\n      },\n      {\n        ch: 'market.BTC-USDT.trade.detail',\n        ts: 1666114554581,\n        tick: {\n          id: 118655891999,\n          ts: 1666114554480,\n          data: [\n            { amount: 2, quantity: 0.002, trade_turnover: 38.85, ts: 1666114554480, id: 1186558919990000, price: 19425, direction: '' }\n          ]\n        }\n      }\n    ]\n\n    const huobiDMSwap = createMapper('huobi-dm-linear-swap')\n\n    for (const message of messages) {\n      const mappedMessages = huobiDMSwap.map(message, new Date('2020-12-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map huobi-dm-options, messages', () => {\n    const messages = [\n      {\n        ch: 'market.BTC-USDT-201204-C-17000.trade.detail',\n        ts: 1606743006033,\n        tick: {\n          id: 263462636,\n          ts: 1606743005993,\n          data: [\n            { amount: 8, ts: 1606743005993, id: 2634626360000, price: 1969.99, direction: 'buy' },\n            { amount: 20, ts: 1606743005993, id: 2634626360001, price: 1970, direction: 'buy' }\n          ]\n        }\n      },\n      {\n        ch: 'market.ETH-USDT-210521-P-3000.depth.size_150.high_freq',\n        tick: {\n          asks: [\n            [106, 74],\n\n            [239.94, 3613]\n          ],\n          bids: [[51, 5]],\n          ch: 'market.ETH-USDT-210521-P-3000.depth.size_150.high_freq',\n          event: 'snapshot',\n          id: 769970495,\n          mrid: 769970495,\n          ts: 1621295988496,\n          version: 107218\n        },\n        ts: 1621295988498\n      },\n      {\n        ch: 'market.BTC-USDT-210625-C-87000.depth.size_150.high_freq',\n        tick: {\n          asks: [[4116.94, 578]],\n          bids: [],\n          ch: 'market.BTC-USDT-210625-C-87000.depth.size_150.high_freq',\n          event: 'update',\n          id: 769971704,\n          mrid: 769971704,\n          ts: 1621296059496,\n          version: 1736113\n        },\n        ts: 1621296059498\n      },\n      {\n        ch: 'market.BTC-USDT-210521-C-42000.open_interest',\n        generated: true,\n        data: [\n          {\n            volume: 684.0,\n            amount: 0.684,\n            symbol: 'BTC',\n            contract_type: 'this_week',\n            contract_code: 'BTC-USDT-210521-P-42000',\n            trade_partition: 'USDT',\n            trade_amount: 0.792,\n            trade_volume: 792,\n            trade_turnover: 3237.37806\n          }\n        ],\n        ts: 1621296002336\n      },\n      {\n        ch: 'market.BTC-USDT.option_index',\n        generated: true,\n        data: { symbol: 'BTC-USDT', index_price: 43501.21, index_ts: 1621295997270 },\n        ts: 1621296002825\n      },\n      {\n        ch: 'market.BTC-USDT-210521-P-42000.option_market_index',\n        generated: true,\n        data: {\n          contract_code: 'BTC-USDT-210521-P-42000',\n          symbol: 'BTC',\n          iv_last_price: 1.62902357,\n          iv_ask_one: 1.64869787,\n          iv_bid_one: 1.13185884,\n          iv_mark_price: 1.39190675,\n          delta: -0.3704996546766173,\n          gamma: 0.00006528,\n          theta: -327.85540508,\n          vega: 15.70293917,\n          ask_one: 2000,\n          bid_one: 1189.49,\n          last_price: 1968.83,\n          mark_price: 1594.739777491571343067,\n          trade_partition: 'USDT',\n          contract_type: 'this_week',\n          option_right_type: 'P'\n        },\n        ts: 1621296002820\n      }\n    ]\n\n    const huobiDMOptionsMapper = createMapper('huobi-dm-options')\n\n    for (const message of messages) {\n      const mappedMessages = huobiDMOptionsMapper.map(message, new Date('2021-05-03T00:00:00.1309902Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map bybit messages', () => {\n    const messages = [\n      {\n        success: true,\n        ret_msg: '',\n        conn_id: 'f428f979-3fd2-4b1e-aa12-f42ef3bc4a66',\n        request: {\n          op: 'subscribe',\n          args: ['trade.BTCUSD']\n        }\n      },\n      {\n        topic: 'instrument_info.100ms.ETHUSD',\n        type: 'snapshot',\n        data: {\n          id: 2,\n          symbol: 'ETHUSD',\n          last_price_e4: 1906500,\n          last_tick_direction: 'MinusTick',\n          prev_price_24h_e4: 1875000,\n          price_24h_pcnt_e6: 16800,\n          high_price_24h_e4: 1950000,\n          low_price_24h_e4: 1864500,\n          prev_price_1h_e4: 1915000,\n          price_1h_pcnt_e6: -4438,\n          mark_price_e4: 1905000,\n          index_price_e4: 1904900,\n          open_interest: 13793020,\n          open_value_e8: 7302549080059,\n          total_turnover_e8: 8510047221366513,\n          turnover_24h_e8: 33613080478038,\n          total_volume: 17203142911,\n          volume_24h: 64058841,\n          funding_rate_e6: 100,\n          predicted_funding_rate_e6: 100,\n          cross_seq: 311869653,\n          created_at: '2019-01-25T09:12:06Z',\n          updated_at: '2019-11-06T12:49:56Z',\n          next_funding_time: '2019-11-06T16:00:00Z',\n          countdown_hour: 4\n        },\n        cross_seq: 311872222,\n        timestamp_e6: 1573044649041458\n      },\n      {\n        topic: 'orderBookL2_25.BTCUSD',\n        type: 'snapshot',\n        data: [\n          { price: '9353.50', symbol: 'BTCUSD', id: 93535000, side: 'Buy', size: 58486 },\n          { price: '9366.00', symbol: 'BTCUSD', id: 93660000, side: 'Sell', size: 704729 }\n        ],\n        cross_seq: 794201904,\n        timestamp_e6: 1573044648627110\n      },\n      {\n        topic: 'orderBookL2_25.BTCUSD',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [{ price: '9367.00', symbol: 'BTCUSD', id: 93670000, side: 'Sell', size: 674462 }],\n          insert: [],\n          transactTimeE6: 0\n        },\n        cross_seq: 794201917,\n        timestamp_e6: 1573044650028026\n      },\n      {\n        topic: 'trade.BTCUSD',\n        data: [\n          {\n            timestamp: '2019-11-06T12:50:52.000Z',\n            symbol: 'BTCUSD',\n            side: 'Buy',\n            size: 6000,\n            price: 9366,\n            tick_direction: 'ZeroPlusTick',\n            trade_id: '8c53dd53-2df5-563d-8e3b-e0dbba7c55a0',\n            cross_seq: 794201989\n          }\n        ]\n      },\n      {\n        topic: 'orderBookL2_25.XRPUSD',\n        type: 'delta',\n        data: {\n          delete: [{ price: '0.3013', symbol: 'XRPUSD', id: 3013, side: 'Sell' }],\n          update: [{ price: '0.3010', symbol: 'XRPUSD', id: 3010, side: 'Buy', size: 224986 }],\n          insert: [{ price: '0.3038', symbol: 'XRPUSD', id: 3038, side: 'Sell', size: 41761 }],\n          transactTimeE6: 0\n        },\n        cross_seq: 322932462,\n        timestamp_e6: 1573045141027590\n      },\n      {\n        topic: 'instrument_info.100ms.EOSUSD',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [\n            {\n              id: 4,\n              symbol: 'EOSUSD',\n              last_tick_direction: 'ZeroMinusTick',\n              total_turnover_e8: 220614611978549345,\n              turnover_24h_e8: 1804511683074981,\n              total_volume: 8223153999,\n              volume_24h: 65324494,\n              cross_seq: 344634644,\n              created_at: '2018-10-17T11:53:15Z',\n              updated_at: '2019-11-06T12:59:58Z'\n            }\n          ],\n          insert: []\n        },\n        cross_seq: 344634644,\n        timestamp_e6: 1573045198449619\n      },\n      {\n        topic: 'instrument_info.100ms.BTCUSD',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [\n            {\n              id: 1,\n              symbol: 'BTCUSD',\n              last_price_e4: 92915000,\n              last_tick_direction: 'PlusTick',\n              price_24h_pcnt_e6: -13222,\n              price_1h_pcnt_e6: -2201,\n              total_turnover_e8: 1264996883399380,\n              turnover_24h_e8: 4918593756702,\n              total_volume: 118238483891,\n              volume_24h: 459925565,\n              cross_seq: 795142862,\n              created_at: '2018-11-14T16:33:26Z',\n              updated_at: '2019-11-06T20:03:01Z'\n            }\n          ],\n          insert: []\n        },\n        cross_seq: 795142862,\n        timestamp_e6: 1573070581891131\n      },\n      {\n        topic: 'orderBook_200.100ms.EOSUSD',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [\n            { price: '4.159', symbol: 'EOSUSD', id: 41590, side: 'Sell', size: 94085 },\n            { price: '4.136', symbol: 'EOSUSD', id: 41360, side: 'Buy', size: 112459 }\n          ],\n          insert: [],\n          transactTimeE6: 0\n        },\n        cross_seq: 534365684,\n        timestamp_e6: 1580515259599816\n      },\n      {\n        topic: 'orderBookL2_25.BTCUSDT',\n        type: 'delta',\n        data: { delete: [], update: [{ price: '9452.50', symbol: 'BTCUSDT', id: '94525000', side: 'Sell', size: 9.95 }], insert: [] },\n        cross_seq: '177025198',\n        timestamp_e6: '1590683460293107'\n      },\n      {\n        topic: 'trade.BTCUSDT',\n        data: [\n          {\n            symbol: 'BTCUSDT',\n            tick_direction: 'MinusTick',\n            price: '9452.00',\n            size: 0.001,\n            timestamp: '2020-05-28T16:31:02.000Z',\n            trade_time_ms: '1590683462124',\n            side: 'Sell',\n            trade_id: 'bfbbb893-0971-5733-8eb2-aab164d0a552'\n          }\n        ]\n      },\n      {\n        topic: 'instrument_info.100ms.BTCUSDT',\n        type: 'delta',\n        data: {\n          update: [\n            {\n              id: 1,\n              symbol: 'BTCUSDT',\n              index_price_e4: '94496200',\n              cross_seq: '177025335',\n              created_at: '1970-01-01T00:00:00.000Z',\n              updated_at: '2020-05-28T16:31:02.000Z'\n            }\n          ]\n        },\n        cross_seq: '177025391',\n        timestamp_e6: '1590683462401579'\n      },\n      {\n        topic: 'trade.ETHUSD',\n        data: [\n          {\n            trade_time_ms: 1590683463041,\n            timestamp: '2020-05-28T16:31:03.000Z',\n            symbol: 'ETHUSD',\n            side: 'Buy',\n            size: 1,\n            price: 215.15,\n            tick_direction: 'PlusTick',\n            trade_id: '52079383-86f0-52bf-ab1f-f943a34a8aeb',\n            cross_seq: 736789193\n          }\n        ]\n      },\n      {\n        topic: 'orderBookL2_25.XRPUSD',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [{ price: '0.1984', symbol: 'XRPUSD', id: 1984, side: 'Sell', size: 183205 }],\n          insert: [],\n          transactTimeE6: 0\n        },\n        cross_seq: 584609909,\n        timestamp_e6: 1590683463122042\n      },\n      {\n        topic: 'trade.BTCUSDT',\n        data: [\n          {\n            symbol: 'BTCUSDT',\n            tick_direction: 'PlusTick',\n            price: '9452.00',\n            size: 0.001,\n            timestamp: '2020-05-28T16:31:21.000Z',\n            trade_time_ms: '1590683481987',\n            side: 'Buy',\n            trade_id: 'b79bae67-1526-5ee6-adee-cf88e8a691a6'\n          }\n        ]\n      },\n      {\n        topic: 'orderBookL2_25.BTCUSDT',\n        type: 'snapshot',\n        data: {\n          order_book: [{ price: '9483.00', symbol: 'BTCUSDT', id: '94830000', side: 'Sell', size: 9.16 }]\n        },\n        cross_seq: '176990958',\n        timestamp_e6: '1590682503852140'\n      },\n      {\n        topic: 'orderBookL2_25.BTCUSD',\n        type: 'snapshot',\n        data: [{ price: '9462.50', symbol: 'BTCUSD', id: 94625000, side: 'Buy', size: 35140 }],\n        cross_seq: 1628388493,\n        timestamp_e6: 1590682503318949\n      },\n\n      {\n        topic: 'orderBookL2_25.BTCUSD',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [\n            { price: '9465.50', symbol: 'BTCUSD', id: 94655000, side: 'Buy', size: 101535 },\n            { price: '9480.50', symbol: 'BTCUSD', id: 94805000, side: 'Sell', size: 121205 },\n            { price: '9467.50', symbol: 'BTCUSD', id: 94675000, side: 'Buy', size: 46177 }\n          ],\n          insert: [],\n          transactTimeE6: 0\n        },\n        cross_seq: 1628388501,\n        timestamp_e6: 1590682504061720\n      },\n      {\n        topic: 'orderBookL2_25.BTCUSD',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [{ price: '9474.50', symbol: 'BTCUSD', id: 94745000, side: 'Buy', size: 214147 }],\n          insert: [],\n          transactTimeE6: 0\n        },\n        cross_seq: 1628388509,\n        timestamp_e6: 1590682504459494\n      },\n      {\n        topic: 'orderBookL2_25.BTCUSDT',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [\n            { price: '9472.50', symbol: 'BTCUSDT', id: '94725000', side: 'Buy', size: 22.390999 },\n            { price: '9466.00', symbol: 'BTCUSDT', id: '94660000', side: 'Buy', size: 2.17 },\n            { price: '9469.50', symbol: 'BTCUSDT', id: '94695000', side: 'Buy', size: 3.331 }\n          ],\n          insert: []\n        },\n        cross_seq: '176991944',\n        timestamp_e6: '1590682528033099'\n      },\n      {\n        topic: 'orderBook_200.100ms.BTCUSDT',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [\n            { price: '9472.50', symbol: 'BTCUSDT', id: '94725000', side: 'Buy', size: 22.390999 },\n            { price: '9466.00', symbol: 'BTCUSDT', id: '94660000', side: 'Buy', size: 2.17 },\n            { price: '9469.50', symbol: 'BTCUSDT', id: '94695000', side: 'Buy', size: 3.331 }\n          ],\n          insert: []\n        },\n        cross_seq: '176991944',\n        timestamp_e6: '1590682528035169'\n      },\n      {\n        topic: 'instrument_info.100ms.BTCUSDT',\n        type: 'snapshot',\n        data: {\n          id: 1,\n          symbol: 'BTCUSDT',\n          last_price_e4: '94695000',\n          last_tick_direction: 'PlusTick',\n          prev_price_24h_e4: '91615000',\n          price_24h_pcnt_e6: '33618',\n          high_price_24h_e4: '95330000',\n          low_price_24h_e4: '90515000',\n          prev_price_1h_e4: '94395000',\n          price_1h_pcnt_e6: '3178',\n          mark_price_e4: '94751300',\n          index_price_e4: '94739400',\n          open_interest_e8: '447123000000',\n          total_turnover_e8: '942044488647300000',\n          turnover_24h_e8: '10388254798149995',\n          total_volume_e8: '115158480000000',\n          volume_24h_e8: '1118447100000',\n          funding_rate_e6: '93',\n          predicted_funding_rate_e6: '100',\n          cross_seq: '176990247',\n          created_at: '1970-01-01T00:00:00.000Z',\n          updated_at: '2020-05-28T16:14:34.000Z'\n        },\n        cross_seq: '176990933',\n        timestamp_e6: '1590682502904608'\n      }\n    ]\n\n    let bybit = createMapper('bybit', new Date('2019-12-23'))\n\n    for (const message of messages) {\n      const mappedMessages = bybit.map(message, new Date('2019-12-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    bybit = createMapper('bybit', new Date('2019-12-24'))\n\n    const messagesIncludingOrderBook200 = [\n      {\n        topic: 'orderBookL2_25.BTCUSD',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [{ price: '9360.00', symbol: 'BTCUSD', id: 93600000, side: 'Sell', size: 43624 }],\n          insert: [],\n          transactTimeE6: 0\n        },\n        cross_seq: 1116030773,\n        timestamp_e6: 1580515259707361\n      },\n      {\n        topic: 'orderBook_200.100ms.BTCUSD',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [{ price: '9352.50', symbol: 'BTCUSD', id: 93525000, side: 'Sell', size: 238589 }],\n          insert: [],\n          transactTimeE6: 0\n        },\n        cross_seq: 1116030776,\n        timestamp_e6: 1580515259758557\n      },\n      {\n        topic: 'liquidation.BTCUSD',\n        generated: true,\n        data: [{ id: 3422858, qty: 836, side: 'Sell', time: 1608280339753, symbol: 'BTCUSD', price: 23216 }]\n      },\n      {\n        topic: 'instrument_info.100ms.BTCUSDM21',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [\n            {\n              id: 1,\n              symbol: 'BTCUSDM21',\n              symbol_name: 'BTCUSD0625',\n              symbol_year: 2021,\n              contract_type: 'InverseFutures',\n              coin: 'BTC',\n              quote_symbol: 'BTCUSD',\n              mode: 'MergedSingle',\n              start_trading_time_e9: 1615449600000000000,\n              time_to_settle: 9140100,\n              settle_time_e9: 1624608000000000000,\n              mark_price_e4: 608243538,\n              index_price_e4: 565850800,\n              fair_basis_e8: 429342000000,\n              fair_basis_rate_e8: 7586575,\n              basis_in_year_e8: 26118474,\n              cross_seq: 7182433\n            }\n          ],\n          insert: []\n        },\n        cross_seq: 7182693,\n        timestamp_e6: 1615467900200258\n      },\n      {\n        topic: 'instrument_info.100ms.LINKUSDT',\n        type: 'delta',\n        data: {\n          update: [\n            {\n              id: 5,\n              symbol: 'LINKUSDT',\n              mark_price_e4: '297710',\n              index_price_e4: '297530',\n              cross_seq: '1575602495',\n              created_at: '1970-01-01T00:00:00.000Z',\n              updated_at: '2021-03-11T13:04:49.000Z'\n            }\n          ]\n        },\n        cross_seq: '1575604210',\n        timestamp_e6: '1615467899958860'\n      },\n      {\n        topic: 'instrument_info.100ms.ETHUSDU21',\n        type: 'delta',\n        data: {\n          delete: [],\n          update: [\n            {\n              id: 4,\n              symbol: 'ETHUSDU21',\n              symbol_name: 'ETHUSD0924',\n              symbol_year: 2021,\n              contract_type: 'InverseFutures',\n              coin: 'ETH',\n              quote_symbol: 'ETHUSD',\n              mode: 'MergedSingle',\n              start_trading_time_e9: 1621839600000000000,\n              time_to_settle: 1843200,\n              settle_time_e9: 1632470400000000000,\n              bid1_price_e4: 38213500,\n              bid1_price: '3821.35',\n              ask1_price_e4: 38214000,\n              ask1_price: '3821.40',\n              mark_price_e4: 38216700,\n              mark_price: '3821.67',\n              expect_price: '0.00',\n              cross_seq: 5645795973\n            }\n          ],\n          insert: []\n        },\n        cross_seq: 5645798595,\n        timestamp_e6: 1630627199958670\n      },\n\n      {\n        topic: 'liquidation.BTCUSD',\n        generated: true,\n        data: [\n          { id: 10759329, qty: 1257079, side: 'Buy', time: 1632123292903, symbol: 'BTCUSD', price: 44662.5 },\n          { id: 10759323, qty: 2314, side: 'Buy', time: 1632123294901, symbol: 'BTCUSD', price: 44593 },\n          { id: 10759328, qty: 650, side: 'Buy', time: 1632123294908, symbol: 'BTCUSD', price: 44598 }\n        ]\n      },\n\n      {\n        topic: 'liquidation.ETHUSD',\n        data: {\n          symbol: 'ETHUSD',\n          side: 'Sell',\n          price: '3384.15',\n          qty: '3655',\n          time: 1631608881954\n        }\n      },\n      { topic: 'liquidation.BTCUSD', data: { symbol: 'BTCUSD', side: 'Sell', price: '45171.00', qty: '2329', time: 1632123949005 } },\n      { topic: 'liquidation.BTCUSDT', data: { symbol: 'BTCUSDT', side: 'Sell', price: '45212.50', qty: '0.009', time: 1632123952732 } },\n      {\n        topic: 'instrument_info.100ms.XLMUSDT',\n        type: 'delta',\n        data: {\n          update: [\n            {\n              id: 21,\n              symbol: 'XLMUSDT',\n              last_price_e4: '28765',\n              last_price: '0.28765',\n              price_24h_pcnt_e6: '68139',\n              price_1h_pcnt_e6: '4539',\n              total_turnover_e8: '125642016505120000',\n              turnover_24h_e8: '894268603420001',\n              total_volume_e8: '374847497700000000',\n              volume_24h_e8: '3145533600000000',\n              cross_seq: '9611371383',\n              created_at: '2021-08-17T07:23:14.000Z',\n              updated_at: '2022-01-13T08:38:52.000Z',\n              next_funding_time: '1970-01-01T00:00:00Z',\n              count_down_hour: '-456127',\n              ask1_price_e4: '28765',\n              ask1_price: '0.28765'\n            }\n          ]\n        },\n        cross_seq: '9611371386',\n        timestamp_e6: '1642063132602687'\n      },\n      {\n        topic: 'orderBookL2_25.BTCPERP',\n        type: 'snapshot',\n        data: {\n          orderBook: [{ price: '21039.00', symbol: 'BTCPERP', id: '210390000', side: 'Buy', size: 0.274 }]\n        },\n        crossSeq: '385207691',\n        timestampE6: '1655804219680634'\n      },\n      {\n        topic: 'orderBookL2_25.BTCPERP',\n        type: 'delta',\n        data: { delete: [], update: [{ price: '21203.00', symbol: 'BTCPERP', id: '212030000', side: 'Sell', size: 4.651 }], insert: [] },\n        crossSeq: '385208816',\n        timestampE6: '1655804279360632'\n      },\n      {\n        topic: 'trade.BTCPERP',\n        data: [\n          {\n            symbol: 'BTCPERP',\n            tickDirection: 'PlusTick',\n            price: '21213.00',\n            size: 0.007,\n            timestamp: '2022-06-21T09:36:58.000Z',\n            tradeTimeMs: '1655804218524',\n            side: 'Sell',\n            tradeId: '7aad7741-f763-5f78-bf43-c38b29a40f67'\n          }\n        ]\n      },\n      {\n        topic: 'instrument_info.100ms.BTCPERP',\n        type: 'snapshot',\n        data: {\n          id: 1,\n          symbol: 'BTCPERP',\n          lastPriceE4: '212130000',\n          lastPrice: '21213.00',\n          lastTickDirection: 'PlusTick',\n          prevPrice24hE4: '207180000',\n          prevPrice24h: '20718.00',\n          price24hPcntE6: '23892',\n          highPrice24hE4: '214085000',\n          highPrice24h: '21408.50',\n          lowPrice24hE4: '198005000',\n          lowPrice24h: '19800.50',\n          prevPrice1hE4: '213315000',\n          prevPrice1h: '21331.50',\n          price1hPcntE6: '-5555',\n          markPriceE4: '212094700',\n          markPrice: '21209.47',\n          indexPriceE4: '212247200',\n          indexPrice: '21224.72',\n          openInterestE8: '18317600000',\n          totalTurnoverE8: '94568739311650000',\n          turnover24hE8: '1375880657550000',\n          totalVolumeE8: '2734659400000',\n          volume24hE8: '66536799999',\n          fundingRateE6: '-900',\n          predictedFundingRateE6: '-614',\n          crossSeq: '385207672',\n          createdAt: '1970-01-01T00:00:00.000Z',\n          updatedAt: '2022-06-21T09:36:58.000Z',\n          nextFundingTime: '2022-06-21T16:00:00Z',\n          countDownHour: '7',\n          bid1PriceE4: '212130000',\n          bid1Price: '21213.00',\n          ask1PriceE4: '212135000',\n          ask1Price: '21213.50'\n        },\n        crossSeq: '385207695',\n        timestampE6: '1655804220916799'\n      },\n      {\n        topic: 'instrument_info.100ms.BTCPERP',\n        type: 'delta',\n        data: {\n          update: [\n            {\n              id: 1,\n              symbol: 'BTCPERP',\n              markPriceE4: '212094600',\n              markPrice: '21209.46',\n              crossSeq: '385207672',\n              createdAt: '1970-01-01T00:00:00.000Z',\n              updatedAt: '2022-06-21T09:36:58.000Z'\n            }\n          ]\n        },\n        crossSeq: '385207725',\n        timestampE6: '1655804221013058'\n      }\n    ]\n\n    for (const message of messagesIncludingOrderBook200) {\n      const mappedMessages = bybit.map(message, new Date('2019-12-14T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    const messagesV5 = [\n      {\n        topic: 'publicTrade.BTCUSD',\n        type: 'snapshot',\n        ts: 1680673823566,\n        data: [\n          {\n            T: 1680673823564,\n            s: 'BTCUSD',\n            S: 'Buy',\n            v: '5823',\n            p: '28560.50',\n            L: 'PlusTick',\n            i: '0cbf2330-952d-5d03-a462-4bf826c867af',\n            BT: false\n          },\n          {\n            T: 1680673823564,\n            s: 'BTCUSD',\n            S: 'Buy',\n            v: '3',\n            p: '28560.50',\n            L: 'ZeroPlusTick',\n            i: '912e56de-9ed6-5f4f-9421-f0ff5a42d84a',\n            BT: false\n          },\n          {\n            T: 1680673823564,\n            s: 'BTCUSD',\n            S: 'Buy',\n            v: '5593',\n            p: '28560.50',\n            L: 'ZeroPlusTick',\n            i: 'cb558b74-cf72-5157-b53b-93944db336ad',\n            BT: false\n          }\n        ]\n      },\n      {\n        topic: 'publicTrade.LTCUSDT',\n        type: 'snapshot',\n        ts: 1680688979985,\n        data: [\n          {\n            T: 1680688979983,\n            s: 'LTCUSDT',\n            S: 'Buy',\n            v: '0.4',\n            p: '94.53',\n            L: 'ZeroMinusTick',\n            i: '4c7b6bdc-b4a3-5716-9c7b-bbe01dc7072f',\n            BT: false\n          }\n        ]\n      },\n      {\n        topic: 'orderbook.1.BTCUSDT',\n        type: 'snapshot',\n        ts: 1680673820717,\n        data: { s: 'BTCUSDT', b: [['28552.00', '0.047']], a: [['28552.10', '25.433']], u: 7003305, seq: 50193540681 }\n      },\n      {\n        topic: 'orderbook.1.BTCUSDT',\n        type: 'delta',\n        ts: 1680673821137,\n        data: { s: 'BTCUSDT', b: [['28552.00', '0.012']], a: [], u: 7003306, seq: 50193543147 }\n      },\n      {\n        topic: 'orderbook.50.BTCPERP',\n        type: 'snapshot',\n        ts: 1680673821591,\n        data: {\n          s: 'BTCPERP',\n          b: [['28555.20', '0.597']],\n          a: [['28555.30', '0.225']],\n          u: 20683568,\n          seq: 10916156551\n        }\n      },\n      {\n        topic: 'orderbook.50.BTCPERP',\n        type: 'delta',\n        ts: 1680673821651,\n        data: { s: 'BTCPERP', b: [['28555.20', '0.677']], a: [['28555.30', '0.029']], u: 20683569, seq: 10916156553 }\n      },\n      {\n        topic: 'tickers.BTCUSD',\n        type: 'snapshot',\n        data: {\n          symbol: 'BTCUSD',\n          tickDirection: 'MinusTick',\n          price24hPcnt: '0.023362',\n          lastPrice: '28560.00',\n          prevPrice24h: '27908.00',\n          highPrice24h: '28815.00',\n          lowPrice24h: '27862.50',\n          prevPrice1h: '28500.50',\n          markPrice: '28560.00',\n          indexPrice: '28566.94',\n          openInterest: '449736676',\n          openInterestValue: '15747.08',\n          turnover24h: '23389.1894',\n          volume24h: '661543991',\n          nextFundingTime: '1680681600000',\n          fundingRate: '0.0001',\n          bid1Price: '28560.00',\n          bid1Size: '340549',\n          ask1Price: '28560.50',\n          ask1Size: '70817'\n        },\n        cs: 20856433578,\n        ts: 1680673822577\n      },\n      {\n        topic: 'tickers.BTCUSD',\n        type: 'delta',\n        data: {\n          symbol: 'BTCUSD',\n          price24hPcnt: '0.023362',\n          openInterest: '449736674',\n          fundingRate: '0.0001',\n          bid1Price: '28560.00',\n          bid1Size: '340549',\n          ask1Price: '28560.50',\n          ask1Size: '70817'\n        },\n        cs: 20856433603,\n        ts: 1680673822776\n      },\n      {\n        topic: 'tickers.BTCUSDU23',\n        type: 'snapshot',\n        data: {\n          symbol: 'BTCUSDU23',\n          tickDirection: 'MinusTick',\n          price24hPcnt: '0.023231',\n          lastPrice: '29026.00',\n          prevPrice24h: '28367.00',\n          highPrice24h: '29253.00',\n          lowPrice24h: '28350.00',\n          prevPrice1h: '28947.50',\n          markPrice: '29023.60',\n          indexPrice: '28566.94',\n          openInterest: '4547176',\n          openInterestValue: '156.67',\n          turnover24h: '279.6816',\n          volume24h: '8041559',\n          deliveryTime: '2023-09-29T08:00:00Z',\n          basisRate: '0.01600486',\n          deliveryFeeRate: '0.0005',\n          predictedDeliveryPrice: '0.00',\n          basis: '459.06',\n          nextFundingTime: '',\n          fundingRate: '',\n          bid1Price: '29025.00',\n          bid1Size: '3100',\n          ask1Price: '29027.00',\n          ask1Size: '3095'\n        },\n        cs: 12321470232,\n        ts: 1680673822099\n      },\n      {\n        topic: 'tickers.BTCUSDU23',\n        type: 'delta',\n        data: {\n          symbol: 'BTCUSDU23',\n          price24hPcnt: '0.023231',\n          bid1Price: '29025.00',\n          bid1Size: '3100',\n          ask1Price: '29027.00',\n          ask1Size: '3095',\n          basisRate: '0.01603111',\n          deliveryFeeRate: '0.0005'\n        },\n        cs: 12321470236,\n        ts: 1680673822199\n      },\n      {\n        topic: 'tickers.BTCUSDT',\n        type: 'snapshot',\n        data: {\n          symbol: 'BTCUSDT',\n          tickDirection: 'ZeroMinusTick',\n          price24hPcnt: '0.023333',\n          lastPrice: '28550.70',\n          prevPrice24h: '27899.70',\n          highPrice24h: '28797.10',\n          lowPrice24h: '27842.80',\n          prevPrice1h: '28474.70',\n          markPrice: '28552.81',\n          indexPrice: '28562.25',\n          openInterest: '52774.528',\n          openInterestValue: '1506861070.82',\n          turnover24h: '4273027716.4294',\n          volume24h: '151185.5160',\n          nextFundingTime: '1680681600000',\n          fundingRate: '0.0001',\n          bid1Price: '28550.70',\n          bid1Size: '2.049',\n          ask1Price: '28550.80',\n          ask1Size: '15.328'\n        },\n        cs: 50193544280,\n        ts: 1680673821770\n      },\n      {\n        data: {\n          price: '0.03803',\n          side: 'Buy',\n          size: '1637',\n          symbol: 'GALAUSDT',\n          updatedTime: 1673251091822\n        },\n        topic: 'liquidation.GALAUSDT',\n        ts: 1673251091822,\n        type: 'snapshot'\n      },\n      {\n        topic: 'liquidation.XRPUSD',\n        type: 'snapshot',\n        ts: 1680673944093,\n        data: { updatedTime: 1680673944093, symbol: 'XRPUSD', side: 'Sell', size: '6949', price: '0.5149' }\n      },\n      {\n        topic: 'orderbook.1.BTCUSDT',\n        type: 'delta',\n        ts: 1682092584425,\n        data: {\n          s: 'BTCUSDT',\n          b: [\n            ['27994.60', '0'],\n            ['27991.70', '0.777']\n          ],\n          a: [\n            ['27994.40', '0.058'],\n            ['27994.80', '0']\n          ],\n          u: 1188472,\n          seq: 11155892580\n        }\n      },\n      {\n        topic: 'allLiquidation.PIPPINUSDT',\n        type: 'snapshot',\n        ts: 1740480207578,\n        data: [{ T: 1740480207110, s: 'PIPPINUSDT', S: 'Sell', v: '2846', p: '0.02456' }]\n      }\n    ]\n\n    bybit = createMapper('bybit', new Date('2023-04-05'))\n\n    for (const message of messagesV5) {\n      const mappedMessages = bybit.map(message, new Date('2023-04-05'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    const messagesAllLiquidation = [\n      {\n        topic: 'allLiquidation.PIPPINUSDT',\n        type: 'snapshot',\n        ts: 1740480207578,\n        data: [{ T: 1740480207110, s: 'PIPPINUSDT', S: 'Sell', v: '2846', p: '0.02456' }]\n      }\n    ]\n    bybit = createMapper('bybit', new Date('2025-02-26'))\n\n    for (const message of messagesAllLiquidation) {\n      const mappedMessages = bybit.map(message, new Date('2025-02-26'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map bybit-options messages', () => {\n    const messages = [\n      {\n        id: 'publicTrade.BTC-3414637898-1680652922102',\n        topic: 'publicTrade.BTC',\n        ts: 1680652922102,\n        data: [\n          {\n            p: '985',\n            v: '0.01',\n            i: '0404c393-8419-5bac-95c3-5fea28404754',\n            T: 1680652922081,\n            BT: false,\n            s: 'BTC-28APR23-29500-C',\n            S: 'Sell'\n          }\n        ],\n        type: 'snapshot'\n      },\n      {\n        id: 'orderbook.25.BTC-30JUN23-45000-P-3032585156-1680652790918',\n        topic: 'orderbook.25.BTC-30JUN23-45000-P',\n        ts: 1680652790918,\n        data: { s: 'BTC-30JUN23-45000-P', b: [], a: [], u: 0 },\n        type: 'snapshot'\n      },\n      {\n        id: 'orderbook.25.SOL-28APR23-30-C-3360274030-1680652786355',\n        topic: 'orderbook.25.SOL-28APR23-30-C',\n        ts: 1680652786355,\n        data: {\n          s: 'SOL-28APR23-30-C',\n          b: [['0.01', '50']],\n          a: [['1.74', '46']],\n          u: 24641\n        },\n        type: 'snapshot'\n      },\n      {\n        id: 'orderbook.25.SOL-28APR23-30-C-3360275694-1680652799661',\n        topic: 'orderbook.25.SOL-28APR23-30-C',\n        ts: 1680652799661,\n        data: {\n          s: 'SOL-28APR23-30-C',\n          b: [],\n          a: [\n            ['1.74', '0'],\n            ['1.75', '46']\n          ],\n          u: 24642\n        },\n        type: 'delta'\n      },\n      {\n        id: 'tickers.SOL-28APR23-24-C-3414625745-1680652810254',\n        topic: 'tickers.SOL-28APR23-24-C',\n        ts: 1680652810254,\n        data: {\n          symbol: 'SOL-28APR23-24-C',\n          bidPrice: '0.34',\n          bidSize: '10',\n          bidIv: '0.6004',\n          askPrice: '3.11',\n          askSize: '51',\n          askIv: '2.0007',\n          lastPrice: '1.6',\n          highPrice24h: '1.6',\n          lowPrice24h: '1.6',\n          markPrice: '1.99054639',\n          indexPrice: '20.93',\n          markPriceIv: '1.4674',\n          underlyingPrice: '20.93',\n          openInterest: '20',\n          turnover24h: '211.8',\n          volume24h: '10',\n          totalVolume: '20',\n          totalTurnover: '421',\n          delta: '0.42723543',\n          gamma: '0.0505193',\n          vega: '0.02075941',\n          theta: '-0.06527514',\n          predictedDeliveryPrice: '0',\n          change24h: '-0.11111112'\n        },\n        type: 'snapshot'\n      },\n      {\n        id: 'tickers.ETH-30JUN23-200-P-3164908233-1680652859919',\n        topic: 'tickers.ETH-30JUN23-200-P',\n        ts: 1680652859919,\n        data: {\n          symbol: 'ETH-30JUN23-200-P',\n          bidPrice: '0.1',\n          bidSize: '5',\n          bidIv: '1.4744',\n          askPrice: '0',\n          askSize: '0',\n          askIv: '0',\n          lastPrice: '1',\n          highPrice24h: '0',\n          lowPrice24h: '0',\n          markPrice: '0.2548522',\n          indexPrice: '1871.27',\n          markPriceIv: '1.5991',\n          underlyingPrice: '1886.16',\n          openInterest: '231.5',\n          turnover24h: '0',\n          volume24h: '0',\n          totalVolume: '232',\n          totalTurnover: '362305',\n          delta: '-0.00052953',\n          gamma: '0.00000128',\n          vega: '0.01719155',\n          theta: '-0.0159208',\n          predictedDeliveryPrice: '0',\n          change24h: '0'\n        },\n        type: 'snapshot'\n      }\n    ]\n\n    const mapper = createMapper('bybit-options', new Date('2023-04-05'))\n\n    for (const message of messages) {\n      const mappedMessages = mapper.map(message, new Date('2023-04-05'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map okcoin messages', () => {\n    const messages = [\n      {\n        table: 'spot/depth',\n        action: 'partial',\n        data: [\n          {\n            instrument_id: 'BTC-USD',\n            asks: [['7624.75', '0.0425', '1']],\n            bids: [['766.0', '1.359', '1']],\n            timestamp: '2019-11-22T00:00:01.547Z'\n          }\n        ]\n      },\n      { event: 'subscribe', channel: 'spot/ticker:LTC-USD' },\n      {\n        table: 'spot/ticker',\n        data: [\n          {\n            last: '4.166',\n            open_24h: '4.2',\n            best_bid: '4.166',\n            high_24h: '4.2',\n            low_24h: '4.166',\n            base_volume_24h: '14626.6263',\n            quote_volume_24h: '60934.5251',\n            best_ask: '5.51',\n            instrument_id: 'ETC-USD',\n            timestamp: '2019-11-21T23:59:04.392Z'\n          }\n        ]\n      },\n      {\n        table: 'spot/depth',\n        action: 'update',\n        data: [\n          {\n            instrument_id: 'BTC-EUR',\n            asks: [['6914.33', '0.5985', '1']],\n            bids: [],\n            timestamp: '2019-11-22T00:00:30.968Z',\n            checksum: -1061607485\n          }\n        ]\n      },\n      {\n        table: 'spot/trade',\n        data: [\n          { side: 'buy', trade_id: '459', price: '20.38', size: '0.1', instrument_id: 'DCR-USD', timestamp: '2019-11-09T07:53:40.478Z' }\n        ]\n      },\n      {\n        table: 'spot/trade',\n        data: [\n          { side: 'buy', trade_id: '460', price: '20.38', size: '0.1', instrument_id: 'DCR-USD', timestamp: '2019-11-09T07:53:40.479Z' }\n        ]\n      }\n    ]\n    const okcoin = createMapper('okcoin', new Date('2020-01-01'))\n\n    for (const message of messages) {\n      const mappedMessages = okcoin.map(message, new Date('2019-11-09T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map hitbtc messages', () => {\n    const messages = [\n      { jsonrpc: '2.0', result: true, id: 1 },\n      {\n        jsonrpc: '2.0',\n        method: 'snapshotOrderbook',\n        params: {\n          ask: [{ price: '0.00000004255', size: '31400' }],\n          bid: [{ price: '0.00000004245', size: '2200' }],\n          symbol: 'BCNBTC',\n          sequence: 1591130,\n          timestamp: '2019-11-22T00:00:00.040Z'\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'updateOrderbook',\n        params: {\n          ask: [],\n          bid: [\n            { price: '0.000104487', size: '0' },\n            { price: '0.000073314', size: '8865' }\n          ],\n          symbol: 'POAETH',\n          sequence: 1702925,\n          timestamp: '2019-11-22T00:00:40.148Z'\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'snapshotTrades',\n        params: {\n          data: [{ id: 712213931, price: '0.335590', quantity: '0.030', side: 'sell', timestamp: '2019-11-22T00:00:40.462Z' }],\n          symbol: 'XMRETH'\n        }\n      },\n      {\n        jsonrpc: '2.0',\n        method: 'updateTrades',\n        params: {\n          data: [{ id: 712213931, price: '0.335590', quantity: '0.030', side: 'sell', timestamp: '2019-11-22T00:00:40.462Z' }],\n          symbol: 'XMRETH'\n        }\n      }\n    ]\n    const hitbtc = createMapper('hitbtc')\n\n    for (const message of messages) {\n      const mappedMessages = hitbtc.map(message, new Date('2019-12-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map phemex messages', () => {\n    const messages = [\n      {\n        market24h: {\n          close: 58820000,\n          fundingRate: -39075,\n          high: 62710000,\n          indexPrice: 58981349,\n          low: 58605000,\n          markPrice: 58958348,\n          open: 62640000,\n          openInterest: 10113855,\n          predFundingRate: -260708,\n          symbol: 'BTCUSD',\n          turnover: 3061842677702,\n          volume: 186213143\n        },\n        timestamp: 1585526459199354689\n      },\n      {\n        book: { asks: [], bids: [[58795000, 46385]] },\n        depth: 30,\n        sequence: 675453625,\n        symbol: 'BTCUSD',\n        timestamp: 1585526459126872850,\n        type: 'incremental'\n      },\n      {\n        book: {\n          asks: [\n            [14730, 62442],\n            [14840, 7957]\n          ],\n          bids: [[14680, 64579]]\n        },\n        depth: 30,\n        sequence: 208228196,\n        symbol: 'XTZUSD',\n        timestamp: 1585526458842641407,\n        type: 'incremental'\n      },\n      { sequence: 251739378, symbol: 'LINKUSD', trades: [[1585526459381695957, 'Buy', 20210, 56]], type: 'incremental' },\n      { sequence: 251739378, symbol: 'LINKUSD', trades: [[1585526459381695957, 'Buy', 20210, 56]], type: 'snapshot' },\n      {\n        book: {\n          asks: [[58690000, 237505]],\n          bids: [[58685000, 328758]]\n        },\n        depth: 30,\n        sequence: 675440727,\n        symbol: 'BTCUSD',\n        timestamp: 1585526400543970299,\n        type: 'snapshot'\n      },\n      {\n        book: {\n          asks: [],\n          bids: [\n            [954532000000, 8863300],\n            [954528000000, 0]\n          ]\n        },\n        depth: 30,\n        sequence: 1067554850,\n        symbol: 'sBTCUSDT',\n        timestamp: 1591268221628126444,\n        type: 'incremental'\n      },\n      { sequence: 1067555713, symbol: 'sETHUSDT', trades: [[1591268224163281134, 'Buy', 24025000000, 10576000]], type: 'incremental' },\n      { sequence: 1067556417, symbol: 'sBTCUSDT', trades: [[1591268226414925245, 'Sell', 954488000000, 279100]], type: 'incremental' },\n      { sequence: 615011372, symbol: 'LINKUSD', trades: [[1591268230652613373, 'Sell', 43780, 6]], type: 'incremental' },\n      {\n        depth: 0,\n        orderbook_p: {\n          asks: [['16548', '1.453']],\n          bids: [\n            ['16543.7', '0.825'],\n\n            ['13244', '0.031'],\n            ['10750', '0.005']\n          ]\n        },\n        sequence: 80321058,\n        symbol: 'BTCUSDT',\n        timestamp: 1669198850490348246,\n        type: 'snapshot'\n      },\n      {\n        sequence: 79157171,\n        symbol: 'BTCUSDT',\n        trades_p: [[1669198793402790477, 'Buy', '16545.6', '0.7']],\n        type: 'incremental'\n      },\n      {\n        depth: 0,\n        orderbook_p: {\n          asks: [['16547.7', '1.138']],\n          bids: []\n        },\n        sequence: 80321070,\n        symbol: 'BTCUSDT',\n        timestamp: 1669198853605814582,\n        type: 'incremental'\n      },\n      {\n        data: [\n          [\n            'SOLUSDT',\n            '11.246',\n            '13.41',\n            '10.91',\n            '13.029',\n            '10445.82',\n            '127687.14224',\n            '0',\n            '13.03062296',\n            '13.03154351',\n            '0.0001',\n            '0.0001'\n          ],\n\n          [\n            'BTCUSDT',\n            '15713.1',\n            '16626',\n            '15685.7',\n            '16545.6',\n            '1374.476',\n            '22296790.4579',\n            '0',\n            '16553.56998432',\n            '16554.73942506',\n            '0.0001',\n            '0.0001'\n          ]\n        ],\n        method: 'perp_market24h_pack_p.update',\n        timestamp: 1669198855202180601,\n        type: 'incremental'\n      },\n      { sequence: 80321106, symbol: 'XRPUSDT', trades_p: [[1669198857616162039, 'Buy', '0.3758', '244.65']], type: 'incremental' }\n    ]\n    const phemex = createMapper('phemex')\n\n    for (const message of messages) {\n      const mappedMessages = phemex.map(message, new Date('2019-12-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map gate-io messages', () => {\n    const messages = [\n      {\n        method: 'trades.update',\n        params: ['BTC_USDT', [{ id: 259066862, time: 1593561592.4327581, price: '9137.38', amount: '0.0047', type: 'buy' }]],\n        id: null\n      },\n      {\n        method: 'trades.update',\n        params: [\n          'BTC_USDT',\n          [\n            { id: 259066877, time: 1593561600.7751219, price: '9137.38', amount: '0.002736014', type: 'buy' },\n            { id: 259066876, time: 1593561600.655988, price: '9137.38', amount: '0.0019152098', type: 'buy' }\n          ]\n        ],\n        id: null\n      },\n      {\n        method: 'ticker.update',\n        params: [\n          'CVC_USDT',\n          {\n            period: 86400,\n            open: '0.0276',\n            close: '0.0269',\n            high: '0.0276',\n            low: '0.0262',\n            last: '0.0269',\n            change: '-2.53',\n            quoteVolume: '14765.07143428',\n            baseVolume: '394.022772826982'\n          }\n        ],\n        id: null\n      },\n      {\n        method: 'depth.update',\n        params: [\n          true,\n          {\n            asks: [['10.95', '14.4232']],\n            bids: [['10.53', '26.681457246']]\n          },\n          'BTG_USDT'\n        ],\n        id: null\n      },\n      {\n        method: 'depth.update',\n        params: [\n          false,\n          {\n            bids: [\n              ['0.01631', '1134158.88940972'],\n              ['0.01625', '41254.93309']\n            ]\n          },\n          'TRX_USDT'\n        ],\n        id: null\n      },\n      {\n        method: 'depth.update',\n        params: [\n          true,\n          {\n            id: 9295517054,\n            bids: [['17131', '0.0057']],\n            asks: [['17132.2', '0.002']],\n            current: 1669860182.101,\n            update: 1669860182.101\n          },\n          'BTC_USDT'\n        ],\n        id: null,\n        v: 3\n      }\n    ]\n\n    let gateIOMapper = createMapper('gate-io', new Date('2023-04-20T00:00:00.2750543Z'))\n\n    for (const message of messages) {\n      const mappedMessages = gateIOMapper.map(message, new Date('2020-07-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    const v4Messages = [\n      {\n        time: 1682689046,\n        time_ms: 1682689046133,\n        channel: 'spot.trades',\n        event: 'update',\n        result: {\n          id: 5541729598,\n          create_time: 1682689046,\n          create_time_ms: '1682689046123.0',\n          side: 'buy',\n          currency_pair: 'TLOS_BTC',\n          amount: '89.238',\n          price: '0.00000644'\n        }\n      },\n      {\n        time: 1682689046,\n        time_ms: 1682689046142,\n        channel: 'spot.book_ticker',\n        event: 'update',\n        result: { t: 1682689046131, u: 517377894, s: 'ETC_ETH', b: '0.010326', B: '0.001', a: '0.010366', A: '10' }\n      },\n\n      {\n        channel: 'spot.order_book_update',\n        event: 'snapshot',\n        generated: true,\n        symbol: 'BTC_USDT',\n        result: {\n          id: 13934528632,\n          current: 1682689052257,\n          update: 1682689052253,\n          asks: [['29303', '0.0068']],\n          bids: [['29302.9', '0.2483']]\n        }\n      },\n      {\n        time: 1682689045,\n        time_ms: 1682689045562,\n        channel: 'spot.order_book_update',\n        event: 'update',\n        result: {\n          t: 1682689045398,\n          e: 'depthUpdate',\n          E: 1682689045,\n          s: 'BTC_USDT',\n          U: 13934528633,\n          u: 13934528633,\n          b: [['29291.4', '0.5124']],\n          a: []\n        }\n      }\n    ]\n\n    gateIOMapper = createMapper('gate-io', new Date('2023-04-29T00:00:00.2750543Z'))\n\n    for (const message of v4Messages) {\n      const mappedMessages = gateIOMapper.map(message, new Date('2023-04-29T00:00:00.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    // Test GateIOV4OrderBookV2ChangeMapper for dates >= 2025-08-01\n    const v4OrderBookV2Messages = [\n      // Subscribe message (should be ignored)\n      {\n        time: 1754006400,\n        time_ms: 1754006400138,\n        conn_id: '06a3248d8f02479a',\n        trace_id: '1dc9df8b7bf583c0d0e9e18079d504ec',\n        channel: 'spot.obu',\n        event: 'subscribe',\n        payload: ['ob.MAF_USDT.400'],\n        result: { status: 'success' },\n        requestId: '1dc9df8b7bf583c0d0e9e18079d504ec'\n      },\n      // Full snapshot message\n      {\n        channel: 'spot.obu',\n        result: {\n          t: 1754006400261,\n          full: true,\n          s: 'ob.BTC_USDT.400',\n          u: 25847113075,\n          b: [\n            ['115765.1', '0.337839'],\n            ['115764.2', '0.005'],\n            ['115763.3', '0.004365']\n          ],\n          a: [\n            ['115765.2', '0.631155'],\n            ['115765.9', '0.001534'],\n            ['115769.4', '0.005014']\n          ]\n        },\n        time_ms: 1754006400264,\n        event: 'update'\n      },\n      // Incremental update message\n      {\n        channel: 'spot.obu',\n        result: {\n          t: 1754006460600,\n          s: 'ob.BTC_USDT.400',\n          u: 25847129996,\n          U: 25847129970,\n          b: [\n            ['115576.7', '0.050772'],\n            ['115275.2', '0.000039'],\n            ['115717.7', '0'],\n            ['115578.5', '0']\n          ],\n          a: [\n            ['115731.3', '0.687304'],\n            ['115733.8', '0.000864'],\n            ['115745.7', '0.025922'],\n            ['115742.9', '0'],\n            ['115746.1', '0']\n          ]\n        },\n        time_ms: 1754006460601,\n        event: 'update'\n      }\n    ]\n\n    gateIOMapper = createMapper('gate-io', new Date('2025-08-01T00:00:00.000Z'))\n\n    for (const message of v4OrderBookV2Messages) {\n      const mappedMessages = gateIOMapper.map(message, new Date('2025-08-01T00:00:00.000Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map gate-io-futures messages', () => {\n    const messages = [\n      {\n        time: 1593561600,\n        channel: 'futures.order_book',\n        event: 'all',\n        error: null,\n        result: {\n          contract: 'ZRX_USD',\n          asks: [{ p: '0.3351', s: 108 }],\n          bids: [{ p: '0.2728', s: 10 }]\n        }\n      },\n      {\n        time: 1593561604,\n        channel: 'futures.order_book',\n        event: 'update',\n        error: null,\n        result: [\n          { p: '222.25', s: -390, c: 'BCH_USDT', id: 242207247 },\n          { p: '222.25', s: 0, c: 'BCH_USDT', id: 242207248 }\n        ]\n      },\n      {\n        time: 1593561604,\n        channel: 'futures.order_book',\n        event: 'update',\n        error: null,\n        result: [{ p: '0.01643', s: 0, c: 'TRX_USDT', id: 62446928 }]\n      },\n      {\n        time: 1593561606,\n        channel: 'futures.order_book',\n        event: 'update',\n        error: null,\n        result: [\n          { p: '221.3', s: 12405, c: 'BCH_USD', id: 453347637 },\n          { p: '223.35', s: -2500, c: 'BCH_USD', id: 453347638 }\n        ]\n      },\n      {\n        time: 1593561606,\n        channel: 'futures.tickers',\n        event: 'update',\n        error: null,\n        result: [\n          {\n            contract: 'ETC_USD',\n            last: '5.67',\n            change_percentage: '-1.31',\n            funding_rate: '0.0001',\n            mark_price: '5.735',\n            index_price: '5.734',\n            total_size: '46366',\n            volume_24h: '2713',\n            quanto_base_rate: '0.0006277',\n            volume_24h_usd: '14051',\n            volume_24h_btc: '1',\n            funding_rate_indicative: '0.0001',\n            volume_24h_quote: '14051',\n            volume_24h_settle: '1',\n            volume_24h_base: '2478'\n          },\n          {\n            contract: 'ETC_USD',\n            last: '5.67',\n            change_percentage: '-1.31',\n            funding_rate: '0.0001',\n            mark_price: '5.735',\n            index_price: '5.734',\n            total_size: '46366',\n            volume_24h: '2713',\n            quanto_base_rate: '0.00062772',\n            volume_24h_usd: '14051',\n            volume_24h_btc: '1',\n            funding_rate_indicative: '0.0001',\n            volume_24h_quote: '14051',\n            volume_24h_settle: '1',\n            volume_24h_base: '2478'\n          }\n        ]\n      },\n      {\n        time: 1593561616,\n        channel: 'futures.trades',\n        event: 'update',\n        error: null,\n        result: [{ size: 1, id: 31615, create_time: 1593561616, price: '217.2', contract: 'COMP_USDT' }]\n      },\n      {\n        time: 1593561623,\n        channel: 'futures.trades',\n        event: 'update',\n        error: null,\n        result: [{ size: -22, id: 1696009, create_time: 1593561623, price: '225.5', contract: 'ETH_USDT' }]\n      },\n      { time: 1593561600, channel: 'futures.trades', event: 'subscribe', error: null, result: { status: 'success' } },\n      { time: 1593561600, channel: 'futures.order_book', event: 'subscribe', error: null, result: { status: 'success' } },\n      { time: 1593561600, channel: 'futures.tickers', event: 'subscribe', error: null, result: { status: 'success' } },\n      {\n        time: 1595376003,\n        channel: 'futures.order_book',\n        event: 'update',\n        error: null,\n        result: [\n          { p: '4.2201', s: 117, c: 'HT_USDT', id: 139300729 },\n          { p: '4.2907', s: -117, c: 'HT_USDT', id: 139300730 }\n        ]\n      },\n      {\n        time: 1595376005,\n        channel: 'futures.order_book',\n        event: 'all',\n        error: null,\n        result: {\n          contract: 'XRP_USDT',\n          asks: [{ p: '0.1996', s: 93 }],\n          bids: [{ p: '0.1954', s: 17 }]\n        }\n      },\n\n      {\n        time: 1593600293,\n        channel: 'futures.order_book',\n        event: 'update',\n        error: null,\n        result: [\n          { p: '227.2', s: 4884, c: 'ETH_USDT', id: 363072474 },\n          { p: '227.2', s: 4881, c: 'ETH_USDT', id: 363072475 },\n          { p: '227.2', s: 2440, c: 'ETH_USDT', id: 363072476 },\n          { p: '227.2', s: 1155, c: 'ETH_USDT', id: 363072477 },\n          { p: '227.2', s: 0, c: 'ETH_USDT', id: 363072478 },\n          { p: '227.55', s: -4925, c: 'ETH_USDT', id: 363072479 }\n        ]\n      },\n      {\n        time: 1593600249,\n        channel: 'futures.order_book',\n        event: 'update',\n        error: null,\n        result: [\n          { p: '223.75', s: 14, c: 'BCH_USDT', id: 242529117 },\n          { p: '223.75', s: 0, c: 'BCH_USDT', id: 242529118 },\n          { p: '223.7', s: 0, c: 'BCH_USDT', id: 242529119 },\n          { p: '223.6', s: 0, c: 'BCH_USDT', id: 242529120 },\n          { p: '223.6', s: -20, c: 'BCH_USDT', id: 242529121 },\n          { p: '223.55', s: 15039, c: 'BCH_USDT', id: 242529122 },\n          { p: '223.55', s: 15089, c: 'BCH_USDT', id: 242529123 }\n        ]\n      },\n      {\n        time: 1617952183,\n        channel: 'futures.tickers',\n        event: 'update',\n        error: null,\n        result: [\n          [\n            {\n              contract: 'BSV_USDT',\n              last: '244.9',\n              change_percentage: '0.30',\n              funding_rate: '0.000962',\n              mark_price: '244.78',\n              index_price: '244.75',\n              total_size: '417015',\n              volume_24h: '1327595',\n              quanto_base_rate: '',\n              funding_rate_indicative: '0.000216',\n              volume_24h_quote: '3251280',\n              volume_24h_settle: '3251280',\n              volume_24h_base: '13275'\n            }\n          ]\n        ]\n      },\n      {\n        time: 1647501206,\n        channel: 'futures.tickers',\n        event: 'update',\n        result: {\n          contract: 'ETC_USD',\n          last: '25.595',\n          change_percentage: '0',\n          total_size: '14',\n          volume_24h: '0',\n          volume_24h_base: '0',\n          volume_24h_quote: '0',\n          volume_24h_settle: '0',\n          mark_price: '26.929',\n          funding_rate: '0.0001',\n          funding_rate_indicative: '0.0001',\n          index_price: '26.9291',\n          quanto_base_rate: '0.0006594',\n          volume_24_usd: '0',\n          volume_24_btc: '0'\n        }\n      },\n      {\n        id: null,\n        time: 1648771200,\n        channel: 'futures.book_ticker',\n        event: 'update',\n        error: null,\n        result: { t: 1648771200080, u: 3502782378, s: 'BTC_USD', b: '45534.7', B: 2500, a: '45534.8', A: 15227 }\n      },\n      {\n        id: null,\n        time: 1648880663,\n        channel: 'futures.book_ticker',\n        event: 'update',\n        error: null,\n        result: { t: 0, u: 0, s: 'BSW_USDT', b: '', B: 0, a: '', A: 0 }\n      },\n      {\n        time: 1614556850,\n        channel: 'futures.trades',\n        event: 'update',\n        error: null,\n        result: [\n          { size: 1, id: 13654526, create_time: 1614556850, create_time_ms: 1614556850860, price: '45300', contract: 'BTC_USDT' },\n          { size: 2000, id: 13654527, create_time: 1614556850, create_time_ms: 1614556850860, price: '45300', contract: 'BTC_USDT' },\n          { size: 999, id: 13654528, create_time: 1614556850, create_time_ms: 1614556850860, price: '45300', contract: 'BTC_USDT' }\n        ]\n      },\n      {\n        time: 1680307560,\n        channel: 'futures.order_book',\n        event: 'all',\n        result: {\n          t: 1680307560929,\n          id: 35064314497,\n          contract: 'BTC_USDT',\n          asks: [{ p: '28455.9', s: 19415 }],\n          bids: [{ p: '28455.8', s: 29510 }]\n        }\n      },\n      {\n        time: 1677629168,\n        time_ms: 1677629168840,\n        channel: 'futures.tickers',\n        event: 'update',\n        result: [\n          {\n            contract: 'BTC_USDT',\n            last: '23160.2',\n            change_percentage: '-1.3224',\n            total_size: '153482780',\n            volume_24h: '155496714',\n            volume_24h_base: '15549',\n            volume_24h_quote: '360157621',\n            volume_24h_settle: '360157621',\n            mark_price: '23175.64',\n            funding_rate: '0.0001',\n            funding_rate_indicative: '0.0001',\n            index_price: '23173.35',\n            quanto_base_rate: '',\n            low_24h: '23018.3',\n            high_24h: '23589.2'\n          }\n        ]\n      },\n      {\n        time: 1683303594,\n        time_ms: 1683303594244,\n        channel: 'futures.order_book',\n        event: 'all',\n        result: { asks: [], bids: [], contract: 'ALICE_USDT', id: 0, t: 0 }\n      }\n    ]\n    const gateIOFuturesMapper = createMapper('gate-io-futures')\n\n    for (const message of messages) {\n      const mappedMessages = gateIOFuturesMapper.map(message, new Date('2020-07-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map gate-io-futures decimal size messages', () => {\n    const gateIOFuturesMapper = createMapper('gate-io-futures')\n    const localTimestamp = new Date('2026-03-25T12:53:00.000Z')\n\n    const tradeMessages = Array.from(\n      gateIOFuturesMapper.map(\n        {\n          time: 1774443183,\n          channel: 'futures.trades',\n          event: 'update',\n          result: [{ size: '-0.25', id: 1, create_time: 1774443183, create_time_ms: 1774443183399, price: '2171.44', contract: 'ETH_USDT' }]\n        },\n        localTimestamp\n      )\n    )\n\n    expect(tradeMessages).toMatchSnapshot()\n\n    const bookTickerMessages = Array.from(\n      gateIOFuturesMapper.map(\n        {\n          id: null,\n          time: 1774443214,\n          channel: 'futures.book_ticker',\n          event: 'update',\n          error: null,\n          result: { t: 1774443214909, u: 92738902534, s: 'ETH_USDT', b: '2172.82', B: '0', a: '2172.85', A: '1053.5' }\n        },\n        localTimestamp\n      )\n    )\n\n    expect(bookTickerMessages).toMatchSnapshot()\n\n    const bookChangeMessages = Array.from(\n      gateIOFuturesMapper.map(\n        {\n          time: 1774443214,\n          channel: 'futures.order_book',\n          event: 'all',\n          result: {\n            t: 1774443214909,\n            contract: 'ETH_USDT',\n            asks: [{ p: '2172.85', s: '1053.5' }],\n            bids: [{ p: '2172.82', s: '0.25' }]\n          }\n        },\n        localTimestamp\n      )\n    )\n\n    expect(bookChangeMessages).toMatchSnapshot()\n  })\n\n  test('map poloniex messages', () => {\n    const messages = [\n      [\n        14,\n        98112891,\n        [\n          [\n            'i',\n            {\n              currencyPair: 'BTC_BTS',\n              orderBook: [\n                {\n                  '0.00000253': '11210.09190734',\n                  '0.00000254': '264.83225116'\n                },\n                {\n                  '0.00000252': '184.56548785'\n                }\n              ]\n            }\n          ]\n        ],\n        'BTC_BTS'\n      ],\n      [14, 98112892, [['o', 1, '0.00000249', '84147.13099837']], 'BTC_BTS'],\n      [\n        239,\n        158180518,\n        [\n          ['o', 0, '158.19075628', '3.74516873'],\n          ['t', '572068', 1, '158.19075628', '0.16519127', 1593561602]\n        ],\n        'USDC_BCHSV'\n      ],\n      [\n        231,\n        80867762,\n        [\n          ['o', 1, '0.03647020', '2075.23326384'],\n          ['o', 1, '0.03647022', '2174.03060057']\n        ],\n        'USDT_MANA'\n      ],\n      [\n        14,\n        98112906,\n        [\n          ['o', 0, '0.00000253', '8597.42720734'],\n          ['o', 0, '0.00000254', '2877.49695116']\n        ]\n      ],\n      [\n        212,\n        117638587,\n        [\n          ['o', 0, '0.25355332', '0.00000000'],\n          ['o', 0, '0.25245395', '4565.00000000']\n        ]\n      ],\n      [\n        114,\n        574692726,\n        [\n          ['o', 1, '0.00695218', '0.00000000'],\n          ['o', 1, '0.00695217', '0.00000000'],\n          ['t', '20441515', 0, '0.00695218', '98.55153490', 1593561636],\n          ['t', '20441516', 0, '0.00695217', '1.72607982', 1593561636]\n        ],\n        'BTC_XMR'\n      ],\n      [14, 98527492, [['t', 10384654, 1, '0.00000226', '299.99145733', 1597167360]], 'BTC_BTS']\n    ]\n\n    let poloniexMapper = createMapper('poloniex', new Date('2022-08-01T00:00:01.2750543Z'))\n\n    for (const message of messages) {\n      const mappedMessages = poloniexMapper.map(message, new Date('2020-07-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n\n    const v2Messages = [\n      {\n        event: 'subscribe',\n        channel: 'trades',\n        symbols: ['DASH_BTC', 'XEM_BTC']\n      },\n      {\n        channel: 'trades',\n        data: [\n          {\n            symbol: 'USDD_USDT',\n            amount: '53.17153856',\n            quantity: '53.0866',\n            takerSide: 'sell',\n            createTime: 1659916859838,\n            price: '1.0016',\n            id: '60100203',\n            ts: 1659916859843\n          }\n        ]\n      },\n      {\n        channel: 'book_lv2',\n        data: [\n          {\n            symbol: 'VSP_TRX',\n            createTime: 1659900600092,\n            asks: [['245.688', '145.01703']],\n            bids: [['0.062', '510.51612']],\n            lastId: 85,\n            id: 86,\n            ts: 1659916800614\n          }\n        ],\n        action: 'snapshot'\n      },\n      {\n        channel: 'book_lv2',\n        data: [\n          {\n            symbol: 'AAVE_BTC',\n            createTime: 1659916859818,\n            asks: [['0.004387', '1.18']],\n            bids: [],\n            lastId: 20251,\n            id: 20252,\n            ts: 1659916859824\n          }\n        ],\n        action: 'update'\n      }\n    ]\n\n    poloniexMapper = createMapper('poloniex', new Date('2022-08-02T00:00:01.2750543Z'))\n\n    for (const message of v2Messages) {\n      const mappedMessages = poloniexMapper.map(message, new Date('2022-08-02T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map coinflex messages', () => {\n    const messages = [\n      { channel: 'futures/depth:BTC-USD-SWAP-LIN', event: 'subscribe', success: true, timestamp: 1594684800279 },\n      { channel: 'trade:BTC-USD-SWAP-LIN', event: 'subscribe', success: true, timestamp: 1594684800280 },\n      { channel: 'ticker:BTC-USD-SWAP-LIN', event: 'subscribe', success: true, timestamp: 1594684800280 },\n      {\n        data: [\n          {\n            instrumentId: 'BTC-USD',\n            seqNum: 1594613594001171264,\n            asks: [\n              [9241, 1, 0, 0],\n              [9243.5, 0.967, 0, 0]\n            ],\n            checksum: 0,\n            bids: [\n              [9239.9, 0.46, 0, 0],\n              [9238.1, 0.5, 0, 0]\n            ],\n            timestamp: '1594684800290'\n          }\n        ],\n        action: 'partial',\n        table: 'futures/depth'\n      },\n      {\n        data: [\n          {\n            side: 'SELL',\n            quantity: '0.499900000',\n            price: '9237.500000000',\n            marketCode: 'BTC-USD-SWAP-LIN',\n            tradeId: '160061323905884640',\n            timestamp: '1594684856487'\n          }\n        ],\n        table: 'trade'\n      },\n      {\n        data: [\n          {\n            currencyVolume24h: '0.999800000',\n            high24h: '9237.500000000',\n            last: '9237.500000000',\n            lastQty: '0.499900000',\n            low24h: '9237.500000000',\n            markPrice: '9225.5',\n            marketCode: 'BTC-USD-SWAP-LIN',\n            open24h: '9237.500000000',\n            openInterest: '95.868400010',\n            timestamp: '1594684800000',\n            volume24h: '9235.652500000000000000'\n          }\n        ],\n        table: 'ticker'\n      },\n      {\n        data: [\n          {\n            side: 'BUY',\n            quantity: '0.258000000',\n            price: '9215.000000000',\n            marketCode: 'BTC-USD-SWAP-LIN',\n            tradeId: '160061323905902676',\n            timestamp: '1594738801694'\n          }\n        ],\n        table: 'trade'\n      },\n      {\n        data: [\n          {\n            side: 'SELL',\n            quantity: '0.817000000',\n            price: '9218.000000000',\n            marketCode: 'BTC-USD-SWAP-LIN',\n            tradeId: '160061323905902717',\n            timestamp: '1594738849445'\n          }\n        ],\n        table: 'trade'\n      },\n      {\n        data: [\n          {\n            currencyVolume24h: '21206.000000000',\n            high24h: '0.304000000',\n            last: '0.284000000',\n            lastQty: '100.000000000',\n            low24h: '0.284000000',\n            markPrice: '0.28725862068965517241',\n            marketCode: 'FLEX-USD',\n            open24h: '0.304000000',\n            openInterest: '0',\n            timestamp: '1594737689712',\n            volume24h: '6262.576000000000000000'\n          }\n        ],\n        table: 'ticker'\n      },\n      {\n        data: [\n          {\n            currencyVolume24h: '4234.002000000',\n            high24h: '86.000000000',\n            last: '83.000000000',\n            lastQty: '17.979000000',\n            low24h: '81.000000000',\n            marketCode: 'BTC-USD-SPR-QP-LIN',\n            open24h: '82.000000000',\n            openInterest: '0',\n            timestamp: '1594733816647',\n            volume24h: '39119727.0229900000000000000'\n          }\n        ],\n        table: 'ticker'\n      }\n    ]\n\n    const coinflexMapper = createMapper('coinflex')\n\n    for (const message of messages) {\n      const mappedMessages = coinflexMapper.map(message, new Date('2020-07-01T00:00:01.2750543Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map upbit messages', () => {\n    const messages = [\n      {\n        type: 'orderbook',\n        code: 'KRW-DOT',\n        timestamp: 1614729599677,\n        total_ask_size: 1415.12521016,\n        total_bid_size: 8058.44442437,\n        orderbook_units: [\n          { ask_price: 41840.0, bid_price: 41730.0, ask_size: 103.6, bid_size: 47.62562404 },\n          { ask_price: 0, bid_price: 41720.0, ask_size: 102.9, bid_size: 250.0 }\n        ],\n        stream_type: 'REALTIME'\n      },\n      {\n        type: 'trade',\n        code: 'KRW-DOGE',\n        timestamp: 1614729599905,\n        trade_date: '2021-03-02',\n        trade_time: '23:59:59',\n        trade_timestamp: 1614729599000,\n        trade_price: 58.4,\n        trade_volume: 836.12040133,\n        ask_bid: 'ASK',\n        prev_closing_price: 57.5,\n        change: 'RISE',\n        change_price: 0.9,\n        sequential_id: 1614729599000000,\n        stream_type: 'REALTIME'\n      },\n      {\n        type: 'orderbook',\n        code: 'USDT-ETC',\n        timestamp: 1691530805062000,\n        total_ask_size: 426.46961964,\n        total_bid_size: 923.86058218,\n        orderbook_units: [\n          { ask_price: 18.14783928, bid_price: 17.56010719, ask_size: 8.3912024, bid_size: 10.76125737 },\n          { ask_price: 19.06366929, bid_price: 17.56008962, ask_size: 114.26866982, bid_size: 0.60098647 },\n          { ask_price: 19.06385993, bid_price: 17.46376733, ask_size: 68.19185642, bid_size: 40.08298935 },\n          { ask_price: 19.12, bid_price: 17.46376727, ask_size: 0.72930705, bid_size: 85.89212039 },\n          { ask_price: 19.21804586, bid_price: 17.46351855, ask_size: 2.43102349, bid_size: 10.37437886 },\n          { ask_price: 19.38409889, bid_price: 17.46323533, ask_size: 3.99384271, bid_size: 458.10526221 },\n          { ask_price: 19.47096205, bid_price: 17.46323528, ask_size: 7.56318421, bid_size: 258.85092546 },\n          { ask_price: 19.5, bid_price: 17.4250661, ask_size: 10.0, bid_size: 0.22290428 },\n          { ask_price: 20.0, bid_price: 17.4018, ask_size: 10.0, bid_size: 43.70611632 },\n          { ask_price: 20.3795999, bid_price: 17.07913668, ask_size: 24.02061287, bid_size: 10.35403701 },\n          { ask_price: 20.5, bid_price: 15.835, ask_size: 11.0, bid_size: 1.19942792 },\n          { ask_price: 20.86938843, bid_price: 15.33571539, ask_size: 16.54438329, bid_size: 0.52467383 },\n          { ask_price: 20.945925, bid_price: 15.045, ask_size: 0.7249055, bid_size: 1.25611255 },\n          { ask_price: 21.77325748, bid_price: 15.0, ask_size: 104.42260532, bid_size: 1.44779497 },\n          { ask_price: 22.0, bid_price: 14.994004, ask_size: 44.18802656, bid_size: 0.48159519 }\n        ],\n        stream_type: 'REALTIME'\n      }\n    ]\n\n    const upbit = createMapper('upbit')\n\n    for (const message of messages) {\n      const mappedMessages = upbit.map(message, new Date('2021-03-02T23:59:59.000Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map ascendex messages', () => {\n    const messages = [\n      { m: 'trades', symbol: 'BNB/USDT', data: [{ p: '233.9451', q: '0.30', ts: 1616716800368, bm: true, seqnum: 36028837135976585 }] },\n      {\n        m: 'trades',\n        symbol: 'BTC/USDT',\n        data: [\n          { p: '51297.85', q: '0.03393', ts: 1616716801842, bm: false, seqnum: 72057619793078351 },\n          { p: '51299.54', q: '0.00457', ts: 1616716801928, bm: false, seqnum: 72057619793078385 }\n        ]\n      },\n      { m: 'depth-realtime', symbol: 'XRP/USDT', data: { ts: 1621814400204, seqnum: 39862426, asks: [], bids: [['0.7892', '0']] } },\n      {\n        m: 'depth-snapshot-realtime',\n        symbol: 'XRP/USDT',\n        data: {\n          ts: 0,\n          seqnum: 39862426,\n          asks: [['0.7898', '1899']],\n          bids: [\n            ['0.78958', '498'],\n            ['0.78952', '499']\n          ]\n        }\n      },\n      { m: 'depth-realtime', symbol: 'XRP/USDT', data: { ts: 1621814400266, seqnum: 39862427, asks: [], bids: [['0.78721', '0']] } },\n      { m: 'trades', symbol: 'BTC-PERP', data: [{ p: '34816', q: '0.0500', ts: 1621814424397, bm: true, seqnum: 180143987382487678 }] },\n      {\n        m: 'futures-pricing-data',\n        con: [\n          {\n            t: 1621814344113,\n            s: 'BTC-PERP',\n            mp: '34638.370817096',\n            ip: '34670.285',\n            oi: '80.2099',\n            r: '0.000093927',\n            f: 1621814400000,\n            fi: 28800000\n          }\n        ],\n        col: [{ a: 'BCH', p: '552.29' }]\n      },\n\n      { m: 'bbo', symbol: 'PROM/USDT', data: { ts: 1633910400019, bid: ['17.39749', '2'], ask: ['17.67664', '21'] } }\n    ]\n\n    const ascendexMapper = createMapper('ascendex')\n\n    for (const message of messages) {\n      const mappedMessages = ascendexMapper.map(message, new Date('2021-05-24T00:59:59.000Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map dydx messages', () => {\n    const messages = [\n      {\n        type: 'subscribed',\n        connection_id: '22be6448-1464-45ff-ae7d-1204eac64d0f',\n        message_id: 2,\n        channel: 'v3_trades',\n        id: '1INCH-USD',\n        contents: {\n          trades: [{ side: 'BUY', size: '63', price: '5.632', createdAt: '2021-04-30T23:08:12.481Z' }]\n        }\n      },\n      {\n        type: 'channel_data',\n        connection_id: 'e368fe1e-a007-44bd-9532-8eacc81a8bbc',\n        message_id: 229,\n        id: 'BTC-USD',\n        channel: 'v3_trades',\n        contents: {\n          trades: [\n            { size: '0.075', side: 'SELL', price: '57696', createdAt: '2021-05-01T00:00:34.046Z' },\n            { size: '0.425', side: 'SELL', price: '57673', createdAt: '2021-05-01T00:00:34.046Z' }\n          ]\n        }\n      },\n      {\n        type: 'subscribed',\n        connection_id: '22be6448-1464-45ff-ae7d-1204eac64d0f',\n        message_id: 1,\n        channel: 'v3_orderbook',\n        id: '1INCH-USD',\n        contents: {\n          bids: [{ price: '5', offset: '118546101', size: '50' }],\n          asks: [{ price: '7', offset: '120842096', size: '20' }]\n        }\n      },\n      {\n        type: 'channel_data',\n        connection_id: '22be6448-1464-45ff-ae7d-1204eac64d0f',\n        message_id: 161,\n        id: '1INCH-USD',\n        channel: 'v3_orderbook',\n        contents: {\n          offset: '125090042',\n          bids: [],\n          asks: [\n            ['5.664', '3000'],\n            ['5.666', '0']\n          ]\n        }\n      },\n      {\n        type: 'channel_data',\n        connection_id: '22be6448-1464-45ff-ae7d-1204eac64d0f',\n        message_id: 161,\n        id: '1INCH-USD',\n        channel: 'v3_orderbook',\n        contents: {\n          offset: '125090041',\n          bids: [],\n          asks: [\n            ['5.664', '4000'],\n            ['5.666', '5']\n          ]\n        }\n      },\n      {\n        type: 'subscribed',\n        connection_id: '8c11ee31-dbca-49fa-9df0-fc973948b7b5',\n        message_id: 3,\n        channel: 'v3_markets',\n        contents: {\n          markets: {\n            'BTC-USD': {\n              market: 'BTC-USD',\n              status: 'ONLINE',\n              baseAsset: 'BTC',\n              quoteAsset: 'USD',\n              stepSize: '0.0001',\n              tickSize: '1',\n              indexPrice: '57794.7000',\n              oraclePrice: '57880.5200',\n              priceChange24H: '4257.9',\n              nextFundingRate: '0.0000587260',\n              nextFundingAt: '2021-05-01T00:00:00.000Z',\n              minOrderSize: '0.001',\n              type: 'PERPETUAL',\n              initialMarginFraction: '0.04',\n              maintenanceMarginFraction: '0.03',\n              volume24H: '4710467.697100',\n              trades24H: '663',\n              openInterest: '101.2026',\n              incrementalInitialMarginFraction: '0.01',\n              incrementalPositionSize: '0.5',\n              maxPositionSize: '30',\n              baselinePositionSize: '1.0',\n              allTimeLiquidationQuoteVolume: '3001153.615633',\n              dailyLiquidationQuoteVolume: '6047.074828'\n            }\n          }\n        }\n      },\n      {\n        type: 'channel_data',\n        connection_id: '8c11ee31-dbca-49fa-9df0-fc973948b7b5',\n        message_id: 221,\n        channel: 'v3_markets',\n        contents: { 'BTC-USD': { volume24H: '4739305.922100', trades24H: '665', openInterest: '101.2776' } }\n      },\n      {\n        type: 'subscribed',\n        connection_id: '989837bd-ea9b-4812-9744-c482199867fa',\n        message_id: 1,\n        channel: 'v3_orderbook',\n        id: 'ETH-USD',\n        contents: {\n          bids: [],\n          asks: [{ price: '2531.2', offset: '378828475', size: '0' }]\n        }\n      },\n      {\n        type: 'channel_data',\n        connection_id: '989837bd-ea9b-4812-9744-c482199867fa',\n        message_id: 12211,\n        id: 'ETH-USD',\n        channel: 'v3_orderbook',\n        contents: { offset: '378910896', bids: [], asks: [['2531.2', '2.5']] }\n      },\n\n      {\n        type: 'channel_data',\n        connection_id: '989837bd-ea9b-4812-9744-c482199867fa',\n        message_id: 12259,\n        id: 'ETH-USD',\n        channel: 'v3_orderbook',\n        contents: { offset: '378911283', bids: [['2531.2', '9.35']], asks: [['2531.2', '0']] }\n      },\n\n      {\n        type: 'channel_data',\n        connection_id: '989837bd-ea9b-4812-9744-c482199867fa',\n        message_id: 12260,\n        id: 'ETH-USD',\n        channel: 'v3_trades',\n        contents: { trades: [{ size: '2.5', side: 'BUY', price: '2531.2', createdAt: '2021-06-16T04:32:06.470Z' }] }\n      }\n    ]\n\n    const dydxMapper = createMapper('dydx')\n\n    for (const message of messages) {\n      const mappedMessages = dydxMapper.map(message, new Date('2021-05-01T00:00:37.000Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n\n  test('map serum messages', () => {\n    const messages = [\n      {\n        type: 'l2snapshot',\n        market: 'RAY/USDT',\n        timestamp: '2021-05-21T23:58:56.899Z',\n        slot: 79469186,\n        version: 3,\n        asks: [\n          ['5.235', '2571.1'],\n          ['5.240', '992.7']\n        ],\n        bids: [['5.202', '2405.1']]\n      },\n      {\n        type: 'l2update',\n        market: 'BTC/USDT',\n        timestamp: '2021-05-22T00:00:00.101Z',\n        slot: 79469279,\n        version: 3,\n        asks: [['37905.7', '0.0000']],\n        bids: [['36304.8', '0.0000']]\n      },\n      {\n        type: 'trade',\n        market: 'RAY/USDT',\n        timestamp: '2021-05-22T00:00:59.448Z',\n        slot: 79469377,\n        version: 3,\n        id: '96845406386975144808722|185.8|1621641659448',\n        side: 'buy',\n        price: '5.235',\n        size: '185.8'\n      },\n      {\n        type: 'quote',\n        market: 'OXY/USDT',\n        timestamp: '2021-09-30T23:55:43.411Z',\n        slot: 99161001,\n        version: 3,\n        bestAsk: ['2.2417', '995'],\n        bestBid: ['2.2173', '3051']\n      }\n    ]\n\n    const serumMapper = createMapper('serum')\n\n    for (const message of messages) {\n      const mappedMessages = serumMapper.map(message, new Date('2021-05-22T00:00:59.4642130Z'))\n      expect(mappedMessages).toMatchSnapshot()\n    }\n  })\n})\n\ntest('map bybit spot messages', () => {\n  const messages = [\n    { topic: 'depth', event: 'cancel', params: { symbol: 'DFIUSDT', binary: 'false', symbolName: 'DFIUSDT' }, code: '0', msg: 'Success' },\n    {\n      topic: 'depth',\n      event: 'sub',\n      params: { symbol: 'SAND2SUSDT', binary: 'false', symbolName: 'SAND2SUSDT' },\n      code: '0',\n      msg: 'Success'\n    },\n    {\n      topic: 'depth',\n      params: { symbol: 'BITBTC', binary: 'false', symbolName: 'BITBTC' },\n      data: {\n        s: 'BITBTC',\n        t: 1659311999986,\n        v: '132777961_22362914_8',\n        b: [['0.00002949', '25862.5']],\n        a: [['0.00002951', '555.8']]\n      }\n    },\n\n    {\n      topic: 'trade',\n      params: { symbol: 'ETHUSDT', binary: 'false', symbolName: 'ETHUSDT' },\n      data: { v: '2280000000007453966', t: 1659312000103, p: '1678.54', q: '1.4', m: true }\n    },\n\n    {\n      topic: 'bookTicker',\n      params: { symbol: 'BTCUSDT', binary: 'false', symbolName: 'BTCUSDT' },\n      data: { symbol: 'BTCUSDT', bidPrice: '23293.19', bidQty: '0.052479', askPrice: '23293.37', askQty: '0.001651', time: 1659312000113 }\n    }\n  ]\n\n  let bybitSpotMapper = createMapper('bybit-spot', new Date('2021-05-22T00:00:59.4642130Z'))\n\n  for (const message of messages) {\n    const mappedMessages = bybitSpotMapper.map(message, new Date('2021-05-22T00:00:59.4642130Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n\n  const messagesV5 = [\n    {\n      topic: 'publicTrade.BTCUSDT',\n      ts: 1680652847526,\n      type: 'snapshot',\n      data: [\n        { i: '2290000000050703789', T: 1680652847524, p: '28165.38', v: '0.041732', S: 'Sell', s: 'BTCUSDT', BT: false },\n        { i: '2290000000050703790', T: 1680652847524, p: '28165.38', v: '0.008513', S: 'Sell', s: 'BTCUSDT', BT: false },\n        { i: '2290000000050703791', T: 1680652847524, p: '28165.38', v: '0.042384', S: 'Sell', s: 'BTCUSDT', BT: false },\n        { i: '2290000000050703792', T: 1680652847524, p: '28165.38', v: '0.055371', S: 'Sell', s: 'BTCUSDT', BT: false }\n      ]\n    },\n    {\n      topic: 'publicTrade.BTCUSDC',\n      ts: 1680688980000,\n      type: 'snapshot',\n      data: [{ i: '2240000000041223438', T: 1680688979998, p: '28528.98', v: '0.00433', S: 'Buy', s: 'BTCUSDC', BT: false }]\n    },\n    {\n      topic: 'orderbook.1.BTCUSDT',\n      ts: 1680652806504,\n      type: 'snapshot',\n      data: { s: 'BTCUSDT', b: [['28165.07', '0.175231']], a: [['28165.08', '0.996816']], u: 20404754, seq: 4281281856 }\n    },\n    {\n      topic: 'orderbook.1.BTCUSDT',\n      ts: 1680652806615,\n      type: 'delta',\n      data: { s: 'BTCUSDT', b: [['28165.07', '0.166754']], a: [], u: 20404755, seq: 4281281875 }\n    },\n    {\n      topic: 'orderbook.50.BTCUSDT',\n      ts: 1680652808065,\n      type: 'snapshot',\n      data: {\n        s: 'BTCUSDT',\n        b: [['28162.57', '0.07562']],\n        a: [['28162.58', '0.506829']],\n        u: 59438060,\n        seq: 4281282229\n      }\n    },\n    {\n      topic: 'orderbook.50.BTCUSDT',\n      ts: 1680652808085,\n      type: 'delta',\n      data: {\n        s: 'BTCUSDT',\n        b: [\n          ['28161.04', '0.177474'],\n          ['28145.71', '0']\n        ],\n        a: [['28184.33', '0']],\n        u: 59438061,\n        seq: 4281282232\n      }\n    }\n  ]\n  bybitSpotMapper = createMapper('bybit-spot', new Date('2023-04-05T00:00:59.4642130Z'))\n\n  for (const message of messagesV5) {\n    const mappedMessages = bybitSpotMapper.map(message, new Date('2023-04-05T00:00:59.4642130Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n\ntest('map crypto-com messages', () => {\n  const messages = [\n    { id: 1, code: 0, method: 'subscribe' },\n    {\n      code: 0,\n      method: 'subscribe',\n      result: {\n        instrument_name: 'RSR_USDT',\n        subscription: 'trade.RSR_USDT',\n        channel: 'trade',\n        data: [\n          { dataTime: 1653917168407, d: 2552833547970376845, s: 'BUY', p: 0.00737, q: 6.9, t: 1653917168398, i: 'RSR_USDT' },\n          { dataTime: 1653917167913, d: 2552833531650627373, s: 'BUY', p: 0.00737, q: 0.1, t: 1653917167912, i: 'RSR_USDT' }\n        ]\n      }\n    },\n    {\n      code: 0,\n      method: 'subscribe',\n      result: {\n        instrument_name: 'GODS_USDT',\n        subscription: 'trade.GODS_USDT',\n        channel: 'trade',\n        data: [{ dataTime: 1659311999946, d: 2733854056108316782, s: 'SELL', p: 0.4272, q: 0.04, t: 1659311999941, i: 'GODS_USDT' }]\n      }\n    },\n    {\n      code: 0,\n      method: 'subscribe',\n      result: {\n        instrument_name: 'YFI_USDT',\n        subscription: 'ticker.YFI_USDT',\n        channel: 'ticker',\n        data: [{ i: 'YFI_USDT', b: 7892.58, k: 7905.8, a: 7905.8, t: 1653917205936, v: 16.9967, h: 8287.99, l: 7379.2, c: 324.02 }]\n      }\n    },\n    {\n      code: 0,\n      method: 'subscribe',\n      result: {\n        instrument_name: 'AAVE_USDT',\n        subscription: 'book.AAVE_USDT.150',\n        channel: 'book',\n        depth: 150,\n        data: [\n          {\n            bids: [[97.44, 7.5202, 1]],\n            asks: [\n              [97.685, 9.8577, 1],\n\n              [302.01, 0.005, 1]\n            ],\n            t: 1659311999918,\n            s: 702658069\n          }\n        ]\n      }\n    },\n    {\n      code: 0,\n      method: 'subscribe',\n      result: {\n        instrument_name: 'DOT_USDT',\n        subscription: 'book.DOT_USDT.150',\n        channel: 'book.update',\n        depth: 150,\n        data: [\n          {\n            update: {\n              bids: [\n                [8.6143, 4.694, 1],\n                [8.6135, 0, 0]\n              ],\n              asks: [[8.6427, 696.434, 2]]\n            },\n            t: 1659312000046,\n            s: 763793123\n          }\n        ]\n      }\n    },\n    {\n      code: 0,\n      method: 'subscribe',\n      result: {\n        instrument_name: 'BTC_USDT',\n        subscription: 'trade.BTC_USDT',\n        channel: 'trade',\n        data: [\n          { dataTime: 1659312000505, d: 2733854074994198560, s: 'SELL', p: 23297.35, q: 0.04, t: 1659312000503, i: 'BTC_USDT' },\n          { dataTime: 1659312000480, d: 2733854074175694048, s: 'SELL', p: 23297.35, q: 0.04, t: 1659312000479, i: 'BTC_USDT' },\n          { dataTime: 1659312000450, d: 2733854073183727584, s: 'SELL', p: 23297.35, q: 0.04, t: 1659312000449, i: 'BTC_USDT' }\n        ]\n      }\n    },\n    {\n      id: -1,\n      code: 0,\n      method: 'subscribe',\n      result: {\n        channel: 'ticker',\n        instrument_name: 'APEUSD-PERP',\n        subscription: 'ticker.APEUSD-PERP',\n        id: -1,\n        data: [\n          {\n            h: '4.7743',\n            l: '4.6082',\n            a: '4.6121',\n            c: '-0.0144',\n            b: '4.6121',\n            bs: '25',\n            k: '4.6148',\n            ks: '131',\n            i: 'APEUSD-PERP',\n            v: '123899',\n            vv: '580747.59',\n            oi: '55851',\n            t: 1667320303754\n          }\n        ]\n      }\n    },\n    {\n      id: -1,\n      code: 0,\n      method: 'subscribe',\n      result: {\n        channel: 'book.update',\n        subscription: 'book.DOGE_USDT.50',\n        instrument_name: 'DOGE_USDT',\n        depth: 50,\n        data: [\n          {\n            update: {\n              asks: [['0.136338', '1312', '1']],\n              bids: [['0.116116', '0', '0']]\n            },\n            t: 1667320303772,\n            tt: 1667320303761,\n            u: 41261686400,\n            pu: 41261671840,\n            cs: -807443798\n          }\n        ]\n      }\n    },\n    {\n      id: -1,\n      code: 0,\n      method: 'subscribe',\n      result: {\n        channel: 'trade',\n        subscription: 'trade.BTC_USDT',\n        instrument_name: 'BTC_USDT',\n        data: [{ d: '4611686018428108636', t: 1667320314770, p: '20432.51', q: '0.01163', s: 'SELL', i: 'BTC_USDT' }]\n      }\n    },\n    {\n      id: -1,\n      code: 0,\n      method: 'subscribe',\n      result: {\n        channel: 'trade',\n        subscription: 'trade.BTCUSD-PERP',\n        instrument_name: 'BTCUSD-PERP',\n        data: [\n          { d: '4611686018471467093', t: 1667320276193, p: '20439.5', q: '0.0050', s: 'SELL', i: 'BTCUSD-PERP' },\n          { d: '4611686018471467093', t: 1667320276193, p: '20439.5', q: '0.1000', s: 'SELL', i: 'BTCUSD-PERP' },\n          { d: '4611686018471467093', t: 1667320276193, p: '20439.5', q: '0.0050', s: 'SELL', i: 'BTCUSD-PERP' },\n          { d: '4611686018471467093', t: 1667320276193, p: '20439.5', q: '0.0244', s: 'SELL', i: 'BTCUSD-PERP' }\n        ]\n      }\n    }\n  ]\n\n  const cryptoComMapper = createMapper('crypto-com')\n\n  for (const message of messages) {\n    const mappedMessages = cryptoComMapper.map(message, new Date('2021-05-22T00:00:59.4642130Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n\ntest('map kucoin messages', () => {\n  const messages = [\n    {\n      id: '1545910590801',\n      type: 'pong'\n    },\n    {\n      id: 'hQvf8jkno',\n      type: 'welcome'\n    },\n    {\n      id: '1545910660739',\n      type: 'ack'\n    },\n    {\n      type: 'message',\n      topic: '/market/match:BTC-USDT',\n      subject: 'trade.l3match',\n      data: {\n        symbol: 'BTC-USDT',\n        side: 'sell',\n        type: 'match',\n        makerOrderId: '62fadde41add68000167fb58',\n        sequence: '1636276321894',\n        size: '0.00001255',\n        price: '24093.9',\n        takerOrderId: '62faddfff0476c0001c86c71',\n        time: '1660608000026914990',\n        tradeId: '62fade002e113d292303a18b'\n      }\n    },\n    {\n      type: 'message',\n      topic: '/market/match:LMR-BTC',\n      subject: 'trade.l3match',\n      data: {\n        makerOrderId: '62fabfc195e86000013e41cb',\n        price: '0.000001094',\n        sequence: '455391760226305',\n        side: 'sell',\n        size: '12.9629',\n        symbol: 'LMR-BTC',\n        takerOrderId: '62faddff90bdf400011fa69a',\n        time: '1660608000023000000',\n        tradeId: '455391760226305',\n        type: 'match'\n      }\n    },\n    {\n      type: 'message',\n      topic: '/market/match:XRP-USDT',\n      subject: 'trade.l3match',\n      data: {\n        symbol: 'XRP-USDT',\n        side: 'sell',\n        type: 'match',\n        makerOrderId: '62fade211f0caa0001b28594',\n        sequence: '1622936939836',\n        size: '66.5603',\n        price: '0.37587',\n        takerOrderId: '62fade217f3d2500012367c5',\n        time: '1660608033110362773',\n        tradeId: '62fade212e113d325d5cf21d'\n      }\n    },\n    {\n      type: 'message',\n      topic: '/market/ticker:APE3S-USDT',\n      subject: 'trade.ticker',\n      data: {\n        bestAsk: '0.9052',\n        bestAskSize: '404.3024',\n        bestBid: '0.9027',\n        bestBidSize: '202.2365',\n        price: '0.909',\n        sequence: '1653547330151',\n        size: '53.4976',\n        time: 1660608019966\n      }\n    },\n    {\n      type: 'message',\n      topic: '/market/level2:BTC-USDT',\n      subject: 'trade.l2update',\n      data: {\n        sequenceStart: 1636276321877,\n        symbol: 'BTC-USDT',\n        changes: { asks: [['0', '0', '1636276321877']], bids: [] },\n        sequenceEnd: 1636276321877\n      }\n    },\n    {\n      type: 'message',\n      topic: '/market/level2:BTC-USDT',\n      subject: 'trade.l2update',\n      data: {\n        sequenceStart: 1636276324353,\n        symbol: 'BTC-USDT',\n        changes: { asks: [], bids: [['24081.2', '0.00265', '1636276324353']] },\n        sequenceEnd: 1636276324353\n      }\n    },\n\n    {\n      type: 'message',\n      topic: '/market/level2:BTC-USDT',\n      subject: 'trade.l2update',\n      data: {\n        sequenceStart: 1636276324355,\n        symbol: 'BTC-USDT',\n        changes: { asks: [], bids: [['0', '0', '1636276324355']] },\n        sequenceEnd: 1636276324355\n      }\n    },\n    {\n      type: 'message',\n      topic: '/market/level2:BTC-USDT',\n      subject: 'trade.l2update',\n      data: {\n        sequenceStart: 1636276324356,\n        symbol: 'BTC-USDT',\n        changes: { asks: [['0', '0', '1636276324356']], bids: [['12', '0.12', '1636276324356']] },\n        sequenceEnd: 1636276324356\n      }\n    },\n    {\n      type: 'message',\n      topic: '/market/level2:BTC-USDT',\n      subject: 'trade.l2update',\n      data: {\n        sequenceStart: 1636276324361,\n        symbol: 'BTC-USDT',\n        changes: { asks: [['24088.8', '0', '1636276324361']], bids: [['0', '0', '1636276324361']] },\n        sequenceEnd: 1636276324361\n      }\n    },\n    {\n      type: 'message',\n      generated: true,\n      topic: '/market/level2Snapshot:BTC-USDT',\n      subject: 'trade.l2Snapshot',\n      code: '200000',\n      data: {\n        time: 1660608003710,\n        sequence: '1636276324355',\n        bids: [\n          ['24088.6', '7.07264171'],\n\n          ['24046', '0.00007756']\n        ],\n        asks: [\n          ['24088.7', '0.64205639'],\n          ['24088.8', '0.15869352']\n        ]\n      }\n    },\n    {\n      type: 'message',\n      topic: '/market/level2:BTC-USDT',\n      subject: 'trade.l2update',\n      data: {\n        sequenceStart: 1636276324362,\n        symbol: 'BTC-USDT',\n        changes: { asks: [['24088.8', '12', '1636276324361']], bids: [] },\n        sequenceEnd: 1636276324363\n      }\n    },\n    {\n      type: 'message',\n      topic: '/market/level2:BTC-USDT',\n      subject: 'trade.l2update',\n      data: {\n        sequenceStart: 1636276324364,\n        symbol: 'BTC-USDT',\n        changes: { asks: [['0', '0', '1636276324361']], bids: [] },\n        sequenceEnd: 1636276324365\n      }\n    },\n    {\n      type: 'message',\n      topic: '/market/level2:BTC-USDT',\n      subject: 'trade.l2update',\n      data: {\n        changes: { asks: [], bids: [['27309.8', '0.35127929', '8005280396']] },\n        sequenceEnd: 1636276324363,\n        sequenceStart: 1636276324364,\n        symbol: 'BTC-USDT',\n        time: 1685578980002\n      }\n    }\n  ]\n\n  const kucoinMapper = createMapper('kucoin', new Date('2022-08-16T00:00:00.4642130Z'))\n\n  for (const message of messages) {\n    const mappedMessages = kucoinMapper.map(message, new Date('2022-08-16T00:00:00.4642130Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n\ntest('map bitnomial messages', () => {\n  const messages = [\n    {\n      ack_id: '7187577067767395784',\n      asks: [\n        [19010, 1],\n        [19038, 1]\n      ],\n      bids: [[18835, 5]],\n      symbol: 'BUSH23',\n      timestamp: '2023-01-12T20:03:06.479197763Z',\n      type: 'book'\n    },\n\n    {\n      ack_id: '7187577067767395815',\n      price: 18861,\n      quantity: 0,\n      side: 'Bid',\n      symbol: 'BUIH23',\n      timestamp: '2023-01-12T20:03:10.190357785Z',\n      type: 'level'\n    },\n    {\n      ack_id: '7187577067767395832',\n      price: 19045,\n      quantity: 5,\n      side: 'Ask',\n      symbol: 'BUSH23',\n      timestamp: '2023-01-12T20:03:10.653716134Z',\n      type: 'level'\n    },\n    {\n      type: 'trade',\n      ack_id: '7148460953766461527',\n      price: 19000,\n      quantity: 10,\n      symbol: 'BUSZ2',\n      taker_side: 'Bid',\n      timestamp: '2022-09-28T16:06:39.022836179Z'\n    }\n  ]\n\n  const bitnomialMapper = createMapper('bitnomial', new Date('2022-08-16T00:00:00.4642130Z'))\n\n  for (const message of messages) {\n    const mappedMessages = bitnomialMapper.map(message, new Date('2022-08-16T00:00:00.4642130Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n\ntest('map woo-x messages', () => {\n  const messages = [\n    {\n      topic: 'PERP_GALA_USDT@trade',\n      ts: 1674431999995,\n      data: { symbol: 'PERP_GALA_USDT', price: 0.048756, size: 4109, side: 'SELL', source: 1 }\n    },\n    {\n      topic: 'SPOT_ETH_USDT@trade',\n      ts: 1674135417986,\n      data: { symbol: 'SPOT_ETH_USDT', price: 1522.45, size: 0.0516, side: 'SELL', source: 1 }\n    },\n\n    {\n      topic: 'PERP_BTC_USDT@orderbookupdate',\n      ts: 1674432000020,\n      data: {\n        symbol: 'PERP_BTC_USDT',\n        prevTs: 1674432000030,\n        asks: [[22712.7, 15.4675]],\n        bids: [[22708.0, 4.503]]\n      }\n    },\n    {\n      id: 'PERP_BTC_USDT@orderbook',\n      event: 'request',\n      success: true,\n      ts: 1674432000034,\n      data: {\n        symbol: 'PERP_BTC_USDT',\n        ts: 1674432000020,\n        asks: [\n          [22712.7, 15.4675],\n          [26772.1, 0.248]\n        ],\n        bids: [\n          [22708.0, 4.503],\n          [18555.0, 0.002]\n        ]\n      }\n    },\n    {\n      topic: 'PERP_BTC_USDT@orderbookupdate',\n      ts: 1674432000220,\n      data: {\n        symbol: 'PERP_BTC_USDT',\n        prevTs: 1674432000020,\n        asks: [\n          [22712.7, 16.1625],\n          [28462.5, 0.008]\n        ],\n        bids: [[22708.0, 4.284]]\n      }\n    },\n    {\n      topic: 'SPOT_ATOM_USDT@bbo',\n      ts: 1674431999997,\n      data: { symbol: 'SPOT_ATOM_USDT', ask: 13.33, askSize: 38.2, bid: 13.322, bidSize: 21.137 }\n    },\n    { topic: 'PERP_BTC_USDT@markprice', ts: 1674432000007, data: { symbol: 'PERP_BTC_USDT', price: 22711.11 } },\n    {\n      topic: 'PERP_BTC_USDT@estfundingrate',\n      ts: 1674432059002,\n      data: { symbol: 'PERP_BTC_USDT', fundingRate: 0.00000782, fundingTs: 1674435600005 }\n    },\n    { topic: 'SPOT_BTC_USDT@indexprice', ts: 1674432000024, data: { symbol: 'SPOT_BTC_USDT', price: 22708.44 } },\n    {\n      topic: 'PERP_BTC_USDT@trade',\n      ts: 1674432059820,\n      data: { symbol: 'PERP_BTC_USDT', price: 22703.97, size: 0.09, side: 'SELL', source: 0 }\n    },\n    { topic: 'PERP_BTC_USDT@openinterest', ts: 1674432013624, data: { symbol: 'PERP_BTC_USDT', openInterest: 83.2241 } }\n  ]\n\n  const wooxMapper = createMapper('woo-x', new Date('2022-08-16T00:00:00.4642130Z'))\n\n  for (const message of messages) {\n    const mappedMessages = wooxMapper.map(message, new Date('2022-08-16T00:00:00.4642130Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n\ntest('map binance-european-options messages', () => {\n  const messages = [\n    {\n      stream: 'DOGE-231006-0.06-C@trade',\n      data: {\n        e: 'trade',\n        E: 1696118408137,\n        s: 'DOGE-231006-0.06-C',\n        t: '15',\n        p: '2.64',\n        q: '0.01',\n        b: '4647850284614262784',\n        a: '4719907951072796672',\n        T: 1696118408134,\n        S: '-1'\n      }\n    },\n    {\n      stream: 'BTC-231001-27500-C@trade',\n      data: {\n        e: 'trade',\n        E: 1696118425335,\n        s: 'BTC-231001-27500-C',\n        t: '144',\n        p: '5',\n        q: '0.1',\n        b: '4674871954869534720',\n        a: '4665864737475194880',\n        T: 1696118425333,\n        S: '1'\n      }\n    },\n    {\n      stream: 'BTC-231027-34000-C@depth100@100ms',\n      data: {\n        e: 'depth',\n        E: 1696118400038,\n        T: 1696118399082,\n        s: 'BTC-231027-34000-C',\n        u: 1925729,\n        pu: 1925729,\n        b: [['60', '7.31']],\n        a: [\n          ['65', '8.28'],\n          ['70', '38.88']\n        ]\n      }\n    },\n    { stream: 'BTCUSDT@index', data: { e: 'index', E: 1696118400040, s: 'BTCUSDT', p: '26963.13461538' } },\n    {\n      stream: 'XRP@markPrice',\n      data: [{ e: 'markPrice', E: 1696118400043, s: 'XRP-231006-0.44-C', mp: '7.949' }]\n    },\n\n    {\n      stream: 'BTC-240927-25000-P@ticker',\n      data: {\n        e: '24hrTicker',\n        E: 1696118400043,\n        T: 1696118400000,\n        s: 'BTC-240927-25000-P',\n        o: '0',\n        h: '0',\n        l: '0',\n        c: '0',\n        V: '0',\n        A: '0',\n        P: '0',\n        p: '0',\n        Q: '0',\n        F: '0',\n        L: '0',\n        n: 0,\n        bo: '3000',\n        ao: '3950',\n        bq: '2.55',\n        aq: '5.8',\n        b: '0.3804034',\n        a: '0.47609568',\n        d: '-0.34807987',\n        t: '-5.86856986',\n        g: '0.00003213',\n        v: '99.30558193',\n        vo: '0.42824954',\n        mp: '3475',\n        hl: '6990',\n        ll: '5',\n        eep: '0'\n      }\n    },\n    {\n      stream: 'BTC@openInterest@240927',\n      data: [{ e: 'openInterest', E: 1696118400046, s: 'BTC-240927-25000-P', o: '1.0', h: '0.0' }]\n    },\n    { stream: 'BTCUSDT@index', data: { e: 'index', E: 1696118413035, s: 'BTCUSDT', p: '26960.90703297' } },\n\n    {\n      stream: 'BTC@openInterest@240927',\n      data: [{ e: 'openInterest', E: 1696118400046, s: 'BTC-240927-25000-P', o: '7.0', h: '0.0' }]\n    },\n    {\n      stream: 'BTC-240927-25000-P@ticker',\n      data: {\n        e: '24hrTicker',\n        E: 1696118448036,\n        T: 1696118448000,\n        s: 'BTC-240927-25000-P',\n        o: '0',\n        h: '0',\n        l: '0',\n        c: '0',\n        V: '0',\n        A: '0',\n        P: '0',\n        p: '0',\n        Q: '0',\n        F: '0',\n        L: '0',\n        n: 0,\n        bo: '3000',\n        ao: '3950',\n        bq: '2.55',\n        aq: '5.8',\n        b: '0.38032115',\n        a: '0.47601342',\n        d: '-0.3481579',\n        t: '-5.86741979',\n        g: '0.00003214',\n        v: '99.30504228',\n        vo: '0.42816728',\n        mp: '3475',\n        hl: '6989',\n        ll: '5',\n        eep: '0'\n      }\n    }\n  ]\n\n  const mapper = createMapper('binance-european-options', new Date('2023-10-01T00:00:00.0816546Z'))\n\n  for (const message of messages) {\n    const mappedMessages = mapper.map(message, new Date('2023-10-01T00:00:00.0816546Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n\ntest('map binance-european-options messages v2', () => {\n  const messages = [\n    {\n      stream: 'btc-251219-89000-c@optionTrade',\n      data: {\n        e: 'trade',\n        E: 1765983420778,\n        T: 1765983420778,\n        s: 'BTC-251219-89000-C',\n        t: 200,\n        p: '1420.000',\n        q: '1.54',\n        X: 'MARKET',\n        S: 'BUY',\n        m: false\n      }\n    },\n    {\n      stream: 'btc-251218-89000-p@optionTrade',\n      data: {\n        e: 'trade',\n        E: 1765983422509,\n        T: 1765983422509,\n        s: 'BTC-251218-89000-P',\n        t: 18,\n        p: '600.000',\n        q: '3.90',\n        X: 'MARKET',\n        S: 'SELL',\n        m: true\n      }\n    },\n    {\n      stream: 'eth-251219-3100-c@depth20@100ms',\n      data: {\n        e: 'depthUpdate',\n        E: 1765983419936,\n        T: 1765983419928,\n        s: 'ETH-251219-3100-C',\n        U: 121508743,\n        u: 121509455,\n        pu: 121508733,\n        b: [\n          ['16.6000', '150.23'],\n          ['16.4000', '10.00']\n        ],\n        a: [\n          ['18.8000', '70.00'],\n          ['20.6000', '240.88']\n        ]\n      }\n    },\n    {\n      stream: 'eth-251218-3100-c@bookTicker',\n      data: {\n        e: 'bookTicker',\n        u: 121509445,\n        s: 'ETH-251218-3100-C',\n        b: '5.8000',\n        B: '38.47',\n        a: '6.4000',\n        A: '96.37',\n        T: 1765983419927,\n        E: 1765983419927\n      }\n    },\n    {\n      stream: 'xrpusdt@optionMarkPrice',\n      data: [\n        {\n          s: 'XRP-251219-2.05-P',\n          mp: '19.0314',\n          E: 1765983420260,\n          e: 'markPrice',\n          i: '1.96239445',\n          P: '0.0000',\n          bo: '0.0000',\n          ao: '0.0000',\n          bq: '0.00',\n          aq: '0.00',\n          b: '-1.0',\n          a: '-1.0',\n          hl: '34.2565',\n          ll: '3.8062',\n          vo: '2.6',\n          rf: '0.0',\n          d: '-0.56213899',\n          t: '-0.04023754',\n          g: '1.12832706',\n          v: '0.00052941'\n        }\n      ]\n    },\n    {\n      stream: 'btc-251219-89000-c@optionTicker',\n      data: {\n        e: '24hrTicker',\n        E: 1765983420778,\n        s: 'BTC-251219-89000-C',\n        p: '695.000',\n        P: '95.862',\n        w: '636.186',\n        c: '1420.000',\n        Q: '1.54',\n        o: '725.000',\n        h: '1420.000',\n        l: '235.000',\n        v: '44.43',\n        q: '28265.750',\n        O: 1765899660000,\n        C: 1765983420778,\n        F: 94,\n        L: 200,\n        n: 107\n      }\n    },\n    {\n      stream: 'btcusdt@optionOpenInterest@251219',\n      data: [\n        {\n          e: 'openInterest',\n          E: 1765983420500,\n          s: 'BTC-251219-89000-C',\n          o: '123.45',\n          h: '11025678.90'\n        },\n        {\n          e: 'openInterest',\n          E: 1765983420500,\n          s: 'BTC-251218-89000-P',\n          o: '67.89',\n          h: '6070901.23'\n        }\n      ]\n    },\n    {\n      stream: 'btcusdt@optionMarkPrice',\n      data: [\n        {\n          s: 'BTC-251219-89000-C',\n          mp: '1450.5',\n          E: 1765983421000,\n          e: 'markPrice',\n          i: '104334.60217391',\n          P: '0.0000',\n          bo: '1440.0',\n          ao: '1460.0',\n          bq: '5.00',\n          aq: '3.50',\n          b: '0.85',\n          a: '0.88',\n          hl: '2000.0',\n          ll: '500.0',\n          vo: '0.86',\n          rf: '0.0',\n          d: '0.75',\n          t: '-0.05',\n          g: '0.002',\n          v: '0.15'\n        }\n      ]\n    }\n  ]\n\n  const mapper = createMapper('binance-european-options', new Date('2025-12-17T00:00:00.0816546Z'))\n\n  for (const message of messages) {\n    const mappedMessages = mapper.map(message, new Date('2025-12-17T00:00:00.0816546Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n\ntest('map okex-spreads messages', () => {\n  const messages = [\n    {\n      arg: { channel: 'sprd-public-trades', sprdId: 'ETH-USD-SWAP_ETH-USD-240329' },\n      data: [\n        {\n          sprdId: 'ETH-USD-SWAP_ETH-USD-240329',\n          tradeId: '2102504804202430464',\n          px: '64.9',\n          sz: '13430',\n          side: 'sell',\n          ts: '1703155852033'\n        }\n      ]\n    },\n    {\n      arg: { channel: 'sprd-books5', sprdId: 'BTC-USD-231229_BTC-USD-240329' },\n      data: [\n        {\n          bids: [\n            ['1314', '18100', '1'],\n            ['1313.5', '50000', '1']\n          ],\n          asks: [['1328', '11000', '2']],\n          ts: '1703155859507'\n        }\n      ]\n    },\n    {\n      arg: { channel: 'sprd-bbo-tbt', sprdId: 'BTC-USD-SWAP_BTC-USD-231229' },\n      data: [{ bids: [['168', '4000', '1']], asks: [['170.5', '14200', '1']], ts: '1703155859224' }]\n    }\n  ]\n\n  const mapper = createMapper('okex-spreads', new Date('2023-12-22T00:00:00.0816546Z'))\n\n  for (const message of messages) {\n    const mappedMessages = mapper.map(message, new Date('2023-12-22T00:00:00.0816546Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n\ntest('map kucoin-futures messages', () => {\n  const messages = [\n    {\n      topic: '/contractMarket/execution:SOLUSDTM',\n      type: 'message',\n      subject: 'match',\n      sn: 1701197946092,\n      data: {\n        symbol: 'SOLUSDTM',\n        sequence: 1701197946092,\n        makerUserId: '654ddd2be2cf300001e6e012',\n        side: 'sell',\n        size: 10,\n        price: '93.624',\n        takerOrderId: '137974138147991552',\n        takerUserId: '61dd97ead5fb7a00018a9af1',\n        makerOrderId: '137972015297474560',\n        tradeId: '1701197946092',\n        ts: 1705708799998000000\n      }\n    },\n    {\n      topic: '/contractMarket/level2:MYROUSDTM',\n      type: 'message',\n      subject: 'level2',\n      sn: 1705386314549,\n      data: { sequence: 1705386314549, change: '0.21506,sell,0', timestamp: 1705708800010 }\n    },\n    {\n      topic: '/contractMarket/level2:MYROUSDTM',\n      type: 'message',\n      subject: 'level2',\n      sn: 1705411242392,\n      data: { sequence: 1705411242392, change: '0.2166,sell,0', timestamp: 1705708800009 }\n    },\n    {\n      topic: '/contractMarket/level2:MYROUSDTM',\n      type: 'message',\n      subject: 'level2',\n      sn: 1705411242393,\n      data: { sequence: 1705411242393, change: '0.20645,buy,1', timestamp: 1705708800010 }\n    },\n    {\n      type: 'message',\n      generated: true,\n      topic: '/contractMarket/level2Snapshot:MYROUSDTM',\n      subject: 'level2Snapshot',\n      code: '200000',\n      data: {\n        sequence: 1705411242391,\n        symbol: 'MYROUSDTM',\n        bids: [[0.21557, 30]],\n        asks: [[0.2166, 62]],\n        ts: 1705881600412000000\n      }\n    },\n    {\n      topic: '/contractMarket/level2:MYROUSDTM',\n      type: 'message',\n      subject: 'level2',\n      sn: 1705411242394,\n      data: { sequence: 1705411242394, change: '0.3,buy,3', timestamp: 1705708800010 }\n    },\n    {\n      topic: '/contractMarket/tickerV2:AUCTIONUSDTM',\n      type: 'message',\n      subject: 'tickerV2',\n      sn: 1702237470700,\n      data: {\n        symbol: 'AUCTIONUSDTM',\n        sequence: 1702237470700,\n        bestBidSize: 260,\n        bestBidPrice: '24.067',\n        bestAskPrice: '24.08',\n        bestAskSize: 250,\n        ts: 1705708800078000000\n      }\n    },\n\n    {\n      topic: '/contract/details:XBTUSDTM',\n      type: 'message',\n      subject: 'contractDetails',\n      generated: true,\n      data: {\n        symbol: 'XBTUSDTM',\n        rootSymbol: 'USDT',\n        type: 'FFWCSX',\n        firstOpenDate: 1585555200000,\n        baseCurrency: 'XBT',\n        quoteCurrency: 'USDT',\n        settleCurrency: 'USDT',\n        maxOrderQty: 1000000,\n        maxPrice: 1000000.0,\n        lotSize: 1,\n        tickSize: 0.1,\n        indexPriceTickSize: 0.01,\n        multiplier: 0.001,\n        initialMargin: 0.008,\n        maintainMargin: 0.004,\n        maxRiskLimit: 25000,\n        minRiskLimit: 25000,\n        riskStep: 12500,\n        makerFeeRate: 2.0e-4,\n        takerFeeRate: 6.0e-4,\n        takerFixFee: 0.0,\n        makerFixFee: 0.0,\n        isDeleverage: true,\n        isQuanto: true,\n        isInverse: false,\n        markMethod: 'FairPrice',\n        fairMethod: 'FundingRate',\n        fundingBaseSymbol: '.XBTINT8H',\n        fundingQuoteSymbol: '.USDTINT8H',\n        fundingRateSymbol: '.XBTUSDTMFPI8H',\n        indexSymbol: '.KXBTUSDT',\n        settlementSymbol: '',\n        status: 'Open',\n        fundingFeeRate: 3.8e-5,\n        predictedFundingFeeRate: 9.6e-5,\n        fundingRateGranularity: 28800000,\n        openInterest: '9295921',\n        turnoverOf24h: 5.94135187191124e8,\n        volumeOf24h: 15131.243,\n        markPrice: 39995.94,\n        indexPrice: 39999.2,\n        lastTradePrice: 39996.6,\n        nextFundingRateTime: 10561278,\n        maxLeverage: 125,\n        sourceExchanges: ['okex', 'binance', 'kucoin', 'bybit', 'bitget', 'bitmart', 'gateio'],\n        premiumsSymbol1M: '.XBTUSDTMPI',\n        premiumsSymbol8H: '.XBTUSDTMPI8H',\n        fundingBaseSymbol1M: '.XBTINT',\n        fundingQuoteSymbol1M: '.USDTINT',\n        lowPrice: 38560.0,\n        highPrice: 40253.0,\n        priceChgPct: 0.0132,\n        priceChg: 523.4\n      }\n    },\n    {\n      topic: '/contractMarket/execution:XBTUSDTM',\n      type: 'message',\n      subject: 'match',\n      sn: 1728107666597,\n      data: {\n        symbol: 'XBTUSDTM',\n        sequence: 1728107666597,\n        makerUserId: '64c104280b64e30001557202',\n        side: 'sell',\n        size: 1,\n        price: '39615',\n        takerOrderId: '139484352366002178',\n        takerUserId: '6508585da44dc2000175cb24',\n        makerOrderId: '139484331675557890',\n        tradeId: '1728107666597',\n        ts: 1706068863101000000\n      }\n    },\n\n    {\n      topic: '/contract/instrument:XBTUSDTM',\n      type: 'message',\n      subject: 'funding.rate',\n      data: { granularity: 60000, fundingRate: 0.000038, timestamp: 1706068800000 }\n    },\n    {\n      topic: '/contract/instrument:XBTUSDTM',\n      type: 'message',\n      subject: 'mark.index.price',\n      data: { markPrice: 39610.11, indexPrice: 39615.44, granularity: 1000, timestamp: 1706068801000 }\n    },\n    {\n      topic: '/contract/instrument:XBTUSDTM',\n      type: 'message',\n      subject: 'funding.rate',\n      data: { granularity: 28800000, fundingRate: 0.000039, timestamp: 1706068800000 }\n    },\n    {\n      topic: '/contract/instrument:XBTUSDTM',\n      type: 'message',\n      subject: 'mark.index.price',\n      data: { markPrice: 39612.67, indexPrice: 39618.0, granularity: 1000, timestamp: 1706068802000 }\n    },\n    {\n      topic: '/contract/instrument:XBTUSDTM',\n      type: 'message',\n      subject: 'funding.rate',\n      data: { granularity: 28800000, fundingRate: 0.000038, timestamp: 1706068800000 }\n    },\n    {\n      topic: '/contract/instrument:XBTUSDTM',\n      type: 'message',\n      subject: 'funding.rate',\n      data: { granularity: 60000, fundingRate: 0.000032, timestamp: 1706068800000 }\n    }\n  ]\n\n  const mapper = createMapper('kucoin-futures', new Date('2024-01-22T00:00:00.0816546Z'))\n\n  for (const message of messages) {\n    const mappedMessages = mapper.map(message, new Date('2024-01-22T00:00:00.0816546Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n\ntest('map dydx-v4 messages', () => {\n  const messages = [\n    {\n      type: 'channel_data',\n      connection_id: '2ddf629d-ee78-4cf3-8278-fe0900b59537',\n      message_id: 99,\n      id: 'AVAX-USD',\n      channel: 'v4_trades',\n      version: '2.1.0',\n      contents: {\n        trades: [\n          {\n            id: '0165e5e30000000200000002',\n            size: '79.2',\n            price: '25.22',\n            side: 'BUY',\n            createdAt: '2024-08-22T23:59:58.855Z',\n            type: 'LIMIT'\n          }\n        ]\n      }\n    },\n    {\n      type: 'channel_data',\n      connection_id: '3a2e4c0c-7579-4bf6-a570-e0979418bbe9',\n      message_id: 424,\n      id: 'BTC-USD',\n      channel: 'v4_trades',\n      version: '2.1.0',\n      contents: {\n        trades: [\n          {\n            id: '0165e5e40000000200000002',\n            size: '0.002',\n            price: '60397',\n            side: 'BUY',\n            createdAt: '2024-08-22T23:59:59.851Z',\n            type: 'LIMIT'\n          },\n          {\n            id: '014f495a0000000200000005',\n            side: 'SELL',\n            size: '3.9',\n            price: '22.87',\n            type: 'LIQUIDATED',\n            createdAt: '2024-08-04T07:34:50.628Z'\n          }\n        ]\n      }\n    },\n    {\n      type: 'subscribed',\n      connection_id: '67838890-75de-4bf3-a638-d7bcdea5f245',\n      message_id: 7,\n      channel: 'v4_orderbook',\n      id: 'GRT-USD',\n      contents: {\n        bids: [{ price: '0.1547', size: '35520' }],\n        asks: [{ price: '0.155', size: '3220' }]\n      }\n    },\n    {\n      type: 'channel_data',\n      connection_id: '86052893-19bc-46c9-a1af-e9f5ff4f6572',\n      message_id: 5814,\n      id: 'GRT-USD',\n      channel: 'v4_orderbook',\n      version: '1.0.0',\n      contents: { bids: [['11.21', '0']] }\n    },\n    {\n      type: 'channel_data',\n      connection_id: '86052893-19bc-46c9-a1af-e9f5ff4f6572',\n      message_id: 5820,\n      id: 'EGLD-USD',\n      channel: 'v4_orderbook',\n      version: '1.0.0',\n      contents: { asks: [['66.12', '0']] }\n    },\n    {\n      type: 'subscribed',\n      connection_id: '3a2e4c0c-7579-4bf6-a570-e0979418bbe9',\n      message_id: 17,\n      channel: 'v4_markets',\n      contents: {\n        markets: {\n          'BTC-USD': {\n            clobPairId: '0',\n            ticker: 'BTC-USD',\n            status: 'ACTIVE',\n            oraclePrice: '60387.51779',\n            priceChange24H: '-782.58326',\n            volume24H: '247515340.0835',\n            trades24H: 73556,\n            nextFundingRate: '0.00001351666666666667',\n            initialMarginFraction: '0.05',\n            maintenanceMarginFraction: '0.03',\n            openInterest: '648.2389',\n            atomicResolution: -10,\n            quantumConversionExponent: -9,\n            tickSize: '1',\n            stepSize: '0.0001',\n            stepBaseQuantums: 1000000,\n            subticksPerTick: 100000,\n            marketType: 'CROSS',\n            openInterestLowerCap: '0',\n            openInterestUpperCap: '0',\n            baseOpenInterest: '648.4278'\n          },\n          'ETH-USD': {\n            clobPairId: '1',\n            ticker: 'ETH-USD',\n            status: 'ACTIVE',\n            oraclePrice: '2623.2521',\n            priceChange24H: '-8.251913',\n            volume24H: '214358009.6882',\n            trades24H: 67980,\n            nextFundingRate: '0.00001051666666666667',\n            initialMarginFraction: '0.05',\n            maintenanceMarginFraction: '0.03',\n            openInterest: '15395.279',\n            atomicResolution: -9,\n            quantumConversionExponent: -9,\n            tickSize: '0.1',\n            stepSize: '0.001',\n            stepBaseQuantums: 1000000,\n            subticksPerTick: 100000,\n            marketType: 'CROSS',\n            openInterestLowerCap: '0',\n            openInterestUpperCap: '0',\n            baseOpenInterest: '15399.72'\n          }\n        }\n      }\n    },\n    {\n      type: 'channel_data',\n      connection_id: '3a2e4c0c-7579-4bf6-a570-e0979418bbe9',\n      message_id: 15871,\n      channel: 'v4_markets',\n      version: '1.0.0',\n      contents: { trading: { 'ETH-USD': { id: '1', openInterest: '15398.406' } } }\n    },\n    {\n      type: 'channel_data',\n      connection_id: '3a2e4c0c-7579-4bf6-a570-e0979418bbe9',\n      message_id: 15162,\n      channel: 'v4_markets',\n      version: '1.0.0',\n      contents: {\n        oraclePrices: {\n          'ETH-USD': { oraclePrice: '2623.3521', effectiveAt: '2024-08-23T00:00:54.301Z', effectiveAtHeight: '23455252', marketId: 86 }\n        }\n      }\n    }\n  ]\n\n  const mapper = createMapper('dydx-v4', new Date('2024-08-23T00:00:00.4985250Z'))\n\n  for (const message of messages) {\n    const mappedMessages = mapper.map(message, new Date('2024-08-23T00:00:00.4985250Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n\ntest('map bitget messages', () => {\n  const messages = [\n    {\n      action: 'update',\n      arg: { instType: 'SPOT', channel: 'trade', instId: 'BTCUSDT' },\n      data: [{ ts: '1730332858796', price: '72389.99', size: '0.001373', side: 'buy', tradeId: '1235671058980749319' }],\n      ts: 1730332858805\n    },\n    { event: 'subscribe', arg: { instType: 'SPOT', channel: 'trade', instId: 'XAUTUSDT' } },\n    {\n      action: 'snapshot',\n      arg: { instType: 'SPOT', channel: 'trade', instId: 'SNEKUSDT' },\n      data: [{ ts: '1730332799292', price: '0.0010074', size: '23617.11', side: 'sell', tradeId: '1235670809402884097' }],\n      ts: 1730332800338\n    },\n    {\n      action: 'update',\n      arg: { instType: 'SPOT', channel: 'trade', instId: 'RENDERUSDT' },\n      data: [{ ts: '1730332859905', price: '4.987', size: '22.75', side: 'sell', tradeId: '1235671063632220170' }],\n      ts: 1730332859917\n    },\n    { event: 'subscribe', arg: { instType: 'SPOT', channel: 'books', instId: 'LUMIAUSDT' } },\n    {\n      action: 'snapshot',\n      arg: { instType: 'SPOT', channel: 'books', instId: 'BRETTUSDT' },\n      data: [\n        {\n          asks: [\n            ['0.09707', '1600.00'],\n            ['0.09711', '511.87']\n          ],\n          bids: [['0.09694', '1213.91']],\n          checksum: 0,\n          ts: '1730332800391'\n        }\n      ],\n      ts: 1730332800436\n    },\n    {\n      action: 'update',\n      arg: { instType: 'SPOT', channel: 'books', instId: 'LMWRUSDT' },\n      data: [{ asks: [], bids: [['0.12306', '3326.85']], checksum: 1073441524, ts: '1730332859981' }],\n      ts: 1730332859983\n    },\n    {\n      action: 'snapshot',\n      arg: { instType: 'SPOT', channel: 'books1', instId: 'BTCUSDC' },\n      data: [{ asks: [['72377.25', '0.00408']], bids: [['72354.67', '1.16460']], checksum: 0, ts: '1730332859984' }],\n      ts: 1730332859985\n    },\n    {\n      action: 'snapshot',\n      arg: { instType: 'SPOT', channel: 'books15', instId: 'MANTAUSDT' },\n      data: [\n        {\n          asks: [['0.7146', '7.03']],\n          bids: [['0.7139', '20.98']],\n          checksum: 0,\n          ts: '1730963759993'\n        }\n      ],\n      ts: 1730963759994\n    }\n  ]\n  const mapper = createMapper('bitget', new Date('2024-08-23T00:00:00.4985250Z'))\n\n  for (const message of messages) {\n    const mappedMessages = mapper.map(message, new Date('2024-08-23T00:00:00.4985250Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n\ntest('map bitget-futures messages', () => {\n  const messages = [\n    { event: 'subscribe', arg: { instType: 'USDT-FUTURES', channel: 'trade', instId: 'LTCUSDT' } },\n    { event: 'subscribe', arg: { instType: 'USDC-FUTURES', channel: 'trade', instId: 'BTCPERP' } },\n    {\n      action: 'update',\n      arg: { instType: 'COIN-FUTURES', channel: 'trade', instId: 'DOGEUSD' },\n      data: [{ ts: '1730332859962', price: '0.168385', size: '447', side: 'buy', tradeId: '1235671063871070209' }],\n      ts: 1730332859979\n    },\n    {\n      action: 'snapshot',\n      arg: { instType: 'USDT-FUTURES', channel: 'books', instId: 'BELUSDT' },\n      data: [\n        {\n          asks: [['0.5426', '51']],\n          bids: [\n            ['0.5420', '468'],\n            ['0.5419', '1576']\n          ],\n          checksum: 0,\n          ts: '1730332800303'\n        }\n      ],\n      ts: 1730332800315\n    },\n    {\n      action: 'update',\n      arg: { instType: 'USDT-FUTURES', channel: 'books', instId: 'AXSUSDT' },\n      data: [\n        {\n          asks: [['5.085', '144.6']],\n          bids: [['5.081', '536.2']],\n          checksum: -1258619028,\n          ts: '1730332859988'\n        }\n      ],\n      ts: 1730332859991\n    },\n    {\n      action: 'snapshot',\n      arg: { instType: 'USDT-FUTURES', channel: 'books1', instId: 'ADAUSDT' },\n      data: [{ asks: [['0.3555', '10230']], bids: [['0.3553', '112096']], checksum: 0, ts: '1730332859988' }],\n      ts: 1730332859989\n    },\n    { event: 'subscribe', arg: { instType: 'USDT-FUTURES', channel: 'ticker', instId: 'BTCUSDT' } },\n    {\n      action: 'snapshot',\n      arg: { instType: 'USDT-FUTURES', channel: 'ticker', instId: 'STORJUSDT' },\n      data: [\n        {\n          instId: 'STORJUSDT',\n          lastPr: '0.4706',\n          bidPr: '0.4705',\n          askPr: '0.4708',\n          bidSz: '1367.3',\n          askSz: '2535.3',\n          open24h: '0.4737',\n          high24h: '0.4784',\n          low24h: '0.463',\n          change24h: '-0.01569',\n          fundingRate: '0.0001',\n          nextFundingTime: '1730361600000',\n          markPrice: '0.4705',\n          indexPrice: '0.47080586',\n          holdingAmount: '8572031.1',\n          baseVolume: '2878355.9',\n          quoteVolume: '1355483.45089',\n          openUtc: '0.4706',\n          symbolType: '1',\n          symbol: 'STORJUSDT',\n          deliveryPrice: '0',\n          ts: '1730332823155'\n        }\n      ],\n      ts: 1730332823157\n    },\n    {\n      action: 'snapshot',\n      arg: { instType: 'COIN-FUTURES', channel: 'ticker', instId: 'BTCUSDZ24' },\n      data: [\n        {\n          instId: 'BTCUSDZ24',\n          lastPr: '73733.7',\n          bidPr: '73737.6',\n          askPr: '73742.1',\n          bidSz: '0.246',\n          askSz: '0.094',\n          open24h: '73465.6',\n          high24h: '74358.2',\n          low24h: '72872.2',\n          change24h: '-0.00612',\n          fundingRate: '0',\n          nextFundingTime: '0',\n          markPrice: '73731.8',\n          indexPrice: '72327.926666',\n          holdingAmount: '57.714',\n          baseVolume: '21.427',\n          quoteVolume: '1579692.8012',\n          openUtc: '73731.0',\n          symbolType: '2',\n          symbol: 'BTCUSDZ24',\n          ts: '1730332823217'\n        }\n      ],\n      ts: 1730332823221\n    },\n    {\n      action: 'snapshot',\n      arg: { instType: 'USDT-FUTURES', channel: 'books1', instId: 'AQTUSDT' },\n      data: [{ asks: [['1.4138', '4.58']], bids: [], checksum: 0, ts: '1730860330169' }],\n      ts: 1730860330170\n    },\n    {\n      action: 'snapshot',\n      arg: { instType: 'USDT-FUTURES', channel: 'books15', instId: 'YGGUSDT' },\n      data: [\n        {\n          asks: [\n            ['0.47256', '641.4443'],\n            ['0.47257', '3074.3765'],\n\n            ['0.47377', '2677.5600']\n          ],\n          bids: [['0.47242', '18.7835']],\n          checksum: 0,\n          ts: '1730963759972'\n        }\n      ],\n      ts: 1730963759998\n    }\n  ]\n\n  const mapper = createMapper('bitget-futures', new Date('2024-08-23T00:00:00.4985250Z'))\n\n  for (const message of messages) {\n    const mappedMessages = mapper.map(message, new Date('2024-08-23T00:00:00.4985250Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\ntest('map coinbase-international messages', () => {\n  const messages = [\n    {\n      sequence: 101,\n      match_id: '374491378496831495',\n      trade_price: '177.202',\n      trade_qty: '3.584',\n      aggressor_side: 'BUY',\n      channel: 'MATCH',\n      type: 'UPDATE',\n      time: '2024-10-30T10:55:02.347Z',\n      product_id: 'SOL-PERP'\n    },\n    {\n      sequence: 81053124,\n      bids: [['4.802', '58.5']],\n      asks: [['6.66', '2969.1']],\n      channel: 'LEVEL2',\n      type: 'SNAPSHOT',\n      time: '2024-11-07T00:00:00.015Z',\n      product_id: 'TON-PERP'\n    },\n    {\n      sequence: 111760281,\n      changes: [['BUY', '0.3444', '15468']],\n      channel: 'LEVEL2',\n      type: 'UPDATE',\n      time: '2024-11-07T00:00:59.974Z',\n      product_id: 'CATI-PERP'\n    },\n    {\n      sequence: 106920921,\n      bid_price: '0.19717',\n      bid_qty: '5116',\n      ask_price: '0.19724',\n      ask_qty: '6000',\n      channel: 'LEVEL1',\n      type: 'UPDATE',\n      time: '2024-11-07T00:00:59.965Z',\n      product_id: 'DOGE-PERP'\n    },\n    {\n      sequence: 84533756,\n      limit_up: '4.121',\n      limit_down: '3.729',\n      index_price: '3.925562264285714',\n      mark_price: '3.927',\n      settlement_price: '3.938',\n      open_interest: '76677.9',\n      channel: 'RISK',\n      type: 'UPDATE',\n      time: '2024-11-06T01:59:59.155Z',\n      product_id: 'SOL-PERP'\n    },\n\n    {\n      sequence: 64190393,\n      funding_rate: '0.000005',\n      is_final: false,\n      channel: 'FUNDING',\n      type: 'UPDATE',\n      time: '2024-11-06T01:59:59.155Z',\n      product_id: 'SOL-PERP'\n    },\n    {\n      sequence: 90311075,\n      funding_rate: '-0.000017',\n      is_final: true,\n      channel: 'FUNDING',\n      type: 'UPDATE',\n      time: '2024-11-06T02:00:00Z',\n      product_id: 'SOL-PERP'\n    },\n    {\n      sequence: 32,\n      limit_up: '1.0888',\n      limit_down: '0.9852',\n      index_price: '1.03709828725',\n      mark_price: '1.0344',\n      settlement_price: '1.0409',\n      channel: 'RISK',\n      type: 'SNAPSHOT',\n      time: '2024-10-31T09:36:02.342Z',\n      product_id: 'APE-PERP'\n    }\n  ]\n\n  const mapper = createMapper('coinbase-international', new Date('2024-08-23T00:00:00.4985250Z'))\n\n  for (const message of messages) {\n    const mappedMessages = mapper.map(message, new Date('2024-08-23T00:00:00.4985250Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n\ntest('map hyperliquid messages', () => {\n  const messages = [\n    {\n      channel: 'trades',\n      data: [\n        {\n          coin: 'FXS',\n          side: 'A',\n          px: '1.9008',\n          sz: '10.5',\n          time: 1730160015113,\n          hash: '0xdde3d6b67214c97cb88704156eee8e016e010eb52dcf2a855bdaea517a5b45a9',\n          tid: 611279506717453\n        }\n      ]\n    },\n    {\n      channel: 'trades',\n      data: [\n        {\n          coin: 'FXS',\n          side: 'A',\n          px: '1.9014',\n          sz: '9.1',\n          time: 1730160059558,\n          hash: '0xebc3cc3fd23dac2eb64204156ef14a01e2005ddadaba6efe617eef218f1accc0',\n          tid: 809065877559592\n        }\n      ]\n    },\n    {\n      channel: 'trades',\n      data: [\n        {\n          coin: 'BTC',\n          side: 'B',\n          px: '69997.0',\n          sz: '0.38111',\n          time: 1730160006192,\n          hash: '0x40d169aa50ad8a32b44a04156eee0201d8002e5c6456b7c1ae175e381f73f9dd',\n          tid: 1016375172059570\n        },\n        {\n          coin: 'BTC',\n          side: 'B',\n          px: '69997.0',\n          sz: '0.33458',\n          time: 1730160006192,\n          hash: '0x40d169aa50ad8a32b44a04156eee0201d8002e5c6456b7c1ae175e381f73f9dd',\n          tid: 479312521152049\n        },\n        {\n          coin: 'BTC',\n          side: 'B',\n          px: '69997.0',\n          sz: '0.83613',\n          time: 1730160006192,\n          hash: '0x40d169aa50ad8a32b44a04156eee0201d8002e5c6456b7c1ae175e381f73f9dd',\n          tid: 229986151112628\n        }\n      ]\n    },\n    {\n      channel: 'trades',\n      data: [\n        {\n          coin: 'BTC',\n          side: 'B',\n          px: '69998.0',\n          sz: '0.00714',\n          time: 1730160007572,\n          hash: '0xb2628bf07a30ffa6267904156eee1801610085114d2758aec6a6784d14463055',\n          tid: 696560709859024\n        }\n      ]\n    },\n    { channel: 'l2Book', data: { coin: 'SHIA', time: 1730160007687, levels: [[], []] } },\n\n    {\n      channel: 'l2Book',\n      data: {\n        coin: 'BANANA',\n        time: 1730160007687,\n        levels: [\n          [\n            { px: '59.8', sz: '3.4', n: 1 },\n            { px: '59.778', sz: '1.6', n: 1 }\n          ],\n          [\n            { px: '59.811', sz: '2.9', n: 1 },\n            { px: '59.832', sz: '17.6', n: 1 }\n          ]\n        ]\n      }\n    },\n\n    {\n      channel: 'activeAssetCtx',\n      data: {\n        coin: 'MOODENG',\n        ctx: {\n          funding: '0.00004863',\n          openInterest: '18617460.0',\n          prevDayPx: '0.20296',\n          dayNtlVlm: '7665220.55613',\n          premium: '0.00008521',\n          oraclePx: '0.1995',\n          markPx: '0.19963',\n          midPx: '0.19957',\n          impactPxs: ['0.199517', '0.199725']\n        }\n      }\n    },\n    {\n      channel: 'activeSpotAssetCtx',\n      data: {\n        coin: '@2',\n        ctx: {\n          prevDayPx: '0.000031',\n          dayNtlVlm: '24629.86429498',\n          markPx: '0.00005299',\n          midPx: '0.00005307',\n          circulatingSupply: '6879553815.3455801',\n          coin: '@2'\n        }\n      }\n    },\n    {\n      channel: 'bbo',\n      data: {\n        coin: '@162',\n        time: 1750948919838,\n        bbo: [\n          { px: '0.97925', sz: '4144.6', n: 1 },\n          { px: '0.97934', sz: '50.0', n: 1 }\n        ]\n      }\n    },\n    {\n      channel: 'bbo',\n      data: {\n        coin: 'BTC',\n        time: 1750948919838,\n        bbo: [{ px: '107575.0', sz: '3.87947', n: 17 }]\n      }\n    }\n  ]\n\n  const mapper = createMapper('hyperliquid', new Date('2024-08-23T00:00:00.4985250Z'))\n\n  for (const message of messages) {\n    const mappedMessages = mapper.map(message, new Date('2024-08-23T00:00:00.4985250Z'))\n    expect(mappedMessages).toMatchSnapshot()\n  }\n})\n"
  },
  {
    "path": "test/orderbook.test.ts",
    "content": "import { OrderBook } from '../dist/index.js'\n\ndescribe('orderbook', () => {\n  test('should update levels', () => {\n    const orderBook = new OrderBook()\n    // update before snapshot\n    orderBook.update({\n      asks: [\n        { price: 200, amount: 20 },\n        { price: 120, amount: 1 }\n      ],\n      bids: [{ price: 119, amount: 20 }],\n      exchange: 'binance',\n      isSnapshot: false,\n      localTimestamp: new Date(),\n      timestamp: new Date(),\n      symbol: 'BTCUSD',\n      type: 'book_change'\n    })\n\n    expect(orderBook.bestAsk()).toBeUndefined\n    expect(orderBook.bestBid()).toBeUndefined\n\n    // initial snapshot\n    orderBook.update({\n      asks: [\n        { price: 200, amount: 20 },\n        { price: 120, amount: 1 }\n      ],\n      bids: [{ price: 119, amount: 20 }],\n      isSnapshot: true,\n      localTimestamp: new Date(),\n      timestamp: new Date(),\n      exchange: 'binance',\n      symbol: 'BTCUSD',\n      type: 'book_change'\n    })\n\n    expect(orderBook.bestAsk()).toEqual({\n      price: 120,\n      amount: 1\n    })\n    expect(orderBook.bestBid()).toEqual({\n      price: 119,\n      amount: 20\n    })\n\n    expect(Array.from(orderBook.asks())).toEqual([\n      { price: 120, amount: 1 },\n      { price: 200, amount: 20 }\n    ])\n    expect(Array.from(orderBook.bids())).toEqual([{ price: 119, amount: 20 }])\n\n    // bids and asks updates\n    orderBook.update({\n      asks: [\n        { price: 201, amount: 2000 },\n        { price: 120, amount: 100 }\n      ],\n      bids: [\n        { price: 118, amount: 200 },\n        { price: 119, amount: 201 },\n        { price: 119.5, amount: 21 }\n      ],\n      isSnapshot: false,\n      localTimestamp: new Date(),\n      timestamp: new Date(),\n      exchange: 'binance',\n      symbol: 'BTCUSD',\n      type: 'book_change'\n    })\n\n    expect(orderBook.bestAsk()).toEqual({\n      price: 120,\n      amount: 100\n    })\n\n    expect(orderBook.bestBid()).toEqual({\n      price: 119.5,\n      amount: 21\n    })\n\n    expect(Array.from(orderBook.asks())).toEqual([\n      { price: 120, amount: 100 },\n      { price: 200, amount: 20 },\n      { price: 201, amount: 2000 }\n    ])\n    expect(Array.from(orderBook.bids())).toEqual([\n      { price: 119.5, amount: 21 },\n      { price: 119, amount: 201 },\n      { price: 118, amount: 200 }\n    ])\n\n    // delete levels\n    orderBook.update({\n      asks: [{ price: 120, amount: 0 }],\n      bids: [{ price: 119, amount: 0 }],\n      isSnapshot: false,\n      localTimestamp: new Date(),\n      timestamp: new Date(),\n      exchange: 'binance',\n      symbol: 'BTCUSD',\n      type: 'book_change'\n    })\n\n    expect(orderBook.bestAsk()).toEqual({\n      price: 200,\n      amount: 20\n    })\n\n    expect(orderBook.bestBid()).toEqual({\n      price: 119.5,\n      amount: 21\n    })\n\n    expect(Array.from(orderBook.asks())).toEqual([\n      { price: 200, amount: 20 },\n      { price: 201, amount: 2000 }\n    ])\n    expect(Array.from(orderBook.bids())).toEqual([\n      { price: 119.5, amount: 21 },\n      { price: 118, amount: 200 }\n    ])\n\n    // update levels\n    orderBook.update({\n      asks: [\n        { price: 200, amount: 20 },\n        { price: 201, amount: 100 }\n      ],\n      bids: [{ price: 118, amount: 201 }],\n      isSnapshot: false,\n      localTimestamp: new Date(),\n      timestamp: new Date(),\n      exchange: 'binance',\n      symbol: 'BTCUSD',\n      type: 'book_change'\n    })\n\n    expect(orderBook.bestAsk()).toEqual({\n      price: 200,\n      amount: 20\n    })\n\n    expect(orderBook.bestBid()).toEqual({\n      price: 119.5,\n      amount: 21\n    })\n\n    expect(Array.from(orderBook.asks())).toEqual([\n      { price: 200, amount: 20 },\n      { price: 201, amount: 100 }\n    ])\n    expect(Array.from(orderBook.bids())).toEqual([\n      { price: 119.5, amount: 21 },\n      { price: 118, amount: 201 }\n    ])\n\n    // another book snapshot\n    orderBook.update({\n      asks: [\n        { price: 200, amount: 200 },\n        { price: 120, amount: 100 }\n      ],\n      bids: [{ price: 119, amount: 200 }],\n      isSnapshot: true,\n      localTimestamp: new Date(),\n      timestamp: new Date(),\n      exchange: 'binance',\n      symbol: 'BTCUSD',\n      type: 'book_change'\n    })\n\n    expect(orderBook.bestAsk()).toEqual({\n      price: 120,\n      amount: 100\n    })\n    expect(orderBook.bestBid()).toEqual({\n      price: 119,\n      amount: 200\n    })\n\n    expect(Array.from(orderBook.asks())).toEqual([\n      { price: 120, amount: 100 },\n      { price: 200, amount: 200 }\n    ])\n    expect(Array.from(orderBook.bids())).toEqual([{ price: 119, amount: 200 }])\n\n    // delete for non existing level\n    orderBook.update({\n      asks: [{ price: 3000, amount: 0 }],\n      bids: [],\n      isSnapshot: false,\n      localTimestamp: new Date(),\n      timestamp: new Date(),\n      exchange: 'binance',\n      symbol: 'BTCUSD',\n      type: 'book_change'\n    })\n\n    expect(orderBook.bestAsk()).toEqual({\n      price: 120,\n      amount: 100\n    })\n    expect(orderBook.bestBid()).toEqual({\n      price: 119,\n      amount: 200\n    })\n\n    expect(Array.from(orderBook.asks())).toEqual([\n      { price: 120, amount: 100 },\n      { price: 200, amount: 200 }\n    ])\n    expect(Array.from(orderBook.bids())).toEqual([{ price: 119, amount: 200 }])\n  })\n})\n"
  },
  {
    "path": "test/package-exports.test.ts",
    "content": "import { cpSync, mkdirSync, mkdtempSync, rmSync, symlinkSync, writeFileSync } from 'node:fs'\nimport os from 'os'\nimport path from 'path'\nimport { execFileSync } from 'child_process'\nimport { fileURLToPath } from 'url'\n\nconst repoRoot = path.join(path.dirname(fileURLToPath(import.meta.url)), '..')\n\ndescribe('package exports', () => {\n  test('supports ESM named imports', () => {\n    const tempDir = mkdtempSync(path.join(os.tmpdir(), 'tardis-node-package-'))\n    const packageDir = path.join(tempDir, 'node_modules', 'tardis-dev')\n\n    mkdirSync(packageDir, { recursive: true })\n    cpSync(path.join(repoRoot, 'package.json'), path.join(packageDir, 'package.json'))\n    cpSync(path.join(repoRoot, 'dist'), path.join(packageDir, 'dist'), { recursive: true })\n    symlinkSync(path.join(repoRoot, 'node_modules'), path.join(packageDir, 'node_modules'), 'dir')\n\n    writeFileSync(\n      path.join(tempDir, 'import-test.mjs'),\n      `\n        import * as tardis from 'tardis-dev'\n        import { replay, stream } from 'tardis-dev'\n        console.log(JSON.stringify({\n          namespaceReplay: typeof tardis.replay,\n          namespaceStream: typeof tardis.stream,\n          hasDefault: Object.prototype.hasOwnProperty.call(tardis, 'default'),\n          namedReplay: typeof replay,\n          namedStream: typeof stream\n        }))\n      `.trim() + '\\n'\n    )\n\n    const importOutput = JSON.parse(\n      execFileSync(process.execPath, [path.join(tempDir, 'import-test.mjs')], {\n        cwd: tempDir,\n        encoding: 'utf8'\n      })\n    )\n\n    expect(importOutput).toEqual({\n      namespaceReplay: 'function',\n      namespaceStream: 'function',\n      hasDefault: false,\n      namedReplay: 'function',\n      namedStream: 'function'\n    })\n\n    rmSync(tempDir, { force: true, recursive: true })\n  })\n})\n"
  },
  {
    "path": "test/replay.test.ts",
    "content": "import {\n  clearCache,\n  Exchange,\n  EXCHANGES,\n  normalizeBookChanges,\n  normalizeDerivativeTickers,\n  normalizeTrades,\n  replay,\n  replayNormalized,\n  ReplayOptions\n} from '../dist/index.js'\n\nconst exchangesWithDerivativeInfo: Exchange[] = [\n  'bitmex',\n  'binance-futures',\n  'bitfinex-derivatives',\n  'cryptofacilities',\n  'deribit',\n  'okex-futures',\n  'okex-swap',\n  'bybit'\n]\n\ndescribe('replay', () => {\n  beforeEach(() => {\n    return clearCache()\n  }, 1000 * 60 * 10)\n\n  test(\n    'invalid args validation',\n    async () => {\n      await expect(replay({ exchange: 'binance', from: 'sdf', to: 'dsf', filters: [] }).next()).rejects.toThrowError()\n\n      await expect(\n        replay({ exchange: 'binances' as any, from: '2019-05-05 00:00', to: '2019-05-05 00:05', filters: [] }).next()\n      ).rejects.toThrowError()\n\n      await expect(\n        replay({ exchange: 'binance', from: '2019-06-05 00:00', to: '2019-05-05 00:05', filters: [] }).next()\n      ).rejects.toThrowError()\n\n      await expect(\n        replay({ exchange: 'binance', from: '2019-06-05 00:00Z', to: '2019-05-05 00:05Z', filters: [] }).next()\n      ).rejects.toThrowError()\n\n      await expect(\n        replay({ exchange: 'binance', from: '2019-04-05 00:00Z', to: '2019-05-05 00:05Z', filters: [{ channel: 'trades' as any }] }).next()\n      ).rejects.toThrowError()\n\n      await expect(replay({ exchange: 'binance', from: 'sdf', to: 'dsf', filters: [], skipDecoding: true }).next()).rejects.toThrowError()\n\n      await expect(\n        replay({ exchange: 'binances' as any, from: '2019-05-05 00:00', to: '2019-05-05 00:05', skipDecoding: true, filters: [] }).next()\n      ).rejects.toThrowError()\n\n      await expect(\n        replay({ exchange: 'binance', from: '2019-06-05 00:00', to: '2019-05-05 00:05', skipDecoding: true, filters: [] }).next()\n      ).rejects.toThrowError()\n\n      await expect(\n        replay({ exchange: 'binance', from: '2019-06-05 00:00Z', to: '2019-05-05 00:05Z', skipDecoding: true, filters: [] }).next()\n      ).rejects.toThrowError()\n\n      await expect(\n        replay({\n          exchange: 'binance',\n          from: '2019-04-05 00:00Z',\n          to: '2019-05-05 00:05Z',\n          filters: [{ channel: 'trades' as any }],\n          skipDecoding: true\n        }).next()\n      ).rejects.toThrowError()\n    },\n    1000 * 60 * 10\n  )\n\n  test(\n    'replays raw Bitmex data feed (ETHUSD trades) for 1st of April 2019 and compares with not decoded sample',\n    async () => {\n      const replayOptions: ReplayOptions<'bitmex'> = {\n        exchange: 'bitmex',\n        from: '2019-05-01T00:00:00.000Z',\n        to: '2019-05-01T00:02:00.000Z',\n        filters: [\n          {\n            channel: 'trade',\n            symbols: ['ETHUSD']\n          }\n        ]\n      }\n\n      const bitmexDataFeedMessages = replay(replayOptions)\n      const receivedMessages = []\n      const receivedTimestamps = []\n\n      for await (let { message, localTimestamp } of bitmexDataFeedMessages) {\n        receivedMessages.push(message)\n        receivedTimestamps.push(localTimestamp)\n      }\n\n      expect(receivedMessages).toMatchSnapshot('bitmex-received-messages')\n      expect(receivedTimestamps).toMatchSnapshot('bitmex-received-timestamps')\n\n      // perfrom the same test but get raw feed and decode here manually\n      const bitmexDataFeedRawMessages = replay({ ...replayOptions, skipDecoding: true })\n      const receivedMessagesOfRawFeed = []\n      const receivedTimestampsOfRawFeed = []\n\n      for await (let { message, localTimestamp } of bitmexDataFeedRawMessages) {\n        receivedMessagesOfRawFeed.push(JSON.parse(message.toString()))\n        receivedTimestampsOfRawFeed.push(new Date(localTimestamp.toString()))\n      }\n\n      expect(receivedMessagesOfRawFeed).toMatchSnapshot('bitmex-received-messages')\n      expect(receivedTimestampsOfRawFeed).toMatchSnapshot('bitmex-received-timestamps')\n    },\n    1000 * 60 * 10\n  )\n\n  test(\n    'replays raw Coinbase data feed for 1st of Jun 2019 (ZEC-USDC trades)',\n    async () => {\n      const coinbaseDataFeedMessages = replay({\n        exchange: 'coinbase',\n        from: '2019-06-01T00:00:00.000Z',\n        to: '2019-06-01T00:02:00.000Z',\n        filters: [\n          {\n            channel: 'match',\n            symbols: ['ZEC-USDC']\n          }\n        ]\n      })\n\n      const receivedMessages = []\n      const receivedTimestamps = []\n\n      for await (let { message, localTimestamp } of coinbaseDataFeedMessages) {\n        receivedMessages.push(JSON.stringify(message))\n        receivedTimestamps.push(localTimestamp)\n      }\n\n      expect(receivedMessages).toMatchSnapshot()\n      expect(receivedTimestamps).toMatchSnapshot()\n    },\n    1000 * 60 * 10\n  )\n\n  test(\n    'replays raw Binance data feed for 1st of Jun 2019 (batpax trades)',\n    async () => {\n      const binanceDataFeedMessages = replay({\n        exchange: 'binance',\n        from: '2019-06-01T00:00:00.000Z',\n        to: '2019-06-01T00:02:00.000Z',\n        filters: [\n          {\n            channel: 'trade',\n            symbols: ['batpax']\n          }\n        ]\n      })\n\n      const receivedMessages = []\n      const receivedTimestamps = []\n\n      for await (let { message, localTimestamp } of binanceDataFeedMessages) {\n        receivedMessages.push(JSON.stringify(message))\n        receivedTimestamps.push(localTimestamp)\n      }\n\n      expect(receivedMessages).toMatchSnapshot()\n      expect(receivedTimestamps).toMatchSnapshot()\n    },\n    1000 * 60 * 10\n  )\n\n  test(\n    'replays raw Binance data feed and matches manual decode of raw feed',\n    async () => {\n      const replayOptions: ReplayOptions<'binance'> = {\n        exchange: 'binance',\n        from: '2019-06-01T00:00:00.000Z',\n        to: '2019-06-01T00:02:00.000Z',\n        filters: [\n          {\n            channel: 'trade',\n            symbols: ['batpax']\n          }\n        ]\n      }\n\n      const decodedMessages = []\n      const decodedTimestamps = []\n\n      for await (const { message, localTimestamp } of replay(replayOptions)) {\n        decodedMessages.push(message)\n        decodedTimestamps.push(localTimestamp.toISOString())\n      }\n\n      const rawMessages = []\n      const rawTimestamps = []\n\n      for await (const { message, localTimestamp } of replay({ ...replayOptions, skipDecoding: true })) {\n        rawMessages.push(JSON.parse(message.toString()))\n        rawTimestamps.push(new Date(localTimestamp.toString()).toISOString())\n      }\n\n      expect(decodedMessages).toEqual(rawMessages)\n      expect(decodedTimestamps).toEqual(rawTimestamps)\n    },\n    1000 * 60 * 10\n  )\n\n  test(\n    'replays raw Binance data feed with microseconds and matches manual decode of raw feed timestamps',\n    async () => {\n      const replayOptions: ReplayOptions<'binance'> = {\n        exchange: 'binance',\n        from: '2019-06-01T00:00:00.000Z',\n        to: '2019-06-01T00:02:00.000Z',\n        filters: [\n          {\n            channel: 'trade',\n            symbols: ['batpax']\n          }\n        ]\n      }\n\n      const decodedTimestamps = []\n\n      for await (const { localTimestamp } of replay({ ...replayOptions, withMicroseconds: true })) {\n        decodedTimestamps.push({\n          iso: localTimestamp.toISOString(),\n          μs: (localTimestamp as Date & { μs?: number }).μs\n        })\n      }\n\n      const rawTimestamps = []\n\n      for await (const { localTimestamp } of replay({ ...replayOptions, skipDecoding: true })) {\n        const localTimestampString = localTimestamp.toString()\n        rawTimestamps.push({\n          iso: new Date(localTimestampString).toISOString(),\n          μs: Number(localTimestampString.slice(23, 26))\n        })\n      }\n\n      expect(decodedTimestamps).toEqual(rawTimestamps)\n    },\n    1000 * 60 * 10\n  )\n\n  test(\n    'replays raw Binance data feed with microseconds and disconnects and matches manual decode of raw feed',\n    async () => {\n      const replayOptions: ReplayOptions<'binance'> = {\n        exchange: 'binance',\n        from: '2019-06-01T00:00:00.000Z',\n        to: '2019-06-01T00:02:00.000Z',\n        filters: [\n          {\n            channel: 'trade',\n            symbols: ['batpax']\n          }\n        ]\n      }\n\n      const decodedMessages = []\n      const decodedTimestamps = []\n      let decodedDisconnects = 0\n\n      for await (const replayMessage of replay({ ...replayOptions, withMicroseconds: true, withDisconnects: true })) {\n        if (replayMessage === undefined) {\n          decodedDisconnects++\n          continue\n        }\n\n        decodedMessages.push(replayMessage.message)\n        decodedTimestamps.push({\n          iso: replayMessage.localTimestamp.toISOString(),\n          μs: (replayMessage.localTimestamp as Date & { μs?: number }).μs\n        })\n      }\n\n      const rawMessages = []\n      const rawTimestamps = []\n      let rawDisconnects = 0\n\n      for await (const replayMessage of replay({\n        ...replayOptions,\n        skipDecoding: true,\n        withMicroseconds: true,\n        withDisconnects: true\n      })) {\n        if (replayMessage === undefined) {\n          rawDisconnects++\n          continue\n        }\n\n        rawMessages.push(JSON.parse(replayMessage.message.toString()))\n        const localTimestampString = replayMessage.localTimestamp.toString()\n        rawTimestamps.push({\n          iso: new Date(localTimestampString).toISOString(),\n          μs: Number(localTimestampString.slice(23, 26))\n        })\n      }\n\n      expect(decodedDisconnects).toEqual(rawDisconnects)\n      expect(decodedMessages).toEqual(rawMessages)\n      expect(decodedTimestamps).toEqual(rawTimestamps)\n    },\n    1000 * 60 * 10\n  )\n\n  test(\n    'unauthorizedAccess',\n    async () => {\n      const dataFeedWithUnautorizedAccesss = replay({\n        exchange: 'binance',\n        from: '2019-05-01 23:00',\n        to: '2019-05-02 00:06',\n        filters: [\n          {\n            channel: 'trade'\n          }\n        ]\n      })\n      let receivedCount = 0\n      try {\n        for await (let _ of dataFeedWithUnautorizedAccesss) {\n          receivedCount++\n        }\n      } catch (e) {\n        expect(e).toHaveProperty('status')\n      }\n\n      expect(receivedCount).toBe(0)\n    },\n    20 * 1000\n  )\n\n  test(\n    'replays normalized data for each supported exchange',\n    async () => {\n      const replayOptions = {\n        bitmex: { symbols: ['XBTZ19', 'XBTUSD'], from: '2019-07-01T00:00:00.000Z', to: '2019-07-02T00:00:00.000Z' },\n        deribit: { symbols: ['BTC-PERPETUAL', 'BTC-9AUG19-9500-P'], from: '2019-04-01T00:00:00.000Z', to: '2019-04-02T00:00:00.000Z' },\n        binance: { symbols: ['btcusdt', 'btcusds'], from: '2019-04-01T00:00:00.000Z', to: '2019-04-02T00:00:00.000Z' },\n        ftx: { symbols: ['BTC/USD', 'BTC-PERP'], from: '2019-09-01T00:00:00.000Z', to: '2019-09-02T00:00:00.000Z' },\n        okex: { symbols: ['BTC-USDT'], from: '2019-04-01T00:00:00.000Z', to: '2019-04-02T00:00:00.000Z' },\n        bitflyer: { symbols: ['BTC_JPY', 'BTCJPY30AUG2019'], from: '2019-09-01T00:00:00.000Z', to: '2019-09-02T00:00:00.000Z' },\n        bitstamp: { symbols: ['btcusd', 'btceur'], from: '2019-04-01T00:00:00.000Z', to: '2019-04-02T00:00:00.000Z' },\n        coinbase: { symbols: ['BTC-USDC', 'BTC-USD'], from: '2019-04-01T00:00:00.000Z', to: '2019-04-02T00:00:00.000Z' },\n        cryptofacilities: { symbols: ['PI_XRPUSD', 'PI_XBTUSD'], from: '2019-04-01T00:00:00.000Z', to: '2019-04-02T00:00:00.000Z' },\n        gemini: { symbols: ['BTCUSD'], from: '2019-09-01T00:00:00.000Z', to: '2019-09-02T00:00:00.000Z' },\n        kraken: { symbols: ['XBT/USD', 'XBT/JPY'], from: '2019-07-01T00:00:00.000Z', to: '2019-07-02T00:00:00.000Z' },\n        bitfinex: { symbols: ['BTCUST', 'BTCUSD'], from: '2019-10-01T00:00:00.000Z', to: '2019-10-02T00:00:00.000Z' },\n        'bitfinex-derivatives': { symbols: ['BTCF0:USTF0'], from: '2019-10-01T00:00:00.000Z', to: '2019-10-02T00:00:00.000Z' },\n        'binance-dex': {\n          symbols: ['BTCB-1DE_USDSB-1AC', 'BTCB-1DE_TUSDB-888'],\n          from: '2019-07-01T00:00:00.000Z',\n          to: '2019-07-02T00:00:00.000Z'\n        },\n        'binance-jersey': { symbols: ['btcgbp', 'btceur'], from: '2019-11-01T00:00:00.000Z', to: '2019-11-02T00:00:00.000Z' },\n        'binance-us': { symbols: ['btcusdt', 'btcusd'], from: '2019-10-01T00:00:00.000Z', to: '2019-10-02T00:00:00.000Z' },\n        'okex-futures': { symbols: ['BTC-USD-190405'], from: '2019-04-01T00:00:00.000Z', to: '2019-04-02T00:00:00.000Z' },\n        'okex-swap': { symbols: ['BTC-USD-SWAP'], from: '2019-04-01T00:00:00.000Z', to: '2019-04-02T00:00:00.000Z' }\n      } as any\n\n      for (const exchange of EXCHANGES) {\n        if (replayOptions[exchange] === undefined) {\n          continue\n        }\n\n        const normalizers = exchangesWithDerivativeInfo.includes(exchange)\n          ? [normalizeTrades, normalizeBookChanges, normalizeDerivativeTickers]\n          : [normalizeTrades, normalizeBookChanges]\n\n        const messages = replayNormalized(\n          {\n            exchange,\n            withDisconnectMessages: true,\n            ...replayOptions[exchange]\n          },\n          ...(normalizers as any)\n        )\n\n        let count = 0\n        const bufferedMessages = []\n\n        for await (const message of messages) {\n          if (message.type === 'book_change' && (message as any).isSnapshot === true) {\n            continue\n          }\n          bufferedMessages.push(message)\n          count++\n          if (count === 10) {\n            break\n          }\n        }\n\n        expect(bufferedMessages).toMatchSnapshot(exchange)\n      }\n    },\n    1000 * 60 * 10\n  )\n})\n"
  },
  {
    "path": "test/setup.js",
    "content": "var origToISOString = Date.prototype.toISOString\nDate.prototype.toISOString = function () {\n  const isoTimestamp = origToISOString.call(this)\n  if (this.μs == undefined) {\n    return isoTimestamp\n  }\n\n  return isoTimestamp.slice(0, -1) + ('' + this.μs).padStart(3, '0') + 'Z'\n}\n"
  },
  {
    "path": "test/stream.test.ts",
    "content": "import {\n  compute,\n  computeBookSnapshots,\n  computeTradeBars,\n  Exchange,\n  EXCHANGES,\n  getExchangeDetails,\n  normalizeBookChanges,\n  normalizeDerivativeTickers,\n  normalizeLiquidations,\n  normalizeTrades,\n  streamNormalized,\n  normalizeBookTickers\n} from '../dist/index.js'\nimport { describeLive } from './live.js'\n\nconst exchangesWithDerivativeInfo: Exchange[] = [\n  'bitmex',\n  'binance-futures',\n  'bitfinex-derivatives',\n  'cryptofacilities',\n  'deribit',\n  'okex-futures',\n  'okex-swap',\n  'bybit',\n  'phemex',\n  'ftx',\n  'delta',\n  'binance-delivery',\n  'huobi-dm',\n  'huobi-dm-swap',\n  'gate-io-futures',\n  'coinflex',\n  'huobi-dm-linear-swap'\n]\n\nconst exchangesWithLiquidationsSupport: Exchange[] = [\n  'ftx',\n  'bitmex',\n  'deribit',\n  'binance-futures',\n  'binance-delivery',\n  'bitfinex-derivatives',\n  'cryptofacilities',\n  'huobi-dm',\n  'huobi-dm-swap'\n]\n\nconst exchangesWithBookTickerInfo: Exchange[] = [\n  'ascendex',\n  'binance',\n  'binance-futures',\n  'binance-delivery',\n  'binance-dex',\n  'bitfinex',\n  'bitfinex-derivatives',\n  'bitflyer',\n  'bitmex',\n  'coinbase',\n  'cryptofacilities',\n  'deribit',\n  'ftx',\n  'ftx-us',\n  'huobi',\n  'huobi-dm',\n  'huobi-dm-linear-swap',\n  'huobi-dm-swap',\n  'kraken',\n  'okex',\n  'okex-futures',\n  'okex-swap',\n  'okex-options',\n  'okcoin',\n  'serum'\n]\n\ndescribeLive('stream', () => {\n  test(\n    'streams normalized BTCUSDT data for supported channels without disconnects',\n    async () => {\n      const exchange: Exchange = 'binance-futures'\n      const symbols = ['BTCUSDT']\n\n      const normalizers: any[] = [normalizeTrades, normalizeBookChanges, normalizeDerivativeTickers, normalizeBookTickers]\n\n      const messages = streamNormalized(\n        {\n          exchange,\n          symbols,\n          withDisconnectMessages: true,\n          timeoutIntervalMS: 30 * 1000,\n          onError: (err) => {\n            throw new Error(`Unexpected error for ${exchange} BTCUSDT: ${err}`)\n          }\n        },\n        ...normalizers\n      )\n\n      const messagesWithComputables = compute(\n        messages,\n        computeTradeBars({ interval: 10, kind: 'time' }),\n        computeBookSnapshots({ interval: 0, depth: 3 })\n      )\n\n      const seenTypes = new Set<string>()\n      let didTimeout = false\n      const timeoutId = setTimeout(() => {\n        didTimeout = true\n        void messages.return?.()\n      }, 30_000)\n\n      try {\n        for await (const msg of messagesWithComputables) {\n          if (msg.type === 'disconnect') {\n            throw new Error('Unexpected disconnect received for BTCUSDT stream')\n          }\n\n          seenTypes.add(msg.type)\n\n          if (seenTypes.has('trade') && seenTypes.has('book_change') && seenTypes.has('derivative_ticker')) {\n            break\n          }\n        }\n      } finally {\n        clearTimeout(timeoutId)\n        await messages.return?.()\n      }\n\n      expect(didTimeout).toBe(false)\n      expect(seenTypes.has('trade')).toBe(true)\n      expect(seenTypes.has('book_change')).toBe(true)\n      expect(seenTypes.has('derivative_ticker')).toBe(true)\n    },\n    1000 * 60 * 2\n  )\n\n  test(\n    'streams normalized real-time messages for each supported exchange',\n    async () => {\n      const exchanges: Exchange[] = []\n      await Promise.all(\n        EXCHANGES.map(async (exchange) => {\n          if (\n            exchange === 'binance-dex' ||\n            exchange === 'binance-jersey' ||\n            exchange === 'huobi-dm-options' ||\n            exchange === 'star-atlas' ||\n            exchange === 'okex-futures' ||\n            exchange === 'okex-options' ||\n            exchange === 'delta' ||\n            exchange === 'kucoin' ||\n            exchange === 'phemex' ||\n            exchange === 'bybit-spot' ||\n            exchange === 'coinbase' ||\n            exchange === 'mango' ||\n            exchange === 'serum' ||\n            exchange === 'ftx' ||\n            exchange === 'ftx-us' ||\n            exchange === 'binance' ||\n            exchange === 'binance-futures' ||\n            exchange === 'binance-delivery' ||\n            exchange === 'bitnomial' ||\n            exchange === 'bybit' ||\n            exchange === 'bybit-options' ||\n            exchange === 'gemini' ||\n            exchange === 'coinflex' ||\n            exchange === 'huobi' ||\n            exchange === 'gate-io' ||\n            exchange === 'ascendex' ||\n            exchange === 'binance-european-options' ||\n            exchange === 'upbit' ||\n            exchange === 'okex-spreads' ||\n            exchange === 'kucoin-futures' ||\n            exchange === 'hitbtc' ||\n            exchange === 'dydx' ||\n            exchange === 'dydx-v4'\n          ) {\n            return\n          }\n\n          exchanges.push(exchange)\n\n          const exchangeDetails = await getExchangeDetails(exchange)\n          const normalizers: any[] = [normalizeTrades, normalizeBookChanges]\n\n          if (exchangesWithDerivativeInfo.includes(exchange)) {\n            normalizers.push(normalizeDerivativeTickers)\n          }\n\n          if (exchangesWithLiquidationsSupport.includes(exchange)) {\n            normalizers.push(normalizeLiquidations)\n          }\n\n          if (exchangesWithBookTickerInfo.includes(exchange)) {\n            normalizers.push(normalizeBookTickers)\n          }\n\n          var symbols = exchangeDetails.availableSymbols\n            .filter((s) => s.availableTo === undefined || new Date(s.availableTo).valueOf() > new Date().valueOf())\n            .slice(0, 10)\n            .map((s) => s.id)\n\n          const messages = streamNormalized(\n            {\n              exchange,\n              symbols,\n              withDisconnectMessages: true,\n              timeoutIntervalMS: 30 * 1000,\n              onError: (err) => {\n                console.log('Error', exchange, err)\n              }\n            },\n            ...normalizers\n          )\n\n          const messagesWithComputables = compute(\n            messages,\n            computeTradeBars({ interval: 10, kind: 'time' }),\n            computeBookSnapshots({ interval: 0, depth: 3 })\n          )\n\n          let count = 0\n          let snapshots = 0\n\n          for await (const msg of messagesWithComputables) {\n            // reset counters if we've received disconnect\n            if (msg.type === 'disconnect') {\n              count = 0\n              snapshots = 0\n            }\n\n            if (msg.type === 'book_change' && (msg as any).isSnapshot) {\n              snapshots++\n            }\n\n            if (snapshots >= symbols.length - 1) {\n              count++\n              if (count >= 10) {\n                break\n              }\n            }\n          }\n          exchanges.splice(exchanges.indexOf(exchange), 1)\n          console.log('remaining', exchanges)\n        })\n      )\n    },\n    1000 * 60 * 2\n  )\n})\n"
  },
  {
    "path": "test/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"rootDir\": \"..\",\n    \"isolatedModules\": true,\n    \"module\": \"NodeNext\",\n    \"moduleResolution\": \"NodeNext\",\n    \"types\": [\"node\", \"jest\"],\n    \"noEmit\": true\n  },\n  \"include\": [\".\"]\n}\n"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n  \"include\": [\"src\"],\n  \"compilerOptions\": {\n    \"rootDir\": \"src\",\n    \"allowSyntheticDefaultImports\": true,\n    \"resolveJsonModule\": true,\n    \"sourceMap\": true,\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"module\": \"NodeNext\",\n    \"moduleResolution\": \"NodeNext\",\n    \"rewriteRelativeImportExtensions\": true,\n    \"target\": \"ESNext\",\n    \"pretty\": true,\n    \"strict\": true,\n    \"outDir\": \"dist\",\n    \"noFallthroughCasesInSwitch\": true,\n    \"noImplicitReturns\": true,\n    \"noUnusedParameters\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"lib\": [\"ESNext\"]\n  }\n}\n"
  }
]